CALCULATECALCULATE

  • 07/06/2020
  • 4 minutos de lectura
    • M
    • o
  • Evalúa una expresión en un contexto de filtro modificado.Evalúa una expresión en un contexto de filtro modificado.

    Notas

    También tienes la función CALCULATETABLE.También está la función CALCULATETABLE. Realiza exactamente la misma funcionalidad, excepto que modifica el contexto del filtro aplicado a una expresión que devuelve un objeto de tabla.

    SintaxisSintaxis

CALCULATE(<expression>]])

ParámetrosParámetros

TérminoTérmino DefiniciónDefinition
expresiónexpression Expresión a evaluar.La expresión a evaluar.
filtro1, filtro2, etc.filtro1, filtro2,… (Opcional) Expresiones booleanas o expresiones de tabla que definen filtros, o funciones modificadoras de filtros.

La expresión utilizada como primer parámetro es esencialmente la misma que una medida.

Ejemplos de filtros:Los filtros pueden ser:

  • Expresiones de filtro booleanasExpresiones de filtro booleanas
  • Expresiones de filtro de tablaExpresiones de filtro de tabla
  • Funciones de modificación de filtrosFunciones de modificación de filtros
  • Si tiene varios filtros, se evalúan utilizando el operador lógico AND.Cuando hay varios filtros, se evalúan utilizando el operador lógico AND. Esto significa que todas las condiciones deben ser TRUE al mismo tiempo.

    Expresiones de filtro booleano

    Un filtro de expresión booleano es una expresión que evalúa a TRUE o FALSE. Hay varias reglas que deben cumplir:

    • Sólo pueden hacer referencia a una única columna.
    • No pueden referenciar medidas.
    • No pueden utilizar una función CALCULAR anidada.
    • No pueden utilizar funciones que exploren o devuelvan una tabla, incluidas las funciones de agregación.

    Expresión de filtro de tablaExpresión de filtro de tabla

    Un filtro de expresión de tabla aplica un objeto de tabla como filtro. Podría ser una referencia a una tabla modelo, pero lo más probable es que sea una función que devuelva un objeto de tabla. Puede utilizar la función FILTER para aplicar condiciones de filtro complejas, incluidas las que no pueden definirse mediante una expresión de filtro booleana.

    Funciones de modificación de filtrosFunciones de modificación de filtros

    Las funciones de modificación de filtros le permiten hacer algo más que simplemente añadir filtros. Le proporcionan un control adicional al modificar el contexto del filtro.

    FunciónFunción PropósitoPropósito
    REMOVERFILTROSREMOVERFILTROS Eliminar todos los filtros, o los filtros de una o más columnas de una tabla, o todas las columnas de una sola tabla.Eliminar todos los filtros, o los filtros de una o varias columnas de una tabla, o de todas las columnas de una sola tabla.
    ALL 1, ALLEXCEPT, ALLNOBLANKROWALL 1, ALLEXCEPT, ALLNOBLANKROW Eliminar los filtros de una o varias columnas o de todas las columnas de una misma tabla.Eliminar los filtros de una o varias columnas o de todas las columnas de una misma tabla.
    Mantener filtrosMantener filtros Añadir filtro sin eliminar los filtros existentes en las mismas columnas.Añadir filtro sin eliminar los filtros existentes en las mismas columnas.
    USERELATIONSHIPUSERELATIONSHIP Engager une relation inactive entre des colonnes associées, auquel cas la relation active devient automatiquement inactive.Engage an inactive relationship between related columns, in which case the active relationship will automatically become inactive.
    CROSSFILTERCROSSFILTER Modificar la dirección del filtro (de dos direcciones a una dirección o viceversa) o desactivar una relación.Modificar la dirección del filtro (de ambos a uno, o de uno a ambos) o desactivar una relación.

    1 La función ALL y sus variantes se comportan a la vez como modificadores de filtro y como funciones que devuelven objetos de tabla.1 La función ALL y sus variantes se comportan a la vez como modificadores de filtro y como funciones que devuelven objetos de tabla. Si la función REMOVEFILTERS es soportada por su herramienta, es mejor utilizarla para eliminar los filtros.

    Valor devueltoValor devuelto

    Valor resultante de la expresión.El valor que es el resultado de la expresión.

    NotasObservaciones

    • Cuando se proporcionan expresiones de filtro, la función CALCULAR modifica el contexto del filtro para evaluar la expresión. Para cada expresión de filtro, hay dos posibles resultados estándar cuando la expresión de filtro no está envuelta en la función KEEPFILTERS:

      • Si las columnas (o tablas) no están en el contexto de filtro, se añaden nuevos filtros al contexto de filtro para evaluar la expresión.Si las columnas (o tablas) no están en el contexto del filtro, se añadirán nuevos filtros al contexto del filtro para evaluar la expresión.
      • Si las columnas (o tablas) ya están en el contexto del filtro, los filtros existentes son sobrescritos por los nuevos filtros para evaluar la expresión CALCULAR.Si las columnas (o tablas) ya están en el contexto del filtro, los filtros existentes serán sobrescritos por los nuevos filtros para evaluar la expresión CALCULAR.
    • La función CALCULAR utilizada sin filtros consigue un requisito específico. Transita el contexto de la fila al contexto del filtro. Se requiere cuando una expresión (no una medida del modelo) que resume los datos del modelo necesita ser evaluada en el contexto de la fila. Este escenario puede ocurrir en una fórmula de columna calculada o cuando se evalúa una expresión en una función iteradora. Tenga en cuenta que cuando se utiliza una medida del modelo en el contexto de la fila, la transición del contexto es automática.
    • Esta función no es compatible para su uso en el modo DirectQuery cuando se utiliza en columnas calculadas o reglas de seguridad a nivel de fila (RLS).

      • EjemplosEjemplos

        La siguiente definición de medida de la tabla de ventas produce un resultado de ingresos, pero sólo para los productos que tienen el color azul.

        Los ejemplos de este artículo se pueden añadir a la plantilla de ejemplos de Power BI Desktop. Para obtener el modelo, consulte DAX.Los ejemplos de este artículo pueden añadirse al modelo de muestra de Power BI Desktop. Para obtener el modelo, consulte el modelo de ejemplo de DAX.

