Guía Completa de DAX: Sintaxis y Nomenclatura
Guía Completa de DAX: Sintaxis y Nomenclatura
(DAX)
CONTENIDO
Referencias ..............................................................................................................................28
                                                                               Data Analysis Expressions (DAX)
¿QUÉ ES DAX?
DAX (data analysis expressions) es un lenguaje específico para análisis de datos, creado por
Microsoft en 2010 para ser aplicado con un modelo de datos tabular, pudiendo usarse en Excel,
Analysis Services y Power BI. DAX recopila funciones, operadores y constantes, que se
pueden usar en una fórmula o expresión para calcular y devolver uno o varios valores. Dicho
más fácilmente, DAX ayuda a crear información nueva de datos, que ya está en un modelo.
El lenguaje DAX fue creado específicamente para el manejo de modelos de datos, mediante
el uso de fórmulas y expresiones. Así, se utiliza en varios productos de Microsoft, como
Microsoft Power BI, Microsoft Analysis Services y Microsoft Power Pivot para Excel. Todos
estos productos comparten el mismo motor interno, llamado Tabular. Las fórmulas DAX se
usan en medidas, columnas calculadas, tablas calculadas y seguridad de nivel de fila.
Mediante el uso de expresiones de análisis de datos (DAX), puede agregar tres tipos de
cálculos a su modelo de datos:
• Tablas calculadas.
                                                                                                                 3
• Columnas calculadas.
• Medidas.
1. REQUISITOS DE LA SINTAXIS
Una fórmula DAX siempre comienza con un signo igual (=). Después del signo igual, se puede
proporcionar cualquier expresión que se evalúe como un valor escalar, o una que se pueda
convertir en un valor escalar, que incluya la siguiente información:
• Una constante escalar o expresión que usa un operador escalar (+, -, *, / , >=, ..., &&, ...).
• Referencias a columnas o tablas: el lenguaje DAX siempre usa tablas y columnas como
   entradas a funciones, nunca una matriz o un conjunto arbitrario de valores.
                                                                              Data Analysis Expressions (DAX)
   La mayoría de las funciones DAX requieren uno o más argumentos, que pueden incluir
   tablas, columnas, expresiones y valores. Sin embargo, algunas funciones, como PI, no
   requieren ningún argumento, pero siempre requieren paréntesis para indicar el argumento
   NULL. Por ejemplo, siempre se debe escribir PI() en lugar de PI. También se pueden anidar
   funciones dentro de otras funciones.
• Expresiones: una expresión puede contener alguno de los elementos siguientes o todos
   ellos: operadores, constantes o referencias a columnas.
                                                                                                                4
 Fórmula               Resultado
 =3                    3
= "Sales" Sales
= (0,03 *[Importe]) Tres por ciento del valor de la columna Importe de la tabla actual.
 =0,03 *[Amount]       Aunque esta fórmula se puede usar para calcular un porcentaje, el
                       resultado no se muestra como un porcentaje, a menos que se aplique
                       el formato en la tabla.
2. REQUISITOS DE NOMENCLATURA
A menudo, un modelo de datos contiene varias tablas. Las tablas y sus columnas, de forma
conjunta, componen una base de datos almacenada en el motor de análisis en memoria. En
esa base de datos, todas las tablas deben tener nombres únicos. Los nombres de las columnas
también deben ser únicos en cada tabla. Los nombres de objeto no distinguen mayúsculas de
minúsculas; por ejemplo, los nombres SALES y Sales representarían la misma tabla.
Cada columna y medida que se agregue a un modelo de datos existente, debe pertenecer a
una tabla específica. La tabla que contiene la columna se especifica implícitamente, al crear
una columna calculada en una tabla, o explícitamente, al crear una medida y se especifica el
nombre de la tabla donde se debe almacenar la definición de la medida.
Cuando se usa una tabla o una columna como entrada para una función, generalmente se
debe calificar el nombre de la columna. El nombre completo de una columna es el nombre de
la tabla, seguido del nombre de la columna entre corchetes: por ejemplo, 'Ventas de EE.
UU.'[Productos]. Siempre se requiere un nombre completo cuando se hace referencia a una
columna en los contextos siguientes:                                                                          5
• Los nombres de tabla son necesarios siempre que la columna sea de una tabla distinta de
   la actual. Los nombres de tabla deben ser únicos en la base de datos.
