Aller au contenu (Pressez Entrée)
  • Accueil
  • Blog
  • Portfolios
DAXPowerBi

Covid-19 Dashboard

This dashboard provides information about Covid-19 around the world. The database is in csv format. and was downloaded from ourworldindata.org. All performance indicators were created with the DAX language. The dashboard is in two languages, English and French.

DAX Code

-----========== french titles ==========-----
m00_cht_04_title_fr = 
UPPER(SELECTEDVALUE(myKPI_fr[mesKPI_fr])) & ": variation des 7 derniers jours contre les 7 jours précédents"

----------
m00_country_title_pop = 
CALCULATE(MAXX('WHO-COVID-19-global-data', [Country]), 
ALLEXCEPT('WHO-COVID-19-global-data', 'WHO-COVID-19-global-data'[Country])) & [m00_countryPop_fr]

----------
m00_countryPop_fr = 
VAR vSumTB1 = SUMMARIZE('WHO-COVID-19-global-data', 'WHO-COVID-19-global-data'[Country_code], "NBPop", MAX('WHO-COVID-19-global-data'[country_pop]))
VAR vPop = SUMX(vSumTB1, [NBPop])
--VAR vLang = IF(SELECTEDVALUE(myKPI_fr[mesKPI_fr]) IN {"cas", "deces"}, "hab.)","(inhab.)")
RETURN
"(" &
SWITCH(TRUE,
vPop<1000, FORMAT(vPop,"###"),
vPop>=1000 && vPop < 1000000, FORMAT(vPop,"###,.OK"),
vPop>=1000000 && vPop < 1000000000, FORMAT(vPop,"###,.OM"),
vPop >=10000000000, FORMAT(vPop,"###,.OG")
)
& " hab.)"

----------
m00_crd_global_title_fr = "Monde: cum. " & IF(SELECTEDVALUE(myType_fr[monType_fr])= "pour 100k hab.", SELECTEDVALUE(myType_fr[monType_fr]),"")

----------
m00_crd_region_title_fr = "Cum. " & if(SELECTEDVALUE(myType_fr[monType_fr]) = "pour 100k hab.", SELECTEDVALUE(myType_fr[monType_fr]), "")

----------
m00_infos_MAJ_fr = "Derniere mise a jour des données: " & FORMAT(MAX(infosMAJ[LastUpdate]), "d MMMM yyyy") &","& FORMAT(MAX(infosMAJ[LastUpdate]), "HH:mm:ss") & "(GMT)"

----------
m00_region_tile = 
VAR vSelect = IF([m00_mySlice] in  {2,4}, " (100k h.)","")
RETURN
CALCULATE(MAX(world_population[Continent_fr])) & " : évolution des " & LOWER(SELECTEDVALUE(myKPI_fr[mesKPI_fr])) & vSelect

----------
m00_rpt_title_baisse = 
VAR vText01 = UPPER(SELECTEDVALUE(myKPI_fr[mesKPI_fr])) & ": en baisse (7 der, jrs)"

RETURN 
vText01

----------
m00_rpt_title_fr = "COVID-19: situation des " & UPPER(SELECTEDVALUE(myKPI_fr[mesKPI_fr])) & " au " & FORMAT(MAX('WHO-COVID-19-global-data'[Date_reported]), "d MMMM yyyy")

----------
m00_rpt_title_hausse = 
VAR vText01 = UPPER(SELECTEDVALUE(myKPI_fr[mesKPI_fr])) & ": en hausse (7 der, jrs)"

RETURN 
vText01

----------
m00_Stream_Title_fr = "Évolution du nombre moyen quotidien des " & UPPER(SELECTEDVALUE(myKPI_fr[mesKPI_fr])) & " par région (moyenne mobile sur 7 jours)"


-----========== english titles ==========-----
m00_cht_03_title_en = 
VAR vSelect = IF([m00_mySlice] in  {2,4}, " per 100k inhab.","")
VAR vText01 = UPPER(SELECTEDVALUE(myKPI_en[myKPI_en])) & ": var. of 7 last days by WHO region" & vSelect

RETURN
vText01

----------
m00_cht_04_title_en = 
UPPER(SELECTEDVALUE(myKPI_en[myKPI_en])) & ": variation of 7 last days versus 7 preceeding days"

----------
m00_cht_04_title_en = 
UPPER(SELECTEDVALUE(myKPI_en[mesKPI_en])) & ": variation of 7 last days versus 7 preceeding days"

