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

Get inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.

Reply
Syndicate_Admin
Administrator
Administrator

DAX: ¿Alguien puede ayudarme a entender la diferencia entre estos dos códigos DAX que he escrito?

He escrito estos dos conjuntos de códigos. ¿Alguien puede decirme en un lenguaje sencillo cómo se evalúan estos dos? La segunda versión me da la respuesta deseada. Mi comprensión del segundo es la siguiente:

SUMX abre el contexto de fila sobre la tabla producida como salida de FILTER. A continuación, SUMX evalúa VAL en cada fila de la tabla de salida. CALCULATE elimina el filtro de fecha para que SUMX evalúe todas las fechas disponibles.

Estoy confundido ¿por qué el primero no está dando el mismo resultado? El primer código DAX se evalúa como si no se estuviera aplicando Removefilter.

AP = CALCULATE(
                SUM('Net Cash Position'[Val])
                ,REMOVEFILTERS('Date')
                ,FILTER('Net Cash Position'
                        ,'Net Cash Position'[Metric] = "Accounts Payable"
                        )
                )
AP = CALCULATE(
                SUMX(
                    FILTER(
                        'Net Cash Position'
                        ,'Net Cash Position'[Metric] = "Accounts Payable"
                        )
                     ,'Net Cash Position'[Val]
                    )
                ,REMOVEFILTERS('Date')
                )

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

En el primer ejemplo, REMOVEFILTERS no se está aplicando a la función FILTER, tanto ella como FILTER se aplican solo a la función SUM.

En el segundo ejemplo, debido a que FILTER está dentro del SUMX, está recogiendo el contexto que incluye los REMOVEFILTERS.

En una función CALCULATE, los filtros que se aplican al mismo nivel, como en el primer ejemplo, no se aplican entre sí, simplemente se agregan al contexto del filtro que se utiliza para el cálculo principal.

Gracias por la respuesta. Esa explicación ayuda, pero tengo una pregunta de seguimiento con respecto al ejemplo de código 1.


@johnt75 escribió:

En el primer ejemplo, REMOVEFILTERS no se está aplicando a la función FILTER, tanto ella como FILTER se aplican solo a la función SUM.

En el segundo ejemplo, debido a que FILTER está dentro del SUMX, está recogiendo el contexto que incluye los REMOVEFILTERS.

En una función CALCULATE, los filtros que se aplican al mismo nivel, como en el primer ejemplo, no se aplican entre sí, simplemente se agregan al contexto del filtro que se utiliza para el cálculo principal.


Teniendo en cuenta este aspecto de la función CALCULATE, en el ejemplo de código 1, REMOVEFILTER eliminará el filtro de fecha y FILTER obtendrá las filas sobre las que quiero hacer la suma. Sé que esta interpretación del código es errónea. ¿Puedes decirme qué pasa aquí?

FILTER recuperará las filas que coincidan con "Cuentas por pagar" con el contexto de filtro existente en su lugar, por lo que cualquier filtro en la tabla de fechas también estará activo. Por lo tanto, solo devolverá filas que coincidan con Cuentas por pagar y que coincidan con los filtros de la tabla de fechas.

Cuando se llama a REMOVEFILTERS, realmente no hay nada que hacer, ya que todos los filtros de fecha ya se han aplicado.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code FABINSIDER for a $400 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

March2025 Carousel

Fabric Community Update - March 2025

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

Top Solution Authors
Top Kudoed Authors