• Los nombres de tabla deben ir entre comillas simples si contienen espacios, otros
   caracteres especiales o cualquier carácter alfanumérico que no sea el inglés.
Si el nombre que se utiliza para una tabla es el mismo que el de una palabra clave reservada
de Analysis Services, se genera un error y se debe cambiar el nombre de la tabla. Sin embargo,
puede utilizar palabras clave en nombres de objetos, si el nombre del objeto está entre
corchetes (en las columnas) o con comillas (en las tablas).
                                                                                  Data Analysis Expressions (DAX)
Los caracteres y tipos de caracteres siguientes no son válidos en los nombres de tablas,
columnas o medidas:
• Espacios iniciales o finales; a menos que los espacios se incluyan entre delimitadores de
   nombre, corchetes o apóstrofes únicos.
• Caracteres de control.
• Los caracteres siguientes no son válidos en los nombres de objetos:
.,;':/\|?&%$!+=()[]{}<>|?&%$!+=()[]{}<>
Tipos de
               Ejemplos           Comentario
objeto
Nombre de      Sales              Si el nombre de la tabla no contiene espacios ni otros caracteres
tabla                             especiales, no es necesario que el nombre se incluya entre                        7
                                  comillas.
Nombre de      "Canada Sales"     Si el nombre contiene espacios, tabulaciones u otros caracteres
tabla                             especiales, incluya el nombre entre comillas simples.
Nombre         Ventas[Importe]    El nombre de la tabla precede al nombre de la columna y el
completo de                       nombre de la columna se incluye entre corchetes.
la columna
La sintaxis necesaria para cada función, así como el tipo de operación que puede realizar,
varían en gran medida dependiendo de la función. Pero, por lo general, las reglas siguientes
se aplican a todas las fórmulas y expresiones:
• Las fórmulas y expresiones DAX no pueden modificar o insertar valores individuales en las
   tablas.
• No se pueden crear filas calculadas con DAX, solo se pueden crear medidas y columnas
   calculadas.
• Al definir columnas calculadas, se pueden anidar funciones en cualquier nivel.
• DAX tiene varias funciones que devuelven una tabla. Normalmente, se usan los valores que
   devuelven estas funciones como entrada a otras funciones, las que requieren una tabla
   como entrada.
3. OPERADORES DAX
El lenguaje DAX (expresiones de análisis de datos) usa operadores para crear expresiones
                                                                                                                8
que comparan valores, realizan cálculos aritméticos o trabajan con cadenas.
Use los siguientes operadores aritméticos para realizar operaciones matemáticas básicas
(como sumas, restas o multiplicaciones), para combinar números y para producir resultados
numéricos.
                                                                            Data Analysis Expressions (DAX)
Puede comparar dos valores con los siguientes operadores. Cuando se comparan dos valores
con estos operadores, el resultado es un valor lógico, ya sea TRUE o FALSE. HASTA AQUÍ
Operadores de                                                                                                 9
                          Significado                       Ejemplo
comparación
Todos los operadores de comparación, excepto ==, tratan BLANK (resultado en cero) como
equivalente al número 0, una cadena vacía "", DATE(1899, 12, 30), o FALSE. Como resultado,
[Column] = 0 será true cuando el valor de [Column] sea 0 o BLANK. Por el contrario, [Column]
== 0 solo es true cuando el valor de [Column] es 0.
                                                                              Data Analysis Expressions (DAX)
El signo " ( & ) permite unir, o concatenar, dos o más cadenas de texto, a fin de generar un
único fragmento de texto.
 & ("Y comercial")         Conecta, o concatena, dos valores para      [Region] & ", " & [Pais]
                           generar un valor de texto continuo.
Use los operadores lógicos (&&) y (||) para combinar expresiones para generar un solo
resultado.
Operador de
                 Significado                                        Ejemplos
texto
&& (doble Y      Crea una condición AND entre dos                   ([Region] = "France") &&
comercial)       expresiones que tienen ambas un resultado          ([BikeBuyer] = "yes"))
                                                                                                                10
                 booleano. Si ambas expresiones devuelven
                 TRUE, la combinación de las expresiones
                 también devuelve TRUE; de lo contrario, la
                 combinación devuelve FALSE.
