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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

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
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

Power BI Carousel June 2024

Power BI Monthly Update - June 2024

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

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

Top Solution Authors
Top Kudoed Authors