cancel
Showing results for 
Search instead for 
Did you mean: 
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.

Did I answer your question? Mark my post as a solution! Appreciate your Kudos!! !!
Dashboard of My Blogs !! Connect on Linkedin
Want To Learn Power BI
Learn Power BI Beginners !! Advance Power BI Concepts !! Power BI For Tableau User !! Learn Power BI in Hindi !!
Proud to be a Super User!
!! Subscribe to my youtube Channel !!
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
vivran22
Community Champion
Community Champion

@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 Build 768x460.png

Microsoft Build is May 24-26. Have you registered yet?

Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.

charticulator_carousel_with_text (1).png

Charticulator Design Challenge

Put your data visualization and design skills to the test! This exciting challenge is happening now through May 31st!

Power BI Dev Camp Session 22 768x460.jpg

Check it out!

Mark your calendars and join us on Thursday, May 26 at 11a PDT for a great session with Ted Pattison!

Top Kudoed Authors