En algunos casos, el orden en el que se realiza el cálculo puede afectar al valor devuelto, de
ahí que sea importante comprender cómo se determina el orden y cómo este se puede cambiar
para obtener los resultados deseados.
Una expresión evalúa los operadores y los valores en un orden específico. Todas las
expresiones comienzan siempre con un signo igual (=). Este signo igual indica que los
caracteres tras él constituyen una expresión.
Después del signo igual están los elementos que se van a calcular (los operandos), que se
separan con operadores de cálculo. Las expresiones siempre se leen de izquierda a derecha,
pero el orden en el que los elementos se agrupan se puede controlar, en cierto grado, mediante
el uso de paréntesis.
Operador Descripción
^ Exponenciación
 =,==,<,>,<=,>=,<>                Comparación
                                                                                Data Analysis Expressions (DAX)
Para cambiar el orden de evaluación, debe incluir entre paréntesis la parte de la fórmula que
deba calcularse en primer lugar. Por ejemplo, la siguiente fórmula da como resultado 11,
porque la multiplicación se calcula antes que la suma. La fórmula multiplica 2 por 3 y, tras ello,
suma 5 al resultado.
=5+2*3 = 11
Por el contrario, si se usan paréntesis para cambiar la sintaxis, el orden se cambia de modo
que 5 y 2 se suman y el resultado de esto se multiplica por 3, dando como resultado 21.
= (5+2)*3 = 21
En el siguiente ejemplo, los paréntesis que rodean la primera parte de la fórmula hacen que el
cálculo evalúe la expresión (3 + 0.25) en primer lugar y, luego, divida el resultado entre el
resultado de la expresión (3 - 0.25).
= (3 + 0.25)/(3 - 0.25)
=-2^2
Para garantizar que el operador de inversión del signo se aplica primero al valor numérico, se
pueden usar paréntesis para controlar los operadores, como se muestra en el siguiente
ejemplo. El resultado de esta expresión es 4.
= (-2)^2
En general, los dos operandos de los lados izquierdo y derecho, de cualquier operador, deben
ser del mismo tipo de datos. Si los tipos de datos son diferentes, DAX los convertirá a un tipo
de datos común para aplicar el operador en algunos casos:
Por ejemplo, supongamos que tiene dos números que quiere combinar. Un número es el
resultado de una fórmula, como =[Price] * .20, y dicho resultado puede contener muchos
decimales, mientras que el otro número es un entero que se ha proporcionado como valor de
cadena.
En este caso, DAX convertirá ambos números en números reales en formato numérico, usando
el formato numérico más grande que pueda almacenar ambos tipos de números. Tras ello,
DAX aplicará la multiplicación.
4. TIPOS DE DATOS
Las columnas del modelo de datos tienen un tipo de datos establecido, lo que garantiza que
todos los valores de las columnas se ajusten a ese tipo de datos. Los tipos de datos de columna
se definen en Power Query o, en el caso de las columnas calculadas, se infieren de la fórmula.
Los tipos de datos de medida, similares a los tipos de datos de columna calculados, se infieren
de la fórmula.
                                                                                                                13
No es necesario convertir o especificar, de cualquier otro modo, el tipo de datos de una
columna o valor que se usa en una fórmula DAX. Cuando se usan datos en una fórmula DAX,
este identifica automáticamente los tipos de datos de las columnas a las que se hace referencia
y de los valores que se escriben, y realiza las conversiones implícitas, cuando sea necesario,
para completar la operación especificada.
Los tipos de datos del modelo no son los mismos que los tipos de datos DAX, aunque existe
una relación directa entre ellos. La siguiente tabla enumera los tipos de datos del modelo y los
tipos de datos DAX. Observe el rango de valores admitido para cada tipo de datos.
                                                                           Data Analysis Expressions (DAX)
Tipo de datos
                Tipo de datos DAX      Descripción
del modelo
Número          Real de 64 bits        Negativo: -1,79 x 10 308 hasta -2,23 x 10-308 Cero
decimal                                positivo: 2,23 x 10 -308 hasta 1,79 x 10 308 Limitado a
                                       17 dígitos decimales
Fecha           Fecha y hora           Las fechas válidas son todas las fechas posteriores
                                       al 1 de marzo de 1900.
El tipo de datos EN BLANCO (BLANK) merece una mención especial. DAX usa EN BLANCO,
tanto para la base de datos NULL como para las celdas en blanco en Excel. EN BLANCO no
significa cero. Quizás sea más sencillo pensar en ello como la "ausencia de un valor". Dos
funciones DAX están relacionadas con el tipo de datos BLANK: la función BLANK DAX
devuelve BLANK, mientras que la función ISBLANK, DAX prueba si una expresión se evalúa
como BLANK.
                                                                              Data Analysis Expressions (DAX)