----------
m00_country_title_pop_en = 
CALCULATE(MAXX('WHO-COVID-19-global-data', 'WHO-COVID-19-global-data'[Country]), 
ALLEXCEPT('WHO-COVID-19-global-data', 'WHO-COVID-19-global-data'[Country])) & [m00_countryPop_en]

----------
m00_countryPop_en = 
VAR vSumTB1 = SUMMARIZE('WHO-COVID-19-global-data', 'WHO-COVID-19-global-data'[Country_code], "NBPop", MAX('WHO-COVID-19-global-data'[country_pop]))
VAR vPop = SUMX(vSumTB1, [NBPop])
--VAR vLang = IF(SELECTEDVALUE(myKPI_en[mesKPI_en]) IN {"cas", "deces"}, "hab.)","(inhab.)")
RETURN
"(" &
SWITCH(TRUE,
vPop<1000, FORMAT(vPop,"###"),
vPop>=1000 && vPop < 1000000, FORMAT(vPop,"###,.OK"),
vPop>=1000000 && vPop < 1000000000, FORMAT(vPop,"###,.OM"),
vPop >=10000000000, FORMAT(vPop,"###,.OG")
)
& " inhab.)"

----------
m00_crd_global_title_en = "World: cum. " & IF(SELECTEDVALUE(myType_en[myType])= "per 100k inhab.", SELECTEDVALUE(myType_en[myType]),"")

----------
m00_crd_region_title_en = "Cum. " & if(SELECTEDVALUE(myType_en[myType]) = "per 100k inhab.", SELECTEDVALUE(myType_en[myType]), "")

----------
m00_infos_MAJ_en = "Data last updated: " & FORMAT(MAX(infosMAJ[LastUpdate]), "d MMMM yyyy") &","& FORMAT(MAX(infosMAJ[LastUpdate]), "HH:mm:ss") & "(UTC)"

----------
m00_region_tile_en = 
VAR vSelect = IF([m00_mySlice] in  {2,4}, " (per 100k inhab.)","")
RETURN
CALCULATE(MAX(world_population[Continent_fr])) & " : évolution des " & LOWER(SELECTEDVALUE(myKPI_en[myKPI_en])) & vSelect

----------
m00_rpt_title_decrease = 
VAR vText01 = UPPER(SELECTEDVALUE(myKPI_en[myKPI_en])) & ": decreasing (7 last days)"

RETURN 
vText01

----------
m00_rpt_title_en = "COVID-19: situation of " & UPPER(SELECTEDVALUE(myKPI_en[myKPI_en])) & " as " & FORMAT(MAX('WHO-COVID-19-global-data'[Date_reported]), "d MMMM yyyy")

----------
m00_rpt_title_increasing = 
VAR vText01 = UPPER(SELECTEDVALUE(myKPI_en[myKPI_en])) & ": increasing (7 last days)"

RETURN 
vText01

----------
m00_Stream_Title_en = "Daily average " & UPPER(SELECTEDVALUE(myKPI_fr[mesKPI_fr])) & " by WHO region (7 days rolling average)"


-----========== Measures ==========-----
m00_filterCountry = 
/*
---> Regle de filtre appliqué : Seuls les pays ayant plus de 100 000 habitants et comptant au moins 2000 cas de covid-19
-- 1: le pays respecte les criteres de filtre
-- 0: le pays ne respecte pas les critres de filtre, donc, ne seront pas affiché
*/
VAR vSumTb1 = SUMMARIZE('WHO-COVID-19-global-data', 'WHO-COVID-19-global-data'[Country_code], "nbPop", MAX('WHO-COVID-19-global-data'[country_pop]))
VAR vPop = SUMX(vSumTb1, [nbPop])
VAR vSumTb12 = SUMMARIZE('WHO-COVID-19-global-data', 'WHO-COVID-19-global-data'[Country_code], "nbcCumCas", MAX('WHO-COVID-19-global-data'[Cumulative_deaths]))
VAR vCumCases =SUMX(vSumTb12, [nbcCumCas])
RETURN
IF(vPop > 100000 && vCumCases >= 2000, 1, 0)

----------
m01_DynKPI = 
VAR vSumTb1 = SUMMARIZE('WHO-COVID-19-global-data', 'WHO-COVID-19-global-data'[Country], "nbPop", MAX('WHO-COVID-19-global-data'[country_pop]))
VAR vPOP = SUMX(vSumTb1, [nbPop])
VAR vRatio = 100000 --100k par habitant
VAR vMinDeaths = 2000

