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
Anonymous
Not applicable

DAX para calcular la variación de Covid en los últimos 14 días

Hola chicos, ¿cómo están?

Tengo la siguiente situación, necesito saber si la variación de nuevos casos de Covid está aumentando o disminuyendo en un período de 14 días.

Tengo el promedio de movimiento calculado para los nuevos casos y ahora, me gustaría ckech si la última media de movimiento para ese período es mayor que el primero o menos que el primero (en porcentaje), como:

CADAMUROA_0-1605191101266.png

¿Puede alguien ayudarme, por favor?

Muchas gracias.

Adriano

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi guys, thank you very much for your help @vivran22  and @amitchandak ,

 

I get the dataset that have every day and use this dax to calc, according yours suggestion:

 

% of Variation (Last 14 registers)_ =

VAR _FirstValue = CALCULATE(AVERAGEX(DATESINPERIOD(caso_full_cidades[date],LASTDATE(caso_full_cidades[date]),-14,DAY),[SomaNovosCasosCidades]),FILTER(ALL(caso_full_cidades[date]), caso_full_cidades[date] = Max(caso_full_cidades[date])-13))
VAR _LastValue = CALCULATE(AVERAGEX(DATESINPERIOD(caso_full_cidades[date],LASTDATE(caso_full_cidades[date]),-14,DAY),[SomaNovosCasosCidades]),FILTER(ALL(caso_full_cidades[date]), caso_full_cidades[date] = Max(caso_full_cidades[date])))

VAR _Change = DIVIDE(_LastValue-_FirstValue,_FirstValue)*100
RETURN
_Change
 
and work perfectly.
 
Thank you very much.

 

View solution in original post

7 REPLIES 7
Anonymous
Not applicable

Hi guys, thank you very much for your help @vivran22  and @amitchandak ,

 

I get the dataset that have every day and use this dax to calc, according yours suggestion:

 

% of Variation (Last 14 registers)_ =

VAR _FirstValue = CALCULATE(AVERAGEX(DATESINPERIOD(caso_full_cidades[date],LASTDATE(caso_full_cidades[date]),-14,DAY),[SomaNovosCasosCidades]),FILTER(ALL(caso_full_cidades[date]), caso_full_cidades[date] = Max(caso_full_cidades[date])-13))
VAR _LastValue = CALCULATE(AVERAGEX(DATESINPERIOD(caso_full_cidades[date],LASTDATE(caso_full_cidades[date]),-14,DAY),[SomaNovosCasosCidades]),FILTER(ALL(caso_full_cidades[date]), caso_full_cidades[date] = Max(caso_full_cidades[date])))

VAR _Change = DIVIDE(_LastValue-_FirstValue,_FirstValue)*100
RETURN
_Change
 
and work perfectly.
 
Thank you very much.

 

amitchandak
Super User
Super User

@CADAMUROA , Puede usar la tabla de fechas y medir como

14 días detrás de las ventas: CALCULATE(SUM(Sales[Sales Amount]),dateadd('Date'[Date],-14,Day))

Este día: CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Date]-max('Date'[Date])))
14th Last Day ? CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Date]-max('Date'[Date])-14))

y tomar diferencia de estos

Para obtener lo mejor de la función de inteligencia del tiempo. Asegúrese de que tiene un calendario de fechas y que se ha marcado como la fecha en la vista de modelo. Además, únete a ella con la columna de fecha de tus hechos. Consulte :radacad sqlbi My Video Series Aprecia tus Felicitaciones.

Anonymous
Not applicable

Hola @amitchandak

Muchas gracias por su ayuda. Por lo tanto, no puedo obtener el número correcto a este variaton.

¿Me puedes ayudar?

VAR _MovingAVG á AVERAGEX(DATESINPERIOD(vw_casos_regionais_historico[dataCadastro],LASTDATE(vw_casos_regionais_historico[dataCadastro]),-14,DAY),[SomaNovosCasosVariacao])