5. FUNCIONES DAX
La biblioteca de funciones de DAX consta de cientos de funciones, cada una diseñada para
lograr un objetivo específico.
Debido a que DAX se originó con el complemento Power Pivot para Microsoft Excel 2010, hay
más de 80 funciones disponibles que también se pueden encontrar en Excel. Fue una
estrategia de diseño deliberada de Microsoft, para garantizar que los usuarios de Excel puedan
volverse productivos rápidamente con DAX.
Sin embargo, existen muchas funciones que no encontrará en Excel, porque son específicas
del modelado de datos:
Cada tipo de cálculo de modelo, tabla calculada, columna calculada o medida se define por su
nombre, seguido del símbolo igual (=), que luego es seguido por una fórmula DAX. Por
ejemplo, la definición de la tabla calculada Fecha de envío, que duplica los datos de la tabla
Fecha es:
Una fórmula DAX consta de expresiones que devuelven un resultado. El resultado es un objeto
de tabla o un valor escalar. Las fórmulas de tabla calculadas deben devolver un objeto de tabla;
las fórmulas de columna y medida calculadas deben devolver un valor escalar o único.
                                                                               Data Analysis Expressions (DAX)
•   Funciones DAX.
•   Operadores DAX.
•   Referencias a objetos de modelo.
•   Valores constantes, como el número 24 o el texto literal "FY" (para el año fiscal).
•   Variables DAX.
•   Espacio en blanco.
Similar a Microsoft Excel, DAX es un lenguaje funcional; las fórmulas se basan en las funciones
de DAX para lograr objetivos específicos. Normalmente, las funciones tienen argumentos que
permiten pasar variables. Las fórmulas pueden usar muchas llamadas a funciones y, a
menudo, anidan funciones dentro de otras funciones.
Es importante considerar al momento de trabajar los siguientes puntos con fórmulas DAX:
    ( [ x] ).
• Cuando hace referencia a una tabla en una fórmula, oficialmente, el nombre de la tabla se
    incluye entre comillas simples.
Cuando hace referencia a una tabla en una fórmula, oficialmente, el nombre de la tabla se
incluye entre comillas simples. En la siguiente definición de tabla calculada, observe que la
tabla de fecha está entre comillas simples.
Sin embargo, las comillas simples se pueden omitir cuando se cumplen las dos condiciones
siguientes:
2. El nombre de la tabla no es una palabra reservada que utiliza DAX. Todos los operadores
   y nombres de funciones de DAX son palabras reservadas. La fecha es un nombre de
   función de DAX, lo que explica por qué, cuando hace referencia a una tabla denominada
   Fecha, debe incluirse entre comillas simples.
En la siguiente definición de tabla calculada, es posible omitir los corchetes al hacer referencia
a la tabla del aeropuerto:
Cuando hace referencia a una columna en una fórmula, el nombre de la columna debe incluirse
entre corchetes. Opcionalmente, puede ir precedido de su nombre de tabla. Por ejemplo, la
siguiente definición de medida se refiere a la columna ventas.
Revenue = SUM([ventas])
Debido a que los nombres de columna son únicos dentro de una tabla, pero no necesariamente                        17
únicos dentro del modelo, puede eliminar la ambigüedad de la referencia de columna
precediéndola con su nombre de tabla. Esta columna sin ambigüedad se conoce como
columna totalmente calificada. Cuando hace referencia a una medida en una fórmula, como
las referencias al nombre de una columna, el nombre de la medida debe incluirse entre
corchetes. Por ejemplo, la siguiente definición de medida se refiere a las medidas Ingresos y
Costos.
La sintaxis incluye varios elementos que conforman una fórmula o, más simplemente, cómo
se escribe. Por ejemplo, examinemos una fórmula DAX simple, utilizada para crear datos
nuevos (valores) para cada fila de una columna calculada, denominada Margin, en una tabla
FactSales: (los colores del texto de la fórmula únicamente son para fines ilustrativos).
                                                                              Data Analysis Expressions (DAX)
1. El operador del signo igual (=) indica el principio de la fórmula y cuando esta fórmula se
   calcule, devolverá un resultado o un valor. Todas las fórmulas que calculan un valor
   empezarán con un signo de igual.
