Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La función CALCULATE evalúa una expresión en un contexto que es modificado por los filtros
que se ceden como argumentos
CALCULATE(<expresión>;<filtro1>;<filtro2>...)
Si definimos la medida Ventas como la suma de la columna SalesAmount:
Ventas = SUM(FactSales[SalesAmount])
Podemos crear una nueva medida basada en la función CALCULATE que modifique el
contexto de cálculo de forma que únicamente considere las ventas del año 2008:
ALL
La función ALL devuelve todas las filas de una tabla o todos los valores de una o varias
columnas, ignorando cualquier filtro que se haya aplicado.
ALL(Tabla)
ALL(Columna1[; Columna2[; ...]])
SUMX(ALL(FactSales);FactSales[SalesAmount])
Este cálculo devolverá las ventas totales con independencia del contexto en el que se
aplique
FILTER
La función FILTER devuelve una tabla que representa un subconjunto de otra tabla.
FILTER(<tabla>;<filtro>)
La solución pasa por añadir como argumento no la expresión compleja en cuestión, sino la
tabla de ventas una vez la hemos filtrado según ese mismo criterio:
IF
En este ejemplo se evalúa cada venta como "Gran venta" o "Pequeña venta" en función de
que el importe de la misma sea o no mayor que 100.000€:
COALESCE
La función COALESCE recibe como argumentos dos o más expresiones y devuelve el
resultado de la primera que no devuelva un BLANK.
COALESCE(<expression>, <expression>[, <expression>]…)
SUMX
La función SUMX devuelve la suma de los valores que toma una expresión que se evalúa
para todas las filas de una tabla.
SUMX(<tabla>; <expresión>)
Supongamos que tenemos la siguiente tabla mostrando el listado de ventas, incluyendo el
número de elementos vendidos y su precio unitario:
La función RELATED devuelve el valor relacionado con la fila siendo considerada de una
columna de otra tabla (tabla remota), suponiendo que existe una relación entre la tabla en
la que se esté trabajando (tabla actual) y la remota, que esta relación sea de tipo "muchos
a uno" o "uno a uno" y que la tabla remota sea la correspondiente al lado "uno" -es decir,
que se trate de una tabla de dimensiones-.
Dicho con otras palabras, esta función permite, a partir de una tabla de hechos, extraer el
campo asociado a cada registro en una tabla de dimensiones.
RELATED(<columna>)
Si tenemos una tabla de ventas (Sales) que incluye una referencia al producto vendido, y
otra tabla de productos (Product) conteniendo el detalle de cada producto a la venta,
incluyendo su nombre en el campo ProductName, podemos añadir a la tabla Sales el
campo 'Product'[ProductName] con la siguiente expresión:
AND
La función AND evalúa dos condiciones y devuelve el valor lógico TRUE si ambas son
ciertas, y el valor lógico FALSE en caso contrario
AND(<condición1>;<condición2>)
En este ejemplo se desea comprobar si el producto vendido es el "A" y su precio mayor de
1000€:
OR
La función OR evalúa dos condiciones y devuelve el valor lógico TRUE si alguna de ellas
es cierta, y el valor lógico FALSE en caso contrario.
OR(<condicion1>; <condicion2>)
En este ejemplo se desea evaluar que el producto sea el "D" o que el precio de venta sea
superior o igual a 2.000€.