VAR _CurrentDate á Max(vw_casos_regionais_historico[dataCadastro])
VAR _PrevDate á _CurrentDate - 14

VAR _FirstValue - CALCULATE(_MovingAVG,FILTER(ALL(vw_casos_regionais_historico[dataCadastro]), _PrevDate))
VAR _LastValue - CALCULATE(_MovingAVG,FILTER(ALL(vw_casos_regionais_historico[dataCadastro]), _CurrentDate))

VAR _Change - DIVIDE(_FirstValue-_LastValue,_FirstValue)
devolución
_Change

El último valor y el primer valor es traer la misma información...

vivran22
Community Champion
Community Champion

Hola @CADAMUROA ,

Puede probar esto:

Change Value = 
VAR _FirstValue = CALCULATE(MAX(dtCovid[Value]),dtCovid[Day] = 1)
VAR _LastValue = CALCULATE(MAX(dtCovid[Value]),dtCovid[Day] = 14)
VAR _Change = DIVIDE(_FirstValue-_LastValue,_FirstValue)
RETURN
_Change

¡Salud!
Vivek

Si ayuda, márquelo como solución. Kudos sería una cereza en la parte superior 🙂
Si no lo hace, por favor comparta un dato de muestra junto con los resultados esperados (preferiblemente un archivo de Excel y no una imagen)

Blog: vivran.in/my-blog
Conectarse en LinkedIn
Seguir en Twitter

Anonymous
Not applicable

Hola @vivran22 ,

¿Cómo puedo obtener el primer y último valor de mi movimiento promedio?

Tengo esta métrica para calcar el movimiento promedio:

AVERAGEX(
DATESINPERIOD(vw_casos_regionais_historico[dataCadastro],LASTDATE(vw_casos_regionais_historico[dataCadastro]),-14,DAY),[SomaNovossCasooVariacao])
¿Cómo puedo obtener el valor para pasar a su dax?
Muchas gracias

@CADAMUROA

Prueba esto:

Change Value = 
VAR _CurrentDate = Max(dtCalendar[Date])
VAR _PrevDate = _CurrentDate - 14

VAR _FirstValue = CALCULATE([Moving Avg],FILTER(ALL(dtCalendar[Date]) = _PrevDate)
VAR _LastValue = CALCULATE([Moving Avg],FILTER(ALL(dtCalendar[Date]) = _CurrentDate)
VAR _Change = DIVIDE(_FirstValue-_LastValue,_FirstValue)
RETURN
_Change

¡Salud!
Vivek

Si ayuda, márquelo como solución. Kudos sería una cereza en la parte superior 🙂
Si no lo hace, por favor comparta un dato de muestra junto con los resultados esperados (preferiblemente un archivo de Excel y no una imagen)

Blog: vivran.in/my-blog
Conectarse en LinkedIn
Seguir en Twitter

Anonymous
Not applicable

Hola @vivran22 ,

He calculado como su sugerencia con este dax:

Valor de cambio ?

VAR _MovingAVG á AVERAGEX(DATESINPERIOD(vw_casos_regionais_historico[dataCadastro],LASTDATE(vw_casos_regionais_historico[dataCadastro]),-14,DAY),[SomaNovosCasosVariacao])


VAR _CurrentDate á Max(vw_casos_regionais_historico[dataCadastro])
VAR _PrevDate á _CurrentDate - 14

VAR _FirstValue - CALCULATE(_MovingAVG,FILTER(ALL(vw_casos_regionais_historico[dataCadastro]), _PrevDate))
VAR _LastValue - CALCULATE(_MovingAVG,FILTER(ALL(vw_casos_regionais_historico[dataCadastro]), _CurrentDate))

VAR _Change - DIVIDE(_FirstValue-_LastValue,_FirstValue)
devolución
_Change

Y ahora, comprobé que el dax no está trayendo el primer valor correctamente.

Creo que es porque la tabla no tiene fechas secuenciales. Necesito saber cómo puedo arreglar esto, conseguir los últimos 14 registros en la tabla.

¿Me puedes ayudar?

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.