RETURN

SWITCH([m00_mySlice],
-----=============== CAS ===============-----
 --#1: Moyenne mobile de 7 jours (Brut)
1, DIVIDE(
        CALCULATE(
            SUM('WHO-COVID-19-global-data'[New_cases]),
            DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -7, DAY)
            ),
        CALCULATE(
            DISTINCTCOUNT('WHO-COVID-19-global-data'[Date_reported]),
            DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -7, DAY)
            )
        ),

--#2: Moyenne mobile sur 7 jours (par 100k)
2, DIVIDE(
        CALCULATE(
            DIVIDE(SUM('WHO-COVID-19-global-data'[New_cases]), vPOP) * vRatio,
            DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -7, DAY)
            ),

        CALCULATE(
            DISTINCTCOUNT('WHO-COVID-19-global-data'[Date_reported]),
            DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -7, DAY)
            )
        ),
            
-----=============== DECES ===============-----
 --#3: Moyenne mobile de 7 jours (Brut)
3, DIVIDE(
        CALCULATE(
            SUM('WHO-COVID-19-global-data'[New_deaths]),
            DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -7, DAY)
            ),
        CALCULATE(
            DISTINCTCOUNT('WHO-COVID-19-global-data'[Date_reported]),
            DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -7, DAY)
            )
        ),

--#4: Moyenne mobile sur 7 jours (par 100k)
4, DIVIDE(
        CALCULATE(
            DIVIDE(SUM('WHO-COVID-19-global-data'[New_deaths]), vPOP) * vRatio,
            DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -7, DAY)
        ),

        CALCULATE(
            DISTINCTCOUNT('WHO-COVID-19-global-data'[Date_reported]),
            DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -7, DAY)
            )
        )

)


----------
m02_DynRawKPI = 
VAR vSumTb1 = SUMMARIZE('WHO-COVID-19-global-data', 'WHO-COVID-19-global-data'[Country], "nbPop", MAX('WHO-COVID-19-global-data'[country_pop]))
VAR vPop = SUMX(vSumTb1, [nbPop])
VAR vRATIO = 100000 ----100K par habitant
RETURN

SWITCH([m00_mySlice],
-----=============== CAS ===============-----
--#1:Resultats quotidiens
1, SUM('WHO-COVID-19-global-data'[New_cases]),
--#2:Resultats quotidiens (par 100k)
2, DIVIDE(SUM('WHO-COVID-19-global-data'[New_cases]), vPop) * vRATIO,

-----=============== DECES ===============-----
--#3:Resultats quotidiens
3, SUM('WHO-COVID-19-global-data'[New_deaths]),
--#4:Resultats quotidiens (par 100k)
4, DIVIDE(SUM('WHO-COVID-19-global-data'[New_deaths]), vPop * vRATIO
))

----------
m04_DynWeeklyVariation = 
VAR vDateMax = CALCULATE(MAX('WHO-COVID-19-global-data'[Date_reported]), ALL('WHO-COVID-19-global-data'))
VAR vBiWeeklyKPI = IF([m00_mySlice] IN {1,2},
    CALCULATE(SUM('WHO-COVID-19-global-data'[New_cases]),
    FILTER('WHO-COVID-19-global-data', 'WHO-COVID-19-global-data'[Date_reported] >= vDateMax -13 && 'WHO-COVID-19-global-data'[Date_reported] < vDateMax - 6)),

    CALCULATE(SUM('WHO-COVID-19-global-data'[New_deaths]),
    FILTER('WHO-COVID-19-global-data', 'WHO-COVID-19-global-data'[Date_reported] >= vDateMax -13 && 'WHO-COVID-19-global-data'[Date_reported] < vDateMax - 6))
)

VAR vWeeklyKPI = IF([m00_mySlice] IN {1,2},
    CALCULATE(SUM('WHO-COVID-19-global-data'[New_cases]),
    FILTER('WHO-COVID-19-global-data', 'WHO-COVID-19-global-data'[Date_reported] >= vDateMax - 6)),

    CALCULATE(SUM('WHO-COVID-19-global-data'[New_deaths]),
    FILTER('WHO-COVID-19-global-data', 'WHO-COVID-19-global-data'[Date_reported] >= vDateMax - 6))
)

RETURN

DIVIDE(vWeeklyKPI, vBiWeeklyKPI) - 1

