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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Dax para obtener el penúltimo valor distinto de cero por categoría.

Quiero escribir dos medidas de DAX que devuelvan el último y el penúltimo valor distinto de cero por categoría de la tabla siguiente.

Puedo obtener el último valor distinto de cero, sin embargo, no puedo obtener el segundo último número distinto de cero por la categoría .

CategoríaFechaNúmero
a01.12.20222
a01.01.20233
a01.02.20230
a01.03.20230
a01.04.2023
b01.10.20222
b01.11.20225
b01.12.20225
b01.01.20236
b01.02.20234
b01.03.20230
b01.04.2023
c01.09.20222
c01.10.2022
c01.11.2022
c01.12.20226
c01.01.2023
c01.02.20230
c01.03.20239
c01.04.2023

1. Último número distinto de cero por categoría

Medida 1 =
DÓNDE _maxdate = CALCULAR(..MAX(«cuadro»[fecha]), FILTRO(TODOS excepto('Tabla','Tabla'[Categoría]), 'Tabla'[Número]>0))
DEVOLUCIÓN
CALCULAR(..MAX('Tabla'[Número]),'Tabla'[Fecha] = _maxdate)
Medida 1 - Salida
CategoríaNúmero
a3
b4
c9

2. Del mismo modo, penúltimo número distinto de cero Número por categoría de la tabla.

Por favor, ayúdame a escribir la medida dax para devolver

Gracias de antemano.

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Hubo un par de problemas con eso. En primer lugar, se quejó de que podría haber valores duplicados, por lo que incluir el MATCHBY eliminó ese problema.

En segundo lugar, en la fila total habría varios valores devueltos, uno para cada categoría, por lo que arrojaría un error.

Syndicate_Admin
Administrator
Administrator

¿Cuál fue el problema en la primera solución, si puede explicarlo?

Syndicate_Admin
Administrator
Administrator

Usando los datos de muestra que publicaste, los tengo trabajando con

Second last = 
IF(
	ISINSCOPE( 'Table'[Category] ),
	SELECTCOLUMNS(
		INDEX(
			2,
			FILTER( 'Table', 'Table'[Number] > 0 ),
			ORDERBY( 'Table'[Date], DESC ),
			PARTITIONBY( 'Table'[Category] ),
			MATCHBY( 'Table'[Category], 'Table'[Date] )
		),
		"@value", 'Table'[Number]
	)
)
Syndicate_Admin
Administrator
Administrator

Recibo el siguiente error

wiz_lamp_0-1688460057056.png

Syndicate_Admin
Administrator
Administrator

Probar

Second last =
SELECTCOLUMNS (
    INDEX (
        2,
        FILTER ( 'Table', 'Table'[Number] > 0 ),
        ORDERBY ( 'Table'[Date], DESC ),
        PARTITIONBY ( 'Table'[Category] )
    ),
    "@value", 'Table'[Number]
)

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

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.