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
Syndicate_Admin
Administrator
Administrator

Cálculo basado en el cálculo del período anterior

Tengo algunos datos semanales de stock, que se parece a esto

Fin de semanaSOH actualEnOUT
1/09/20194992218100
8/09/2019 22135
15/09/2019 200113
22/09/20195050246128
29/09/2019 213151
6/10/2019 166160
13/10/2019 8894
20/10/2019 240118

Quiero añadir una columna calculada para determinar el stock disponible, donde el cálculo es:

SOH (la semana pasada) + IN - OUT

Sólo tengo información SOH real para algunos períodos, así que en ese caso, necesito usar el número SOH calculado en lugar de real, usando la fórmula (de excel):

CALC SOH ?

IF(ISBLANK(SOH real (LW)),

CALC SOH (LW) + IN - OUT,

SOH REAL (LW) + IN - OUT

Mi columna calculada para SOH (LW) es:

SOH LW ?
LOOKUPVALUE(
SOH[CALC SOH],
SOH[Fin de semana],
DATEADD(SOH[Fin de semana],-7,DAY)
)

Cuando hago esto en Power BI, obtengo una referencia circular. No puedo averiguar cómo implementar esto, por favor ayuda!

2 ACCEPTED SOLUTIONS

@david_michell

ha actualizado el DAX en función del resultado esperado.

Column = 
VAR lastsohdate=maxx(FILTER('Table','Table'[Week end]<EARLIER('Table'[Week end])&&NOT(ISBLANK('Table'[Actual SOH]))),'Table'[Week end])
VAR lastsoh=maxx(FILTER('Table','Table'[Week end]=lastsohdate),'Table'[Actual SOH])
return if(ISBLANK('Table'[Actual SOH]),lastsoh+sumx(FILTER('Table','Table'[Week end]<=EARLIER('Table'[Week end])&&'Table'[Week end]>lastsohdate),'Table'[IN])-sumx(FILTER('Table','Table'[Week end]<=EARLIER('Table'[Week end])&&'Table'[Week end]>lastsohdate),'Table'[OUT]),'Table'[Actual SOH])

1.PNG

View solution in original post

@david_michell

Para la respuesta tardía, he estado bastante ocupado estos días.

Column = 
VAR lastsohdate=MAXX(FILTER('Table','Table'[Date]<EARLIER('Table'[Date])&&'Table'[ACTUAL SOH]<>0&&'Table'[State]=EARLIER('Table'[State])),'Table'[Date])
VAR lastsoh=maxx(FILTER('Table','Table'[Date]=lastsohdate&&'Table'[State]=EARLIER('Table'[State])),'Table'[Actual SOH])
return if(ISBLANK('Table'[Actual SOH]),lastsoh+sumx(FILTER('Table','Table'[Date]<=EARLIER('Table'[Date])&&'Table'[Date]>lastsohdate&&'Table'[State]=EARLIER('Table'[State])),'Table'[IN])-sumx(FILTER('Table','Table'[Date]<=EARLIER('Table'[Date])&&'Table'[Date]>lastsohdate&&'Table'[State]=EARLIER('Table'[State])),'Table'[OUT]),'Table'[Actual SOH])

1.PNG

View solution in original post

10 REPLIES 10
Syndicate_Admin
Administrator
Administrator

@david_michell

¿Es esto lo que quieres?

Column = 
VAR lastsohdate=maxx(FILTER('Table','Table'[Week end]<EARLIER('Table'[Week end])&&NOT(ISBLANK('Table'[Actual SOH]))),'Table'[Week end])
VAR lastsoh=maxx(FILTER('Table','Table'[Week end]=lastsohdate),'Table'[Actual SOH])
return if(ISBLANK('Table'[Actual SOH]),lastsoh+sumx(FILTER('Table','Table'[Week end]<=EARLIER('Table'[Week end])&&'Table'[Week end]>=lastsohdate),'Table'[IN])-sumx(FILTER('Table','Table'[Week end]<=EARLIER('Table'[Week end])&&'Table'[Week end]>=lastsohdate),'Table'[OUT]),'Table'[Actual SOH]+'Table'[IN]-'Table'[OUT])

1.PNG

Desgraciadamente no.

Esto es lo que espero:

david_michell_0-1613622525540.png

David

@david_michell

ha actualizado el DAX en función del resultado esperado.

Column = 
VAR lastsohdate=maxx(FILTER('Table','Table'[Week end]<EARLIER('Table'[Week end])&&NOT(ISBLANK('Table'[Actual SOH]))),'Table'[Week end])
VAR lastsoh=maxx(FILTER('Table','Table'[Week end]=lastsohdate),'Table'[Actual SOH])
return if(ISBLANK('Table'[Actual SOH]),lastsoh+sumx(FILTER('Table','Table'[Week end]<=EARLIER('Table'[Week end])&&'Table'[Week end]>lastsohdate),'Table'[IN])-sumx(FILTER('Table','Table'[Week end]<=EARLIER('Table'[Week end])&&'Table'[Week end]>lastsohdate),'Table'[OUT]),'Table'[Actual SOH])

1.PNG

Gracias @ryan_mayu

Se me ha dado una complicación adicional, donde necesito incluir un estado:

david_michell_0-1613956792034.png

¿Cómo modificaría el DAX para incluirlo?

Gracias

David

@david_michell

Para la respuesta tardía, he estado bastante ocupado estos días.

Column = 
VAR lastsohdate=MAXX(FILTER('Table','Table'[Date]<EARLIER('Table'[Date])&&'Table'[ACTUAL SOH]<>0&&'Table'[State]=EARLIER('Table'[State])),'Table'[Date])
VAR lastsoh=maxx(FILTER('Table','Table'[Date]=lastsohdate&&'Table'[State]=EARLIER('Table'[State])),'Table'[Actual SOH])
return if(ISBLANK('Table'[Actual SOH]),lastsoh+sumx(FILTER('Table','Table'[Date]<=EARLIER('Table'[Date])&&'Table'[Date]>lastsohdate&&'Table'[State]=EARLIER('Table'[State])),'Table'[IN])-sumx(FILTER('Table','Table'[Date]<=EARLIER('Table'[Date])&&'Table'[Date]>lastsohdate&&'Table'[State]=EARLIER('Table'[State])),'Table'[OUT]),'Table'[Actual SOH])

1.PNG

Eso parece funcionar.

Sólo para que entiendo, lo que esto está haciendo es sumar los IN y OU desde el último SOH real a la fecha actual, y agregar al último SOH real?

Gracias

David

@david_michell

Eso basado en la fórmula de Excel que proporcionó. Si tenemos real, entonces tome real. Si no, tomamos el real anterior y añadimos todo a partir de ese momento y menos todo a partir de ese momento

Syndicate_Admin
Administrator
Administrator

No @david_michell

¿Cómo se calcula su SOH para la primera fila sin SOH LW y LW real? ¿Puede proporcionar la columna SOH esperada en los datos de ejemplo anteriores? ¿Está buscando una solución en M o DAX?

Estos serían mis valores esperados.

1/09/19 - 4992

8/9/19 - 4879

15/9/19 - 4966

22/9/19 - 5050 (igual que el real)

29/9/19 - 5112

6/10/19 - 5118

Intenté poner una mesa, pero seguía recibiendo un error.

Si hay un SOH real, que se convierte en el SOH CALC.

Estoy buscando una solución DAX, ya que vengo de una tabla calculada, y necesito un resultado para cada semana, incluso cuando los datos base no están allí.

¡Gracias!

Syndicate_Admin
Administrator
Administrator

@david_michell , Pruebe una nueva columna como

nueva columna ?
var _max [Fin de semana] - 7
devolución
maxx(filter(Table, [Week end] á _max),[SOH]) + [IN] - [OUT]

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.