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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric 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
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.

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

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

MayPowerBICarousel1

Power BI Monthly Update - May 2024

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

Top Solution Authors
Top Kudoed Authors