Ugrás a fő tartalomra

Power BI alapok : Power Query generátorok használata ciklusként, dátum kezelésnél

 Power BI alapok : Power Query generátorok használata ciklusként, dátum kezelésnél



A Power Query M nyelvben a generátorok (Generators) olyan függvények, amelyek sorozatokat (listákat, táblákat) hoznak létre és iterációs (hurok) mechanizmusként működhetnek. 

Mivel a Power Query nem támogatja a hagyományos for vagy while ciklusokat, a generátorok egy alternatív módszert biztosítanak az ismétlődő számítások elvégzésére.



🔹 Generátorok hurokstruktúraként

A leggyakrabban használt generátorok Power Query-ben:

  1. List.Generate – iteratív lista generálásához

  2. List.Numbers – meghatározott számú elemet hoz létre

  3. List.Accumulate – rekurzív számításokra használható


📌 1. List.Generate – Alternatíva a While ciklusra

A List.Generate egy ismétlődő struktúrát hoz létre, amely egy kezdeti értékből indul, és addig generál új elemeket, amíg egy feltétel teljesül.

📍 Szerkezete:

---m

List.Generate( () => kezdő_érték, // Kezdeti érték each feltétel, // Iterációs feltétel (mint egy WHILE ciklus) each következő_érték, // Hogyan változik az érték minden iterációban each opcionális_kimenet // (Nem kötelező) az eredmény átalakítása )

📌 Példa: Számok generálása 1-től 10-ig

---m

List.Generate( () => 1, // Kezdő érték each _ <= 10, // Feltétel: amíg kisebb vagy egyenlő 10 each _ + 1 // Minden iterációban növeli az értéket 1-gyel )

🔹 Eredmény: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}


📌 2. List.Numbers – Alternatíva a For ciklusra

A List.Numbers akkor hasznos, ha egy adott számtól kezdve meghatározott számú lépésben akarunk iterálni.

📌 Szerkezete:

---m

List.Numbers(kezdő_érték, elemszám, lépés)

📌 Példa: Páros számok 2-től 20-ig

---m

List.Numbers(2, 10, 2)

🔹 Eredmény: {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}


📌 3. List.Accumulate – Alternatíva az összegzésre (rekurzív számítások)

Ez a függvény egy kezdeti értékből indul és fokozatosan felhalmoz egy értéket.

📌 Szerkezete:

---m

List.Accumulate(lista, kezdő_érték, (összesített_érték, aktuális_elem) => új_érték)

📌 Példa: Az első 5 szám összege

---m

List.Accumulate({1, 2, 3, 4, 5}, 0, (összeg, aktuális) => összeg + aktuális)

🔹 Eredmény: 15 (1+2+3+4+5)


🎯 Összegzés

GenerátorHasználat
List.GenerateWhile ciklus alternatívája
List.NumbersFor ciklus alternatívája
List.AccumulateÖsszegző (aggregációs) műveletekhez


🔹 1. Dátum típusok Power Query-ben

Power Query-ben a dátumok három fő formátumban létezhetnek:

  1. Date → Csak dátum (pl. 2024-04-01)

  2. DateTime → Dátum és idő (pl. 2024-04-01T14:30:00)

  3. DateTimeZone → Dátum, idő és időzóna (pl. 2024-04-01T14:30:00+01:00)

💡 TIPP: Ha a Power Query nem ismeri fel automatikusan a dátumot, akkor a Text típusból kell manuálisan átalakítani.


🔹 2. Dátum konverzió Text → Date formátumba

Ha a dátumokat szövegként kapod (pl. "01/04/2024" vagy "April 1, 2024"), akkor ezt Date típussá kell alakítani.

📌 Módszer 1: Automatikus átalakítás (Power Query UI-ból)

  1. Oszlop kijelölése

  2. Transform (Átalakítás) → Data Type (Adattípus) → Date

💡 Hátránya: Ha az adatformátum eltér az alapértelmezettől (pl. yyyy-MM-dd helyett dd/MM/yyyy), hiba léphet fel.


📌 Módszer 2: Manuális konverzió (M kóddal)

Használható a Date.FromText függvény, amely különböző formátumokat is kezel.

---m

Date.FromText("01/04/2024")

🔹 Eredmény: 2024-04-01

Formátum megadása (Locale használata)

Ha az alapértelmezett formátum nem megfelelő, használj egyedi lokális beállítást:

---m

Date.FromText("01/04/2024", "en-US")
//Date.FromText([Date],"hu-HU") //

🔹 en-US → MM/DD/YYYY 

🔹 hu-HU → YYYY.MM.DD

Hungarian

Hungary

0x040E

hu-HU

Release A



📌 Módszer 3: Többféle dátumformátum kezelése

Ha az adatok vegyes formátumban vannak (01-04-2024, 2024/04/01, April 1, 2024), akkor használhatod a következő megoldást:

---m

let RawDate = "01-04-2024", ConvertedDate = try Date.FromText(RawDate) otherwise try Date.FromText(RawDate, "hu-HU") otherwise try Date.FromText(RawDate, "en-US") otherwise null in ConvertedDate

🔹 try ... otherwise → Ha az egyik konverzió sikertelen, a következő lépésre ugrik.


🔹 3. Egyedi dátum formázások

A Power Query alapértelmezett formátumban (YYYY-MM-DD) menti el a dátumokat. Ha más megjelenítést szeretnél, használhatod a Text.From és Date.ToText függvényeket.

📌 Dátum formázása különböző módokon

---m

Date.ToText(#date(2024, 4, 1), "yyyy/MM/dd")

🔹 Eredmény: "2024/04/01"

Formátum kódPélda (2024. április 1.)
"yyyy/MM/dd"2024/04/01
"dd-MM-yyyy"01-04-2024
"MMMM dd, yyyy"April 01, 2024
"ddd, dd MMM yyyy"Mon, 01 Apr 2024

🔹 4. Hiányzó dátumértékek kiegészítése

Néha az adatokban hiányozhat a hónap vagy az év (pl. "01-04" → nincs év).

📌 Eset 1: Hiányzó év feltöltése az aktuális évvel

---m

let RawDate = "01-04", FullDate = Date.FromText(Text.Combine({Text.From(Date.Year(DateTime.LocalNow())), RawDate}, "-"), "hu-HU") in FullDate

🔹 Eredmény (ha az aktuális év 2024): 2024-04-01


📌 Eset 2: Hiányzó hónap feltöltése januárral

---m

let RawDate = "2024-01", FullDate = Date.FromText(RawDate & "-01") in FullDate

🔹 Eredmény: 2024-01-01


🔹 5. Időzónák és DateTime kezelése

Ha az adatok tartalmaznak időzónát (pl. 2024-04-01T14:30:00+02:00), akkor a Power Query ezt DateTimeZone típusként tárolja.

📌 Konverzió időzóna nélküli dátummá

---m

DateTimeZone.RemoveZone(DateTimeZone.FixedLocalNow())

🔹 Eredmény: 2024-04-01T14:30:00

📌 Konverzió UTC időzónára

--- m

DateTimeZone.ToUtc(DateTimeZone.FixedLocalNow())

🔹 Eredmény: 2024-04-01T12:30:00Z (ha helyi idő GMT+2)


🎯 Összegzés – A legjobb módszer kiválasztása

FeladatLegjobb módszer
Szövegből dátum konverzióDate.FromText() vagy Locale használata
Több formátum kezelésetry ... otherwise stratégia
Egyedi dátum formázásDate.ToText()
Hiányzó dátumadatok kiegészítéseText.Combine() + Date.FromText()
Időzóna eltávolításaDateTimeZone.RemoveZone()



Dinamikus naptár generálása Power Query-ben 

Ez egy példa arra, hogyan lehet a dátumformázást, a generátorokat és a hurokstruktúrákat egyetlen megoldásba integrálni.  



📌 1. Lépés: Dátumtartomány megadása

Először határozzuk meg a naptár kezdő- és végdátumát. Ehhez egy dinamikus kezdőnapot használunk (pl. aktuális év első napja).

---m

let KezdoDatum = #date(Date.Year(DateTime.LocalNow()), 1, 1), // Aktuális év első napja VegDatum = #date(Date.Year(DateTime.LocalNow()), 12, 31) // Aktuális év utolsó napja in [KezdoDatum=KezdoDatum, VegDatum=VegDatum]

🔹 Eredmény (ha az aktuális év 2024):

---m

[ KezdoDatum = 2024-01-01, VegDatum = 2024-12-31 ]

📌 2. Lépés: Generátorral (List.Generate) naptár létrehozása

A List.Generate függvény egy hurokszerkezetként működik, amely egy kezdődátumtól indul, és minden lépésben egy napot hozzáad, amíg el nem éri a végdátumot.

---m

let KezdoDatum = #date(Date.Year(DateTime.LocalNow()), 1, 1), VegDatum = #date(Date.Year(DateTime.LocalNow()), 12, 31), NaptarLista = List.Generate( () => KezdoDatum, each _ <= VegDatum, each Date.AddDays(_, 1) ), NaptarTabla = Table.FromList(NaptarLista, Splitter.SplitByNothing(), {"Datum"}) in NaptarTabla

🔹 Eredmény: Egy táblázat, amely tartalmazza az adott év összes napját.

Dátum
2024-01-01
2024-01-02
2024-01-03
2024-12-31

📌 3. Lépés: Dátumformázás és kiegészítő oszlopok

Miután létrehoztuk a naptárt, hozzáadhatunk formázott oszlopokat, például:

  • Hónap neve (MMMM)

  • Hét napja (dddd)

  • Hét sorszáma (Date.WeekOfYear)

  • Negyedév (Date.QuarterOfYear)

---m

let KezdoDatum = #date(Date.Year(DateTime.LocalNow()), 1, 1), VegDatum = #date(Date.Year(DateTime.LocalNow()), 12, 31), NaptarLista = List.Generate( () => KezdoDatum, each _ <= VegDatum, each Date.AddDays(_, 1) ), NaptarTabla = Table.FromList(NaptarLista, Splitter.SplitByNothing(), {"Datum"}), // Új oszlopok hozzáadása KiegeszitettNaptar = Table.AddColumn(NaptarTabla, "Honap", each Date.ToText([Datum], "MMMM"), type text), KiegeszitettNaptar2 = Table.AddColumn(KiegeszitettNaptar, "Nap", each Date.ToText([Datum], "dddd"), type text), KiegeszitettNaptar3 = Table.AddColumn(KiegeszitettNaptar2, "HetSzama", each Date.WeekOfYear([Datum]), Int64.Type), KiegeszitettNaptar4 = Table.AddColumn(KiegeszitettNaptar3, "Negyedev", each Date.QuarterOfYear([Datum]), Int64.Type) in KiegeszitettNaptar4

🔹 Eredmény:

DátumHónapNapHét számaNegyedév
2024-01-01JanuárHétfő11
2024-01-02JanuárKedd11
2024-03-15MárciusPéntek111

📌 4. Lépés: Egyedi dátumformátumok használata

Ha speciális formátumban szeretnéd látni a dátumokat (pl. "01/04/2024" vagy "Monday, April 1, 2024"), akkor a Date.ToText függvényt használhatod.

📌 Példa: Egyedi formátum

---m
 
Table.AddColumn(KiegeszitettNaptar4, "FormazottDatum", each Date.ToText([Datum], "yyyy/MM/dd"), type text)

🔹 Eredmény (Formázott dátum):

DátumFormázottDátum
2024-01-012024/01/01
2024-04-012024/04/01

📌 Más formátumok:

Formátum kódPélda (2024. április 1.)
"yyyy/MM/dd"2024/04/01
"dd-MM-yyyy"01-04-2024
"MMMM dd, yyyy"April 01, 2024
"ddd, dd MMM yyyy"Mon, 01 Apr 2024

🔹 Összegzés – Naptár generálás Power Query-ben

Generátor használata hurokstruktúrakéntList.Generate az iteratív dátumokhoz
Dátumkonverzió és formázásDate.ToText() egyedi formátumokhoz
Kiegészítő dátuminformációk → Hónap, nap neve, hét száma, negyedév

Ezzel a módszerrel dinamikus naptárat tudsz generálni Power Query-ben, amely automatikusan frissül minden évben. 🎯



Több értéket visszaadása egy egyéni függvényből a Power Queryben.


 A Power Query egyéni függvénye bármilyen objektumot visszaadhat. és ez az objektum lehet egyszerű szerkezetű objektum, például dátum, szöveg, szám. Vagy több értékű objektum is lehet, például rekord, lista és táblázat. Általában egyéni függvényből egy értéket adunk vissza, de ez nincs korlátozva.


Power Query M nyelvében egy egyéni függvény többféle módon is visszaadhat több értéket. A legfontosabb módszerek:

  1. Lista visszaadása (list) – Több érték sorozata indexekkel.

  2. Rekord visszaadása (record) – Kulcs-érték párok strukturált adatokhoz.

  3. Táblázat visszaadása (table) – Több soros és oszlopos adatok esetén.

Nézzük meg mindegyik módszert részletesen példákkal! 🚀


1️⃣ Lista visszaadása (list)

Ha több értéket szeretnénk visszaadni, de nincs szükség egyedi kulcsokra, akkor listát használhatunk. A lista elemeit indexekkel érhetjük el.

📌 Példa: Egy függvény, amely egy szám három hatványát adja vissza listában

---m

(T as number) as list => let eredmeny = {T, T^2, T^3} in eredmeny

🔹 Hívás:

---m 


MyFunction(3)

🔹 Eredmény:

---m

{3, 9, 27}

🔹 Elemek elérése:

---m

EredmenyLista{0} // 3 EredmenyLista{1} // 9 EredmenyLista{2} // 27

💡 Használat: Ideális, ha egyszerűen csak több értéket szeretnénk visszaadni egy adott sorrendben.


2️⃣ Rekord visszaadása (record)

A rekordokat akkor használjuk, ha a visszaadott értékekhez neveket is szeretnénk rendelni.

📌 Példa: Egy függvény, amely visszaadja egy szám négyzetét és köbgyökét

---m

(T as number) as record => let eredmeny = [Negyzet = T * T, Kobgyok = Number.Power(T, 1/3)] in eredmeny

🔹 Hívás:
MyFunction(8)

🔹 Eredmény:

--- m

[Negyzet = 64, Kobgyok = 2]

🔹 Elemek elérése:

---m

EredmenyRekord[Negyzet] // 64 EredmenyRekord[Kobgyok] // 2

💡 Használat: Ha az értékeket név szerint szeretnénk elérni, ez a legjobb megoldás!


3️⃣ Táblázat visszaadása (table)

Ha sorok és oszlopok formájában szeretnénk visszaadni az eredményeket, akkor táblázatot (table) használunk.

📌 Példa: Egy függvény, amely egy számhoz kapcsolódó hatványokat ad vissza táblázatként

---m

(T as number) as table => let eredmeny = #table( {"Ertek", "Negyzet", "Kob"}, { {T, T^2, T^3} } ) in eredmeny

🔹 Hívás:
MyFunction(4)

🔹 Eredmény:

ÉrtékNégyzetKocka
41664

💡 Használat: Ha az eredmények rendszerezett sorok és oszlopok formájában hasznosak.


🎯 Összegzés: Mikor melyik módszert használjuk?

MódszerHasználatPélda visszatérési érték
Lista (list)Egyszerű többszörös értékek, sorrendben{3, 9, 27}
Rekord (record)Kulcs-érték párokhoz, ahol a név számít[Negyzet = 64, Kobgyok = 2]
Táblázat (table)Ha az adatok táblázatos formát igényelnek`



Power Query M egyéni függvény, amely egy adott dátum alapján visszaadja:

✅ A hónap első napját
✅ A hónap utolsó napját
✅ A hónap napjainak számát

A függvény listát ad vissza, így az értékek indexekkel érhetők el.


Power Query egyéni függvény: Hónap adatai (fnHonapAdatok)

---m

(Datum as date) as list => let ElsoNap = Date.StartOfMonth(Datum), UtolsoNap = Date.EndOfMonth(Datum), NapokSzama = Date.DaysInMonth(Datum), Eredmeny = {ElsoNap, UtolsoNap, NapokSzama} in Eredmeny

🔹 Példa használat

📌 Hívás:

---m

fnHonapAdatok(#date(2024, 4, 15))

📌 Eredmény listában:

---m

{#date(2024, 4, 1), #date(2024, 4, 30), 30}

📌 Egyedi értékek elérése:

---m

Eredmeny{0} // 2024-04-01 (Első nap) Eredmeny{1} // 2024-04-30 (Utolsó nap) Eredmeny{2} // 30 (Napok száma)

🔹 Alternatíva: Rekordként visszaadás (kulcs-érték párokkal)

Ha inkább név szerint szeretnéd elérni az értékeket, akkor rekordként is visszaadhatjuk:

---m

(Datum as date) as record => let ElsoNap = Date.StartOfMonth(Datum), UtolsoNap = Date.EndOfMonth(Datum), NapokSzama = Date.DaysInMonth(Datum), Eredmeny = [ElsoNap = ElsoNap, UtolsoNap = UtolsoNap, NapokSzama = NapokSzama] in Eredmeny

📌 Hívás és eredmény:

---m

fnHonapAdatok(#date(2024, 4, 15))

🔹 Eredmény rekordként:

---m

[ElsoNap = 2024-04-01, UtolsoNap = 2024-04-30, NapokSzama = 30]

🔹 Értékek elérése:

---m

Eredmeny[ElsoNap] // 2024-04-01 Eredmeny[UtolsoNap] // 2024-04-30 Eredmeny[NapokSzama] // 30

📌 Melyik verziót érdemes használni?

MódszerElérési módJavasolt használat
Lista (list)IndexekkelHa a sorrend rögzített és nincs szükség kulcsokra
Rekord (record)Kulcs-érték párokkalHa név szerint szeretnéd elérni az adatokat



Egy továbbfejlesztett verzió, amely az alábbi extra információkat is visszaadja:

✅ Hónap első napja
✅ Hónap utolsó napja
✅ Hónap napjainak száma
Hétvégi napok száma a hónapban
Munkanapok száma (hétfőtől péntekig)

Ez a verzió rekordot ad vissza, így a kulcsnevek alapján könnyen elérhetők az értékek.


📌 Power Query egyéni függvény: Hónap adatai munkanapokkal (fnHonapMunkanapok)

m

(Datum as date) as record => let ElsoNap = Date.StartOfMonth(Datum), UtolsoNap = Date.EndOfMonth(Datum), NapokSzama = Date.DaysInMonth(Datum), NapLista = List.Dates(ElsoNap, NapokSzama, #duration(1, 0, 0, 0)), HetvegiNapok = List.Count(List.Select(NapLista, each Date.DayOfWeek(_, Day.Saturday) = 0 or Date.DayOfWeek(_, Day.Sunday) = 0)), Munkanapok = NapokSzama - HetvegiNapok, Eredmeny = [ ElsoNap = ElsoNap, UtolsoNap = UtolsoNap, NapokSzama = NapokSzama, HetvegiNapok = HetvegiNapok, Munkanapok = Munkanapok ] in Eredmeny

🔹 Példa használat

📌 Hívás:

---m

fnHonapMunkanapok(#date(2024, 4, 15))

📌 Eredmény rekordként:

---m

[ ElsoNap = 2024-04-01, UtolsoNap = 2024-04-30, NapokSzama = 30, HetvegiNapok = 8, Munkanapok = 22 ]

📌 Egyes értékek elérése:

---m

Eredmeny[ElsoNap] // 2024-04-01 Eredmeny[UtolsoNap] // 2024-04-30 Eredmeny[NapokSzama] // 30 Eredmeny[HetvegiNapok] // 8 Eredmeny[Munkanapok] // 22

📌 Mit csinál ez a függvény?

🔹 List.Dates() generálja az adott hónap összes napját.
🔹 List.Select() megszámolja a hétvégéket (szombat és vasárnap).
🔹 A hétvégi napok számát kivonjuk a teljes napok számából a munkanapok kiszámításához.



Két minta :


--- xlsx naptár:

let
// Read Config Table
ConfigTable = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
YearsToAppend = Table.First(ConfigTable)[YearsToGenerate],
FinancialYearStartingMonth=Table.First(ConfigTable)[FinancialYearStartingMonth],
// Generate base table
Source = List.Dates(Date.From(Table.First(ConfigTable)[StartDate]),YearsToAppend*365,#duration(1, 0, 0, 0)),
Transformed=List.Transform(Source, each Date.ToRecord(_)),
Tabled=Table.FromList(Transformed,Record.FieldValues,{"Year","Month","Day"}),
//Add Full Date Column
FullDateAddedTable=Table.AddColumn(Tabled,"FullDateAlternateKey",each Date.FromText(Text.From([Year])&"-"&Text.From([Month])&"-"&Text.From([Day]))),
DateKeyAdded=Table.AddColumn(FullDateAddedTable,"DateKey",each ([Year]*10000)+([Month]*100)+[Day]),
FullDateNameAdded=Table.AddColumn(DateKeyAdded,"DateFullName",each 
DateTime.ToText(DateTime.From([FullDateAlternateKey]),"dd MMMM yyyy")),
// Fiscal Year
FiscalYearAdded=Table.AddColumn(FullDateNameAdded,
"Fiscal Year",
each
if Date.Month([FullDateAlternateKey])>=FinancialYearStartingMonth then 
Date.Year([FullDateAlternateKey])+1
else
Date.Year([FullDateAlternateKey])
),
// Fiscal Month
FiscalQuarterAdded=Table.AddColumn(FiscalYearAdded,
"Fiscal Quarter",
each
if Date.Month([FullDateAlternateKey])>=FinancialYearStartingMonth then
Number.IntegerDivide((Date.Month([FullDateAlternateKey])-
FinancialYearStartingMonth),3)+1
else
Number.IntegerDivide((12+Date.Month([FullDateAlternateKey])- FinancialYearStartingMonth),3)+1),
// Calendar Quarter
CalendarQuarterAdded=Table.AddColumn(FiscalQuarterAdded, "Calendar Quarter",
each Number.IntegerDivide(Date.Month([FullDateAlternateKey])-1,3)+1),
// Is Week Day
WeekDayAdded=Table.AddColumn(CalendarQuarterAdded, "IsWeekDay",
each
if
Date.DayOfWeek(DateTime.From([FullDateAlternateKey]))=Day.Sunday or
Date.DayOfWeek(DateTime.From([FullDateAlternateKey]))=Day.Saturday then 0 else 1 ),
// Day Of Week
DayOfWeek=Table.AddColumn(WeekDayAdded,"DayOfWeek",each Date.DayOfWeek(DateTime.From([FullDateAlternateKey]))),
// Month Name
MonthName=Table.AddColumn(DayOfWeek,"Month Name",each DateTime.ToText(DateTime.From([FullDateAlternateKey]),"MMMM")),
// Day of Week Name
DayOfWeekName=Table.AddColumn(MonthName,"Day of Week Name",each DateTime.ToText(DateTime.From([FullDateAlternateKey]),"dddd"))
in
   DayOfWeekName


---- Közvetlen naptár generálás

let
    // Konfigurációs értékek manuális beállítása
    YearsToAppend = 5,  // Pl. 5 évnyi adat
    FinancialYearStartingMonth = 4, // Pénzügyi év áprilistól indul
    StartDate = #date(2020,1,1),  // Kezdő dátum
    // Időszak generálása
    Source = List.Dates(StartDate, YearsToAppend * 365, #duration(1, 0, 0, 0)),
    Transformed = List.Transform(Source, each Record.FromList({Date.Year(_), Date.Month(_), Date.Day(_)}, {"Year","Month","Day"})),
    Tabled = Table.FromRecords(Transformed),
    // Teljes dátum oszlop
    FullDateAddedTable = Table.AddColumn(Tabled, "FullDateAlternateKey", each #date([Year], [Month], [Day])),
    DateKeyAdded = Table.AddColumn(FullDateAddedTable, "DateKey", each ([Year] * 10000) + ([Month] * 100) + [Day]),
    FullDateNameAdded = Table.AddColumn(DateKeyAdded, "DateFullName", each Date.ToText([FullDateAlternateKey], "dd MMMM yyyy")),
    // Pénzügyi év meghatározása
    FiscalYearAdded = Table.AddColumn(FullDateNameAdded, "Fiscal Year", each if Date.Month([FullDateAlternateKey]) >= FinancialYearStartingMonth then Date.Year([FullDateAlternateKey]) + 1 else Date.Year([FullDateAlternateKey])),
    // Pénzügyi negyedév meghatározása
 //   FiscalQuarterAdded = Table.AddColumn(FiscalYearAdded, "Fiscal Quarter", each Number.IntegerDivide((Date.Month([FullDateAlternateKey]) - FinancialYearStartingMonth + 12), 12, 3) + 1),
FiscalQuarterAdded = Table.AddColumn(FiscalYearAdded, "Fiscal Quarter", each     Number.IntegerDivide(Number.Mod(Date.Month([FullDateAlternateKey]) - FinancialYearStartingMonth + 12, 12), 3) + 1
),
    // Naptári negyedév
    CalendarQuarterAdded = Table.AddColumn(FiscalQuarterAdded, "Calendar Quarter", each Number.IntegerDivide(Date.Month([FullDateAlternateKey]) - 1, 3) + 1),
    // Hétköznap ellenőrzése
    WeekDayAdded = Table.AddColumn(CalendarQuarterAdded, "IsWeekDay", each if List.Contains({0, 6}, Date.DayOfWeek([FullDateAlternateKey])) then 0 else 1),
    // A hét napja számként
    DayOfWeek = Table.AddColumn(WeekDayAdded, "DayOfWeek", each Date.DayOfWeek([FullDateAlternateKey])),
    // Hónap neve
    MonthName = Table.AddColumn(DayOfWeek, "Month Name", each Date.ToText([FullDateAlternateKey], "MMMM")),
    // A hét napjának neve
    DayOfWeekName = Table.AddColumn(MonthName, "Day of Week Name", each Date.ToText([FullDateAlternateKey], "dddd"))
in
    DayOfWeekName




Megjegyzések