Definición:
Función de filtro que evalúa una expresión de tabla en un contexto modificado por filtros. Puede modificar, agregar o eliminar el contexto de filtro.
Función de filtro que evalúa una expresión de tabla en un contexto modificado por filtros. Puede modificar, agregar o eliminar el contexto de filtro.
- CALCULATETABLE es idéntica a CALCULATE salvo por el resultado. Devuelve una tabla en vez de un valor escalar.
- Cuando se especifican filtros en los argumentos de la función, existen dos resultados estándar posibles para cada filtro:
- Si no existe en el contexto de filtro, el filtro se agrega al contexto de filtro.
- Si ya existe en el contexto de filtro, el filtro se sobrescribe en el contexto de filtro.
- Cuando no se especifican filtros en los argumentos de la función, CALCULATETABLE realiza la transición de contexto del contexto de fila al contexto de filtro para la expresión.
Sintaxis:
CALCULATE ( < tabla > [, < filtro > [, < filtro > [, ... ] ] ] )
- <tabla>: expresión de tabla a evaluar en nuevo contexto.
- <filtro>: expresión (opcional) booleana o de tabla que define filtro o modificador de filtro a aplicar.
Existen dos formas de escribir los filtros.
- Sintaxis corta: especifica el filtro a aplicar como una condición, es decir, como una expresión booleana.

- Sintaxis larga: llama a las funciones FILTER y ALL para crear una tabla virtual con el filtro a aplicar, es decir, utiliza una expresión de tabla como filtro.

Ambas sintaxis son equivalentes. En el trasfondo, la sintaxis corta se convierte en la sintaxis larga antes de ejecutarse el código. Cabe mencionar que no todos los filtros se pueden especificar como condiciones, y se requiere utilizar la sintaxis larga, como en el caso de usar medidas como filtros.
Existen además modificadores de filtro, utilizados como argumentos de filtro, que proporcionan control adicional sobre el contexto de filtro al momento de modificarlo. Estos modificadores pueden remover o agregar filtros, manteniendo filtros existentes, así como ajustar direcciones de propagación de filtros y activar o desactivar relaciones de tabla.
Entre los más importantes destacan:
- KEEPFILTERS, REMOVEFILTERS
- ALL, ALLSELECTED, ALLEXCEPT
- USERELATIONSHIP, CROSSFILTER
Ejemplo:


- CALCULATETABLE evalúa el argumento de filtro, la condición Ingresos > 5,000,000.
- La función devuelve una lista de Canales distintos que cumplen con la condición impuesta por el filtro.
