Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Pregunta teórica sobre el uso de DATESMTD con CALCULATE

Hola a todos

La documentación de MS proporciona este ejemplo a continuación para explicar la función DATESMTD:

calcular(suma(InternetSales_USD[SalesAmount_USD]), FECHASMTD(DateTime[DateKey]))

Mi pregunta es que según la sintaxis de la función CALCULATE, DATESMTD parece un filtro.

Pero aquí no está filtrando nada. Sólo está cambiando el contexto de cálculo que se debe hacer por mes a día.

Entonces, ¿por qué la función DATESMTD en el ejemplo anterior se considera y se coloca como "FILTRO" en la fórmula CALCULATE?

¿FILTER no es equivalente a eliminar elementos?

2 ACCEPTED SOLUTIONS
Syndicate_Admin
Administrator
Administrator

@Gguliani



La función CALCULATE acepta el siguiente tipo de parámetros después de Expression.

  • Expresiones de filtro booleanas
  • Expresiones de filtro de tabla
  • Funciones de modificación del filtro

En el ejemplo mtd es una expresión de filtro de tabla que se aplica aquí. CALCULATE filtra la columna DateTime[DateKey] con un intervalo de fechas de 1pt del mes a la fecha actual en segundo plano al aplicar la función DATESMTD.

¿Esperas que esto aclare tu pregunta?

Artículos:
https://dax.guide/calculate/
https://docs.microsoft.com/en-us/dax/calculate-function-dax


View solution in original post

Syndicate_Admin
Administrator
Administrator

No @Gguliani

Es un punto válido. Todo se reduce a la terminología. Aquí debe leer FILTER no como la selección habitual de la operación de filas, sino como contexto de filtro. El punto completo de CALCULATE es evaluar la expresión en un contexto de filtro modificado. Cada uno de esos argumentos "FILTER" descritos en la documentación se utiliza para modificar el contexto del filtro y puede ser:

A) operación de eliminación de filtros (como ALL, ALLEXCEPT, ALLNOBLANKROW)

B) operación de restauración de filtros (ALLSELECTED)

C) expresión de tabla, que devuelve una lista de valores para una o más columnas o para toda una tabla expandida

El punto C) sería el que está en juego en tu ejemplo datesmtd

Eche un vistazo a https://dax.guide/calculate/ para obtener una visión general más completa

SU18_powerbi_badge

Por favor, acepte la solución cuando haya terminado y considere la posibilidad de dar un pulgar hacia arriba si las publicaciones son útiles.

Póngase en contacto conmigo de forma privada para obtener soporte con cualquier necesidad de BI a mayor escala, tutoría, etc.

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

No @Gguliani

Es un punto válido. Todo se reduce a la terminología. Aquí debe leer FILTER no como la selección habitual de la operación de filas, sino como contexto de filtro. El punto completo de CALCULATE es evaluar la expresión en un contexto de filtro modificado. Cada uno de esos argumentos "FILTER" descritos en la documentación se utiliza para modificar el contexto del filtro y puede ser:

A) operación de eliminación de filtros (como ALL, ALLEXCEPT, ALLNOBLANKROW)

B) operación de restauración de filtros (ALLSELECTED)

C) expresión de tabla, que devuelve una lista de valores para una o más columnas o para toda una tabla expandida

El punto C) sería el que está en juego en tu ejemplo datesmtd

Eche un vistazo a https://dax.guide/calculate/ para obtener una visión general más completa

SU18_powerbi_badge

Por favor, acepte la solución cuando haya terminado y considere la posibilidad de dar un pulgar hacia arriba si las publicaciones son útiles.

Póngase en contacto conmigo de forma privada para obtener soporte con cualquier necesidad de BI a mayor escala, tutoría, etc.

Syndicate_Admin
Administrator
Administrator

@Gguliani



La función CALCULATE acepta el siguiente tipo de parámetros después de Expression.

  • Expresiones de filtro booleanas
  • Expresiones de filtro de tabla
  • Funciones de modificación del filtro

En el ejemplo mtd es una expresión de filtro de tabla que se aplica aquí. CALCULATE filtra la columna DateTime[DateKey] con un intervalo de fechas de 1pt del mes a la fecha actual en segundo plano al aplicar la función DATESMTD.

¿Esperas que esto aclare tu pregunta?

Artículos:
https://dax.guide/calculate/
https://docs.microsoft.com/en-us/dax/calculate-function-dax


Gracias @Fowmy esa explicación ayudó. Sólo una pequeña consulta de seguimiento:

¿Tiene sentido mi explicación a continuación? Quiero decir, ¿es compatible, contrarresta tu explicación o es incorrecto totalmente?

DATESMTD (DateTable[Date]) que según la sintaxis de la función CALCULATE aparece como un filtro es en realidad sólo un contexto. Y cuando pasamos el cursor sobre esa parte filter en la inteligencia de la fórmula- PBI sugiere que [Filter1] "evalúa una expresión en un contexto modificado por filtros". Lo que parece sugerir que aunque si no quita (filtrar) elementos todavía calcula la expresión por el contexto proporcionado por DATESMTD

@Gguliani

Tienes razón. Un punto en la eliminación de filtros además de agregar filtros es que CALCULATE también acepta modificadores de filtro.


Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.