2. La columna a la que se hace referencia [SalesAmount] contiene los valores de los que se
   resta. Una referencia de columna de una fórmula siempre viene entre corchetes []. A
   diferencia de las fórmulas de Excel que hacen referencia a una celda, una fórmula DAX
   hace referencia siempre a una columna.
4. La columna a la que se hace referencia [TotalCost] contiene los valores que deseamos                         18
   restar de los valores de la columna [SalesAmount].
Al intentar entender cómo leer el ejemplo anterior de la fórmula de DAX, suele ser útil analizar
cada uno de los elementos de un idioma en el que piense y hable cada día. Por ejemplo, puede
leer esta fórmula como: En la tabla Empresa, para cada fila de la columna calculada margen,
calcule (=) un valor restando (-) los valores de la columna [TotalCost] de los valores de la
columna [SalesAmount]. Esta diferencia nos entrega el margen de ganancia en cada
operación. Un segundo ejemplo de fórmula, una que se usa en una medida, es el siguiente:
                                                                            Data Analysis Expressions (DAX)
   El nombre de la medida suma del importe de ventas. Las fórmulas para las medidas pueden
   incluir el nombre de la medida, seguido de un signo de dos puntos, seguido de la fórmula
   de cálculo.
   El operador del signo igual (=) indica el principio de la fórmula de cálculo. Cuando se
   calcule, devolverá el resultado.
   La función SUM suma todos los números de la columna [SalesAmount]. Obtendrá más
   información sobre características más adelante.
   Los paréntesis () alrededor de uno o más argumentos. Todas las funciones requieren al
   menos un argumento. Un argumento pasa un valor a una función.
   La tabla a la que se hace referencia FactSales.
   La columna a la que se referencia [SalesAmount] en la tabla FactSales. Con este
   argumento, la función SUM sabe qué columna agregar a SUM.
Para la medida denominada sum of SalesAmount, calcular (=) la suma de los valores de la
columna [ SalesAmount ] en la tabla FactSales .
                                                                                                              19
Es muy importante que las fórmulas tengan la sintaxis correcta. En la mayoría de los casos, si
la sintaxis no es correcta, se devolverá un error de sintaxis.
                                                                                     Data Analysis Expressions (DAX)
A estas alturas, ya está familiarizado con las funciones de resumen de una sola columna,
incluidas SUM, COUNT, MIN, MAX y otras. Todas estas funciones tienen una función iteradora
equivalente que se identifica con el sufijo "X", como SUMX, COUNTX, MINX, MAXX y
otros. Además, existen funciones de iterador especializadas que realizan filtrado, clasificación,
cálculos semiaditivos a lo largo del tiempo y más.
Característica de todas las funciones de iterador, debe pasar una tabla y una expresión. La
tabla puede ser una referencia de tabla modelo o una expresión que devuelve un objeto de
tabla. La expresión debe evaluarse a un valor escalar.
Las   funciones   de   resumen     de      una    sola   columna,   como     SUM,      son     funciones
abreviadas. Internamente, Microsoft Power BI convierte la función SUM en SUMX. Como
resultado, las siguientes dos definiciones de medida producirán el mismo resultado; Power BI                           20
Es importante comprender cómo funciona el contexto con las funciones de iterador. Debido a
que las funciones de iterador se enumeran en filas de la tabla, la expresión se evalúa para
cada fila en el contexto de fila, similar a las fórmulas de columna calculadas.
Sum(), no permite realizar esta operación (solo acepta un argumento), por lo cual se debe
utilizar sumx() :
La función RANKX es una función de iterador especial, la que puede usar para calcular
rangos. Su sintaxis es la siguiente:
Al igual que con todas las funciones de iterador, debe pasar una tabla y una
expresión. Opcionalmente, puede pasar un valor de rango para encontrar la dirección del
pedido, o para ayudarlo a determinar cómo manejar los rangos cuando los valores están
                                                                                                               21
