ISO År & Vecka i Qlik, Tableau & Power BI

Ett vanligt fel i rapporter är att man inte hanterar år korrekt när man vill ta fram ett sammansatt värde för [År Vecka]. Detta grundar sig i att ett datum kan ligga i ett år, men dess veckas år kan vara ett annat. I det här blogginlägget tittar vi närmre på hur man hanterar dessa i Qlik, Tableau och Power BI.

Vi utgår från några exempel på datum mellan 2021-12-30 och 2022-01-04. Här ligger datumen 2021-12-30 till 2022-01-02 i vecka 52 som hör till 2021. Korrekta värden ska alltså vara:

Om man är för snabb att räkna sätter man för t.ex. 2022-01-01 ihop år (2022) med vecka (52) och lägger felaktigt dagen till 2022 W52. Dagen skulle egentligen skulle ligga i 2021 W52.

Qlik

Qlik har en inbyggd funktion för att hantera ISO-år som bygger på veckor, weekyear(). Denna skiljer sån från funktionen year() genom att den hämtar året för veckan som datumet ligger i.

year() = ger året för datumet

weekyear() = ger året för veckan som datumet ligger i

Med hjälp av funktionen kan man i script och i uttryck räkna ut År Vecka med formeln/koden:

weekyear(Date) & ” W” & num(week(Date),’00’)

Num-funktionen säkerställer att veckor 1-9 får en nolla framför sig så att alla värden får lika många tecken.

Tableau

Tableau har på motsvarande sätt som Qlik en funktion för ISO-år, ISOYEAR(), som skiljer sig från den vanliga funktionen för år, YEAR().

På motsvarande enkla sätt kan man räkna ut År Vecka med formeln:

STR(ISOYEAR([Date])) + ” W” + RIGHT(”0” + STR(ISOWEEK([Date])),2)

STR()-funktionen omvandlar ett numeriskt värde till en sträng så att vi kan sätta samman de olika delarna till en längre sträng.

RIGHT()-funktionen används här för att veckor 1-9 får en nolla framför sig så att alla värden får lika många tecken.

Power BI

Power BI saknar funktion för att räkna ut ISO-år vilket gör formeln lite mer komplicerad. Ett trick för att beräkna året är att ta ett datum + 26 dagar – veckonumret. Detta sätts sedan samman med veckonumret hanterat med FORMAT() för att få en inledande 0:a för veckorna 1-9.

PowerBI YearWeek = YEAR([Date] + 26 – WEEKNUM([Date], 21 ) ) & ” W” & FORMAT(WEEKNUM([Date], 21 ), ”00”)

WEEKNUM(Date,21) ger ISO-vecka för Date.

Dela inlägget
LinkedIn
Drake Analytics
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.