----------
m05_DynWeeklyVarIndic = IF([m04_DynWeeklyVariation] < 0, 1, 0) --1=Baisse(Verte); 0=Hausse(rouge)

----------
m06_DynCurrentWeek = 
IF([m00_mySlice] IN {1,2},
CALCULATE(SUM('WHO-COVID-19-global-data'[New_cases]), DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -7, DAY)),
CALCULATE(SUM('WHO-COVID-19-global-data'[New_deaths]), DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -7, DAY))
)

----------
m07_DynPrevWeek = 
IF([m00_mySlice] IN {1, 2},
CALCULATE(SUM('WHO-COVID-19-global-data'[New_cases]), DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -14, DAY)),
CALCULATE(SUM('WHO-COVID-19-global-data'[New_deaths]), DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -14, DAY))
) - [m06_DynCurrentWeek] -- On calcule le total des 2 dernieres semaines et on retire le total de la semaine courante

----------
m08_DynGlobalCurentWeek = 
IF([m00_mySlice] IN {1, 2},
CALCULATE(SUM('WHO-COVID-19-global-data'[New_cases]),ALL('WHO-COVID-19-global-data'),
          DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -7, DAY)
          ),
CALCULATE(SUM('WHO-COVID-19-global-data'[New_deaths]),ALL('WHO-COVID-19-global-data'),
          DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -7, DAY)
          )
)

----------
m09_DynGlobalPrevWeek = 
IF([m00_mySlice] IN {1, 2},
CALCULATE(SUM('WHO-COVID-19-global-data'[New_cases]),ALL('WHO-COVID-19-global-data'),
          DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -14, DAY)
          ),
CALCULATE(SUM('WHO-COVID-19-global-data'[New_deaths]),ALL('WHO-COVID-19-global-data'),
          DATESINPERIOD('WHO-COVID-19-global-data'[Date_reported], LASTDATE('WHO-COVID-19-global-data'[Date_reported]), -14, DAY)
          )
) - [m08_DynGlobalCurentWeek] --on calcule le  total des 2 dernieres semaines, puis on retire le total de la semaine courante.

----------
m10_DynGlobalRawKPI = 
VAR vSumTb1 = SUMMARIZE('WHO-COVID-19-global-data', 'WHO-COVID-19-global-data'[Country_code], "NbPop", MAX('WHO-COVID-19-global-data'[country_pop]))
VAR vPop = CALCULATE(SUM(world_population[2022 Population]), ALL(world_population))
VAR vRATIO = 100000 --100K par habitant
VAR vRsit = SWITCH([m00_mySlice],
--Cas--
--1 Resultats quotidiens
1, CALCULATE(SUM('WHO-COVID-19-global-data'[New_cases]), ALL('WHO-COVID-19-global-data')),
--2 Resultats quotidiens (par 100k)
2, DIVIDE(CALCULATE(SUM('WHO-COVID-19-global-data'[New_cases]), ALL('WHO-COVID-19-global-data')), vPop) * vRATIO,

--Deces--
--1 Resultats quotidiens
1, CALCULATE(SUM('WHO-COVID-19-global-data'[New_deaths]), ALL('WHO-COVID-19-global-data')),
--2 Resultats quotidiens (par 100k)
2, DIVIDE(CALCULATE(SUM('WHO-COVID-19-global-data'[New_deaths]), ALL('WHO-COVID-19-global-data')), vPop) * vRATIO
)

RETURN

SWITCH(TRUE,
vRsit < 1000, FORMAT(vRsit, "###.0"),
vRsit >= 1000 &&  vRsit < 1000000, FORMAT(vRsit, "###,.0k"),
vRsit >= 1000000 && vRsit < 1000000000, FORMAT(vRsit, "###,,.0M"),
vRsit >= 1000000000, FORMAT(vRsit, "###,,,.0G")
)

----------
m11_AFRO = 
SWITCH(TRUE,
[m00_mySlice] IN {1,2},
CALCULATE(SUM(WHO_Region_Avg_Cases[AFRO]), ALLEXCEPT(tDates, tDates[Date])),
CALCULATE(SUM(WHO_Region_Avg_Deaths[AFRO]), ALLEXCEPT(tDates, tDates[Date]))
)













Projets similaires

Human Ressource Dashboard 2

janvier 9, 2023

IMDb Top 250 Dashboard

mars 3, 2023

Automobile Sales Dashboard

janvier 9, 2023
© Copyright 2025 . Perfect Portfolio | Développé par Rara Theme. Propulsé par WordPress.