empatados.
Ejemplo: la siguiente medida “Rango de cantidad de productos”, lista los productos en orden
descendente por cantidad disponible:
En este caso, la función RANKX itera sobre una tabla que es devuelta por la función ALL. La
función ALL se usa para devolver todas las filas, en una tabla modelo o valores, en una o más
columnas e ignora todos los filtros. Por lo tanto, en este caso, devuelve una tabla que consta
de todos los valores de la columna Producto en la tabla Producto. La función RANKX debe
usar la función ALL, porque el objeto visual de la tabla se agrupará por producto (que es un
filtro en la tabla Producto).
En la imagen de la tabla, observe que dos productos empatan en el décimo lugar y que el
rango del siguiente producto es 12. Esta imagen es un ejemplo del uso del argumento de
empates omitidos.
22
En el caso que desee no utilizar la opción de una clasificación omitida, se debe agregar a la
función el argumento Dense. En este caso, el resultado sería que después de los dos
productos que empatan en el décimo lugar, el siguiente ranking es el 11.
Puede utilizar la función CALCULATE para modificar el contexto del filtro en sus fórmulas. La
sintaxis de la función CALCULATE es la siguiente:
La función requiere pasar una expresión que devuelva un valor escalar y tantos filtros como
necesite. La expresión puede ser una medida (que es una expresión con nombre) o cualquier
expresión que se pueda evaluar en el contexto del filtro.
Los filtros pueden ser expresiones booleanas o expresiones de tabla. También es posible
pasar funciones de modificación de filtros que proporcionan un control adicional cuando se
modifica el contexto de la formular.
Cuando tiene varios filtros, se evalúan mediante el operador lógico AND, lo que significa que
todas las condiciones deben ser VERDADERAS al mismo tiempo.
Por ejemplo, la siguiente definición de medida, que filtra la medida de Ingresos, utilizando un
filtro de expresión booleana para productos rojos.
La siguiente medida filtra la medida de Ingresos por productos caros. Los productos caros son
aquellos con un precio de lista superior a 1000 USD.
7.5 EJEMPLOS
Realiza la suma de todos los registros de la columna Autos, que son parte de la tabla Ventas.
Crear una columna calculada que calcule el producto de las dos columnas (OrderQuantity y
UnitPrice) fila a fila
Crea una medida que sume de los valores de la columna calculada del ejemplo anterior.
La misma operación de los dos ejemplos anteriores se puede realizar por medio de la siguiente
fórmula:
A partir de la función SUMX, para crear directamente la medida sin necesidad de crear una
columna. Las dos medidas devuelven el mismo resultado. Con la primera solución
almacenaríamos en el modelo, permanentemente, los resultados de multiplicar ambas
columnas fila por fila, mientras que en la segunda solución no. La segunda solución es la más
eficiente, es decir, elegiremos SUMX().
Quantity_Red_Color=CALCULATE(SUM(Sales[OrderQuantity]),Product[Color]="Rojo")
                                                                              Data Analysis Expressions (DAX)
Este ejemplo calcula la cantidad de productos de color rojo vendidos. Es importante considerar
que a la función SUM() no se le puede pasar una expresión como parámetro, solo admite
nombres de columnas. Esto implica que no se pueden filtrar las filas de la tabla sobre la que
queremos realizar el cálculo., Para lograrlo, necesitamos combinarla con la función
CALCULATE().
La función SUMX admite como primer parámetro una expresión que devuelva una tabla y la
función Filter lo hace. Esto nos permite filtrar la tabla Sales, de manera que solo devuelva las
filas donde el color del producto es rojo y luego sumamos los valores de la columna
OrderQuantity. La columna Color está en la tabla Product y, por ello, necesitamos usar la
función RELATED() para conocer el color del producto relativo a cada fila. La fórmula resultante
sería:
En este caso, el primer parámetro será la tabla Sales, sin filtrar, y el segundo una expresión.
Recorreremos cada fila de la tabla Sales y comprobamos el valor de la expresión. Si la
expresión es verdadera, sumaremos los valores de la columna OrderQuantity. La expresión a
utilizar será “Si el color del producto relacionado es rojo la expresión es verdadera, en otro
caso es falsa”. La fórmula quedará:
Esta sería muy similar a la primera variante, solo que usando la función SUMX en lugar de
SUM.
¿Qué formula debe utilizar para determinar el total de kilos vendidos de solo manzanas?
El porcentaje corresponde a la división entre el "valor de la venta" y "total de las ventas", por
lo tanto, se necesita, previamente, realizar una medida para el numerador y otra para
denominador:
               CALCULATE(SUM(Hoja1[Cantidad]);Hoja1[Categoría]="Fruta")
                                                                                                                 27
                                                                          Data Analysis Expressions (DAX)
REFERENCIAS
28