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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
naitx23
Regular Visitor

Campo calculado basado en la fila anterior

Hola

Estoy tratando de calcular el siguiente campo (resultados) en PBI ( editor de consultas ). El cálculo debe agruparse por CustomerCode, ITEM, TYPE y la primera fila del grupo debe calcularse como Z1+X1-X2 y, a continuación, la 2a hasta la última fila del grupo debe ser el resultado anterior+X1-X2. Avísame si tienes alguna solución en mente. Gracias de antemano

1a fila - Z1 + X1– X2 ; 15-0-4 x 11

2a fila - prevresult(1a fila) + X1 – X2 ; 11+0-1 a 10

WeekStartCustomerCodeArtículoDepartamentoTipoZ1X1X2Resultado Fórmula
9/28/2020AaamanzanaFinalA15 411 Z1 - X1 + X215 + 0 - 4 x 11
10/5/2020AaamanzanaFinalA15 110 PrevResult + X1 - X211 + 0 - 1 x 10
11/2/2020AaamanzanaFinalA153 13 PrevResult + X1 - X210 + 3 - 0 x 13
10/12/2020AaamanzanaOPSB10 19 Z1 - X1 + X210 + 0 - 1 x 9
10/19/2020AaamanzanaOPSB10 27 PrevResult + X1 - X29 + 0 - 2 x 7
11/2/2020AaamanzanaOPSB10 16 PrevResult + X1 - X27 + 0 - 1 x 6
9/21/2020AaaPlátanoOPSA131 14 Z1 - X1 + X213 + 1 - 0 x 14
10/5/2020AaaPlátanoOPSA13 113 PrevResult + X1 - X214 + 0 - 1 x 13
10/12/2020AaaPlátanoOPSA131311 PrevResult + X1 - X213 + 1 - 3 x 11

1 ACCEPTED SOLUTION
ryan_mayu
Super User
Super User

@naitx23

Puede utilizar DAX para crear una columna (no en el editor de consultas)

1.PNG

Column = 
VAR _start=CALCULATE(min('Table'[WeekStart]),ALLEXCEPT('Table','Table'[CustomerCode],'Table'[ITEM],'Table'[Type]))
VAR Z1= MAXX(FILTER('Table','Table'[WeekStart]=_start&&'Table'[CustomerCode]=EARLIER('Table'[CustomerCode])&&'Table'[ITEM]=EARLIER('Table'[ITEM])&&'Table'[Type]=EARLIER('Table'[Type])),'Table'[Z1])
VAR X1=SUMX(FILTER('Table','Table'[CustomerCode]=EARLIER('Table'[CustomerCode])&&'Table'[ITEM]=EARLIER('Table'[ITEM])&&'Table'[Type]=EARLIER('Table'[Type])&&'Table'[WeekStart]<=EARLIER('Table'[WeekStart])),'Table'[X1])
VAR X2=SUMX(FILTER('Table','Table'[CustomerCode]=EARLIER('Table'[CustomerCode])&&'Table'[ITEM]=EARLIER('Table'[ITEM])&&'Table'[Type]=EARLIER('Table'[Type])&&'Table'[WeekStart]<=EARLIER('Table'[WeekStart])),'Table'[X2])
RETURN Z1+X1-X2

2.PNG





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




View solution in original post

5 REPLIES 5
ryan_mayu
Super User
Super User

@naitx23

Puede utilizar DAX para crear una columna (no en el editor de consultas)

1.PNG

Column = 
VAR _start=CALCULATE(min('Table'[WeekStart]),ALLEXCEPT('Table','Table'[CustomerCode],'Table'[ITEM],'Table'[Type]))
VAR Z1= MAXX(FILTER('Table','Table'[WeekStart]=_start&&'Table'[CustomerCode]=EARLIER('Table'[CustomerCode])&&'Table'[ITEM]=EARLIER('Table'[ITEM])&&'Table'[Type]=EARLIER('Table'[Type])),'Table'[Z1])
VAR X1=SUMX(FILTER('Table','Table'[CustomerCode]=EARLIER('Table'[CustomerCode])&&'Table'[ITEM]=EARLIER('Table'[ITEM])&&'Table'[Type]=EARLIER('Table'[Type])&&'Table'[WeekStart]<=EARLIER('Table'[WeekStart])),'Table'[X1])
VAR X2=SUMX(FILTER('Table','Table'[CustomerCode]=EARLIER('Table'[CustomerCode])&&'Table'[ITEM]=EARLIER('Table'[ITEM])&&'Table'[Type]=EARLIER('Table'[Type])&&'Table'[WeekStart]<=EARLIER('Table'[WeekStart])),'Table'[X2])
RETURN Z1+X1-X2

2.PNG





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




@ryan_mayu ¡Muchas gracias! ¡Esto es exactamente lo que necesito!

@naitx23

¡De nada!





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




rogletree
Helper III
Helper III

Permítanme prefacio esto que todavía soy un poco nuevo para PBI, pero creo que sé cómo hacer lo que necesita.

Para ello, primero tendrá que agregar una columna de índice (prefiero empezar a partir de 0).

Una vez que tenga la columna de índice, puede crear una nueva columna calculada para utilizar una expresión DAX de la siguiente manera:

Columna - LOOKUPVALUE('*TableName*'[Resultado], '*TableName*'[Index], '*TableName*'[Index]-1)+0

Es posible que deba cambiar parte de la sintaxis para que funcione. Y obviamente para la primera fila, ya que no puede extraer datos de una fila anterior (ya que no hay una), es posible que deba colocar la expresión dentro de una expresión IF.

Puede haber una mejor manera de hacerlo, pero creo que al menos debería funcionar.

gracias por responder, pero si te das cuenta de cada inicio del grupo la fórmula es Z1 + X1 -X2.

en la primera fila la fórmula es Z1 + X1 -X2

fila siguiente hasta el final del grupo es previousresult(1a fila) + X1 - X2

WeekStartCustomerCodeArtículoDepartamentoTipoZ1X1X2Resultado Fórmula
9/28/2020AaamanzanaFinalA15 411 Z1 - X1 + X215 + 0 - 4 x 11
10/5/2020AaamanzanaFinalA15 110 PrevResult + X1 - X211 + 0 - 1 x 10
11/2/2020AaamanzanaFinalA153 13 PrevResult + X1 - X210 + 3 - 0 x 13
10/12/2020AaamanzanaOPSB10 19 Z1 - X1 + X210 + 0 - 1 x 9
10/19/2020AaamanzanaOPSB10 27 PrevResult + X1 - X29 + 0 - 2 x 7
11/2/2020AaamanzanaOPSB10 16 PrevResult + X1 - X27 + 0 - 1 x 6

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

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.