Blue Revenue =CALCULATE( SUM(Sales), 'Product' = "Blue")
CategoríaCategoría Importe de ventasImporte de ventas Ventas Productos azulesIngresos azules
AccesoriosAccesorios 1.272.057,89 US$1.272.057.89 165.406,62 US$165.406,62
BikesBikes 94.620.526,21 US$94.620.526.21 8,374,313.88 US$8,374,313.88
Ropa 2,117,613.45 US$2,117,613.45 259.488,37 $259.488,37
ComponentesComponentes 11.799.076,66 $11.799.076.66 803.642,10 US$803.642,10
TotalTotal 109.809.274,20 US$109.809.274,20 9.602.850,97 US$9.602.850.97

La función CALCULAR evalúa la suma de la columna Importe de ventas de la tabla Ventas en un contexto de filtro modificado. Se añade un nuevo filtro a la columna Color de la tabla Producto-o bien, el filtro sobrescribe cualquier filtro que ya esté aplicado a la columna.

La siguiente definición de medida de la tabla Ventas produce el porcentaje de ventas respecto al total para todos los canales de venta.La siguiente definición de la medida de la tabla de ventas produce un ratio de ventas sobre ventas para todos los canales de venta.

CanalCanal Importe de las ventasImporte de las ventas % de las ventas sobre a TotalIngresos % Total Canal
InternetInternet 29.358.677 dólares,22 $29,358,677.22 26,74%26,74%
ResellerReseller 80.450.596,98 $80.450.596.98 73,26%73,26%
TotalTotal 109.809.274,20 US$109.809.274,20 100,00%100.00%
Revenue % Total Channel =DIVIDE( SUM(Sales), CALCULATE( SUM(Sales), REMOVEFILTERS('Sales Order') ))

La función DIVIDE divide una expresión que calcula la suma de los valores de la columna Importe de ventas de la tabla Ventas (en el contexto de filtro) por la misma expresión en un contexto de filtro modificado.La función DIVIDE divide una expresión que suma el valor de la columna Importe de ventas de la tabla Ventas (en el contexto del filtro) por la misma expresión en un contexto de filtro modificado. Es la función CALCULAR la que modifica el contexto del filtro utilizando la función REMOVEFILTERS, que es una función modificadora de filtros. Elimina los filtros de la columna Canal de la tabla Pedido de ventas.

La siguiente definición de columna calculada de la tabla Cliente clasifica a los clientes en una clase de fidelidad. Es un escenario muy sencillo: cuando los ingresos producidos por el cliente son inferiores a 2.500 dólares, se clasifica en la clase Baja; en caso contrario, se clasifica en la clase Alta.Es un escenario muy sencillo: cuando los ingresos producidos por el cliente son inferiores a 2500 dólares, se clasifican como Bajos; en caso contrario, son Altos.

Customer Segment =IF( CALCULATE(SUM(Sales), ALLEXCEPT(Customer, Customer)) < 2500, "Low", "High")

En este ejemplo, el contexto de la fila se convierte en el contexto del filtro. Se conoce como transición de contexto. La función ALLEXCEPT elimina los filtros de todas las columnas de la tabla Customer excepto la columna CustomerKey.

Ver tambiénVer también

Contexto del filtroContexto del filtro
Contexto de las filas
CALCULATETABLE, funciónCALCULATETABLE
Funciones del filtroFunciones del filtro

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *