Compartir a través de


CALCULATETABLE

Se aplica a:columna CalculadaTabla calculadaMeasurecálculo visual

Evalúa una expresión de tabla en un contexto de filter modificado.

Nota

También hay la función CALCULATE. Realiza exactamente la misma funcionalidad, modifica el contexto aplicado a una expresión que devuelve un escalar .

Sintaxis

CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])

Parámetros

Término Definición
expression Expresión de tabla que se va a evaluar.
filter1, filter2,… (Opcional) Las expresiones booleanas or expresiones de tabla que definen filters, orfilter funciones modificadores.

La expresión usada como parámetro first debe ser una tabla de modelo or una función que devuelve una tabla.

Filters puede ser:

  • Expresiones de filter booleanas
  • Expresiones de filter de tabla
  • funciones de modificación de Filter

Cuando hay varios filters, se evalúan mediante el operador lógico AND. Esto significa que las condiciones de all deben TRUE al mismo time.

Expresiones de filter booleanas

Una expresión booleana filter es una expresión que se evalúa como TRUEorFALSE. Hay varias reglas que deben cumplir:

  • Solo pueden hacer referencia a una sola columna.
  • No pueden hacer referencia a medidas.
  • No pueden usar una función CALCULATE anidada.

A partir de la versión de septiembre de 2021 de Power BI Desktop, también se aplica lo siguiente:

  • No pueden usar funciones que examinan or devuelven una tabla a menos que se pasen como argumentos a las funciones de agregación.
  • pueden contener una función de agregación que devuelve un valueescalar.

Expresión de filter de tabla

Una expresión de tabla filter aplica un objeto table como filter. Podría ser una referencia a una tabla de modelo, pero es más probable que sea una función que devuelva un objeto table. Puede usar la función FILTER para aplicar condiciones de filter complejas, incluidas las que no se pueden definir mediante una expresión de filter booleana.

funciones modificadores de Filter

Filter funciones modificadores permiten hacer más que simplemente agregar filters. Proporcionan control adicional al modificar filter contexto.

Función Propósito
REMOVEFILTERS Quite allfilters, orfilters de una or más columnas de una tabla or de all columnas de una sola tabla.
ALL 1, ALLEXCEPT, ALLNOBLANKROW Quite filters de una or más columnas, or de all columnas de una sola tabla.
KEEPFILTERS Agregue filter sin quitar los filters existentes en las mismas columnas.
USERELATIONSHIP Interactuar con una relación inactiva entre related columnas, en cuyo caso la relación activa se volverá inactiva automáticamente.
CROSSFILTER Modifique filter dirección (de ambos a únicos or de single a ambos) or deshabilite una relación.

1 La función ALLand sus variantes se comportan como modificadores filterand como funciones que devuelven objetos de tabla. If la función REMOVEFILTERS es compatible con la herramienta, es mejor usarlo para quitar filters.

Devolver value

Tabla de values.

Observaciones

  • Cuando se proporcionan expresiones filter, la función CALCULATETABLE modifica el contexto de filter para evaluate la expresión. Para cada expresión de filter, hay dos posibles resultados estándar cuando la expresión de filter se not encapsulada en la función KEEPFILTERS:

    • If las columnas (tablas deor) no están en el contexto de filter, se agregarán nuevas filters al contexto de filter para evaluate la expresión.
    • If las columnas (tablas deor) ya están en el contexto de filter, el nuevo filters sobrescribirá la nueva filtersfilters para evaluate la expresión CALCULATETABLE.
  • Esta función se not se admite para su uso en el modo DirectQuery cuando se usa en columnas calculadas or reglas de seguridad de nivel de fila (RLS).

Ejemplo

En el ejemplo siguiente se usa la función CALCULATETABLE para obtener el sum de ventas por Internet para 2006. Este value se usa más adelante para calculate la proporción de ventas por Internet en comparación con las ventas de all para el year 2006.

La fórmula siguiente:

= SUMX(
    CALCULATETABLE(
        'InternetSales_USD',
        'DateTime'[CalendarYear] = 2006
    ),
    [SalesAmount_USD]
)

Da como resultado la tabla siguiente:

Etiquetas de fila Internet SalesAmount_USD CalculateTable 2006 Internet Sales Internet Sales to 2006 ratio
2005 $2,627,031,40 $5,681,440.58 0.46
2006 $5,681,440.58 $5,681,440.58 1.00
2007 $8.705.066.67 $5,681,440.58 1.53
2008 $9.041,288.80 $5,681,440.58 1.59
Total general $26.054.827.45 $5,681,440.58 4.59