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

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

El filtro matricial filtra los resultados necesarios

Hola

Tengo una matriz en la que tengo un filtro creado para mostrar solo los elementos (NDC usado) que cumplen una condición dinámica. Para cada elemento, una fórmula (Selección de acumulación M) devuelve un 1 si es verdadero y BLANK() si es falso. Esto parece estar funcionando.

Actualmente, la fórmula tiene en cuenta la fecha más reciente (18/04/24) y compara la cantidad (Tipo SUMA) con la fecha disponible anterior (15/04/24). Si la cantidad de la fecha anterior es >=0 y la cantidad de la fecha anterior es < 0, entonces se devuelve un 1, de lo contrario BLANK(). **Básicamente, estoy buscando elementos que hayan pasado de positivo/cero a negativo.**

La fórmula está funcionando, aquí están los datos cuando la descargo en la Matriz sin filtros:

jhollingworth_0-1713794134373.png

El problema es que cuando filtro la matriz para mostrar solo valores de 1 para (Selección de acumulación M), solo se muestran dos de los elementos:

jhollingworth_1-1713794184670.png

No puedo entender por qué no se muestran los otros dos elementos (338114403 y 54643564901).

Cualquier ayuda es apreciada y ¡Gracias!

1 ACCEPTED SOLUTION

Esto ayudó. Tuve que hacer algunos ajustes, pero a continuación se muestra lo que funcionó.

Selección de acumulación M =
FUERON MAXDSEL = MAXX(RESUMIR(TODOS SELECCIONADOS('acumulaciones'[fecha]),'acumulaciones'[fecha],"Fecha máxima", 'Acumulaciones'[Fecha]),[Fecha máxima])
FUERON PREVD = CALCULAR( MÁXIMO('Acumulaciones'[Fecha]), 'Acumulaciones'[Fecha] < MAXDSEL )
FUERON PREVDATE = COMPENSAR( -1, ORDENAR('Acumulaciones'[Fecha]) )
FUERON PREVSUM = CALCULAR( MÁXIMO('Acumulaciones'[Tipo suma]), 'Acumulaciones'[Fecha] = PREVD )
FUERON CURSUM = CALCULAR( MÁXIMO('Acumulaciones'[Tipo suma]), 'Acumulaciones'[Fecha] = MAXDSEL )

DEVOLUCIÓN
INTERRUPTOR(
VERDADERO(),
SELECTEDVALUE('Medidas de acumulación'[Encabezado#]) = ESPACIO EN BLANCO(),
1,


SELECTEDVALUE('Medidas de acumulación'[Encabezado#]) = 3,
SI(
NO ISBLANK( PREVSUM ),
INTERRUPTOR(
VERDADERO(),
PREVSUM >= 0 > CURSUM <0, 1
)
)
)

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Este @झोलिंगवर्थ ,

A continuación se muestra mi tabla:

vxiandatmsft_0-1713852540713.png

El siguiente DAX podría funcionar para usted:

Accumulation Selection M = 
VAR MAXD =  MAX('Accumulations'[Date])
VAR PREVD = CALCULATE( MAX('Accumulations'[Sum]), 'Accumulations'[Date] < MAXD )
VAR EVD = CALCULATE(MIN(Accumulations[Sum]),Accumulations[Date] = MAXD)
RETURN
 IF(EVD < 0 && PREVD >= 0 , 1 , BLANK())

El resultado final se muestra en la siguiente figura:

vxiandatmsft_1-1713852594805.png

SI desea filtrar la selección de acumulación M, y puede hacer clic en esto:

vxiandatmsft_2-1713852659352.png

Saludos

Xianda Tang

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Esto ayudó. Tuve que hacer algunos ajustes, pero a continuación se muestra lo que funcionó.

Selección de acumulación M =
FUERON MAXDSEL = MAXX(RESUMIR(TODOS SELECCIONADOS('acumulaciones'[fecha]),'acumulaciones'[fecha],"Fecha máxima", 'Acumulaciones'[Fecha]),[Fecha máxima])
FUERON PREVD = CALCULAR( MÁXIMO('Acumulaciones'[Fecha]), 'Acumulaciones'[Fecha] < MAXDSEL )
FUERON PREVDATE = COMPENSAR( -1, ORDENAR('Acumulaciones'[Fecha]) )
FUERON PREVSUM = CALCULAR( MÁXIMO('Acumulaciones'[Tipo suma]), 'Acumulaciones'[Fecha] = PREVD )
FUERON CURSUM = CALCULAR( MÁXIMO('Acumulaciones'[Tipo suma]), 'Acumulaciones'[Fecha] = MAXDSEL )

DEVOLUCIÓN
INTERRUPTOR(
VERDADERO(),
SELECTEDVALUE('Medidas de acumulación'[Encabezado#]) = ESPACIO EN BLANCO(),
1,


SELECTEDVALUE('Medidas de acumulación'[Encabezado#]) = 3,
SI(
NO ISBLANK( PREVSUM ),
INTERRUPTOR(
VERDADERO(),
PREVSUM >= 0 > CURSUM <0, 1
)
)
)
Syndicate_Admin
Administrator
Administrator

Una actualización,
Parece que el filtro se está saliendo de la suma del filtro para todas las fechas.

jhollingworth_1-1713805008619.png

Cuando sumo los otros dos elementos, la selección de acumulación M en el total es igual a -1.
¿Cómo puedo ajustar el filtro para que solo se vea la última fecha?

Selección de acumulación M =
FUERON MÁX. = CALCULAR( MÁXIMO ('Acumulaciones'[Fecha]) )
FUERON PREVD = CALCULAR( MÁXIMO('Acumulaciones'[Fecha]), 'Acumulaciones'[Fecha] < MAXD )
FUERON PREVSUM = COMPENSAR( -1, ORDENAR('Acumulaciones'[Fecha]) )
DEVOLUCIÓN
INTERRUPTOR(
VERDADERO(),
SELECTEDVALUE('Medidas de acumulación'[Header#]) = "De negativo a positivo",
SI (
CALCULAR( [SUM Tipo SUM (Acc)], PREVSUM ) >= 0 &&; [Tipo SUM SUM (Acc)] < 0 ,
1, -1),

Helpful resources

Announcements
June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

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

May 2025 Monthly Update

Fabric Community Update - May 2025

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

Top Solution Authors