Bevezetés
Írhat olyan DAX-képletet, amely egy számított táblát vesz fel a modellbe. A képlet duplikálhat vagy átalakíthat meglévő modelladatokat, vagy új táblát állíthat elő.
Megjegyzés
A számított táblák nem csatlakozhatnak külső adatokhoz, ennek megvalósításához a Power Query-t kell használnia.
Egy számított tábla képletének táblaobjektumot kell visszaadnia. A legegyszerűbb képlet duplikálhatja a modell egy meglévő tábláját.
A számított táblák költséggel járnak: Növelik a modell tárolási méretét, és hosszabbá tehetik az adatfrissítéshez szükséges időt. Ennek az az oka, hogy a számított táblák újra lesznek számítva, ha a képletük frissített tábláktól függ.
Tábla duplikálása
A következő szakasz egy gyakori tervezési problémát ír le, amely számított tábla létrehozásával oldható meg. Először töltse le és nyissa meg az Adventure Works DW 2020 M03.pbix fájlt, majd váltson a modelldiagramra.
A modelldiagramon figyelje meg, hogy a Sales tábla három kapcsolatban áll a Date táblával .
A modelldiagramon azért látható három kapcsolat, mert a Sales tábla a megrendelés dátuma, a szállítás dátuma és az esedékesség dátuma szerint tárolja az értékesítési adatokat. Az OrderDateKey, ShipDateKey és DueDateKey oszlopokat megvizsgálva megfigyelheti, hogy az egyik kapcsolatot folytonos vonal jelöli. Ez az aktív kapcsolat. A többi, szaggatott vonallal jelölt kapcsolat inaktív kapcsolat.
Megjegyzés
Két modelltábla között csak egy aktív kapcsolat állhat fenn.
A kapcsolódó oszlopok kiemeléséhez vigye a kurzort a diagramon az aktív kapcsolatra. Így állapíthatja meg a diagram kezelésekor a kapcsolatban résztvevő oszlopokat. Ebben az esetben az aktív kapcsolat a Sales tábla OrderDateKey oszlopát szűri. Így a Date táblára alkalmazott szűrők a Sales táblába lesznek propagálása a rendelés dátuma szerinti szűréshez; soha nem szűrnek szállítási dátum vagy határidő szerint.
A következő lépés a Date tábla és a Sales tábla közötti két inaktív kapcsolat törlése. Kapcsolat törléséhez kattintson rá a jobb gombbal, és válassza a helyi menü Törlés pontját. Győződjön meg róla, hogy mindkét inaktív kapcsolatot törölte.
Ez után vegyen fel egy új táblát, amellyel a jelentés felhasználói a szállítási dátum szerint szűrhetik az értékesítéseket. Váltson Jelentés nézetre, majd a Modellezés menüszalaglap Számítások csoportjában válassza az Új tábla lehetőséget.
A szerkesztőlécen (amely a menüszalag alatt található) írja be a következő számítotttábla-definíciót, majd nyomja le az Enter billentyűt.
Ship Date = 'Date'
A számított tábla definíciója duplikálja a Date tábla adatait, hogy létrehoz egy ship date nevű új táblát. A Szállítási dátum tábla pontosan ugyanazokkal az oszlopokkal és sorokkal rendelkezik, mint a Date tábla. A Date tábla adatainak frissítésekor a Ship Date tábla újraszámolódik, így mindig szinkronban lesznek.
Váltson a modelldiagramra, és figyelje meg a Ship Date tábla hozzáadását.
Ezután hozzon létre egy kapcsolatot a Ship Date tábla DateKey oszlopa és a Sales tábla ShipDateKey oszlopa között. A kapcsolatot úgy hozhatja létre, hogy a Ship Date tábla DateKey oszlopát a Sales tábla ShipDateKey oszlopára húzza.
A számított táblák csak duplikálják az adatokat; nem duplikálja a modelltulajdonságokat vagy objektumokat, például az oszlop láthatóságát vagy hierarchiáit. Szükség esetén be kell állítania őket az új táblához.
Tipp
A számított tábla oszlopai át is nevezhetők. Ebben az esetben ajánlott átnevezni az oszlopokat, hogy a nevük jobban leírja a szerepüket. A Szállítási dátum tábla Pénzügyi év oszlopa például átnevezhető Szállítási pénzügyi év névre. Ennek megfelelően, ha a Ship Date tábla mezőit használják a vizualizációkban, a nevük automatikusan megjelenik a feliratokban, például a vizualizáció címében vagy tengelyfelirataiban.
A Ship Date tábla tervezésének befejezéséhez a következőket teheti:
- Nevezze át az alábbi oszlopokat:
- Date helyett Ship Date
- Fiscal Year helyett Ship Fiscal Year
- Fiscal Quarter helyett Ship Fiscal Quarter
- Month helyett Ship Month
- Full Date helyett Ship Full Date
- Rendezze a Ship Full Date oszlopot a Ship Date oszlop szerint.
- Rendezze a Ship Month oszlopot a MonthKey oszlop szerint.
- Rejtse el a MonthKey oszlopot.
- Hozzon létre egy Fiscal nevű hierarchiát az alábbi szintekkel:
- Ship Fiscal Year
- Ship Fiscal Quarter
- Ship Month
- Ship Full Date
- Jelölje meg dátumtáblaként a Ship Date táblát a Ship Date oszlop használatával.
A számított táblák hasznosak az itt bemutatotthoz hasonló helyzetekben, amikor két tábla között több kapcsolat is létezik. Arra is felhasználhatók, hogy dátumtáblát vegyen fel a modellbe. Dátumtáblákra van szükség az időintelligenciának nevezett speciális időszűrők alkalmazásához.
Dátumtábla létrehozása
A következő példában egy második számított tábla jön létre, ezúttal a CALENDARAUTO
DAX függvénnyel.
Létrehozás a Határidő számított táblát az alábbi definíció használatával.
Due Date = CALENDARAUTO(6)
A CALENDARAUTO
DAX függvény egyetlen választható argumentumot használ, amely az év utolsó hónapjának száma, és egy egyoszlopos táblát ad vissza. Ha a mondat száma nincs megadva, a feltételezett alapértéke 12 (december). Az Adventure Worksnél például minden évben június 30-án ér véget a pénzügyi év, ezért a 6 érték van átadva.
A függvény megkeresi a modell összes dátum/idő oszlopát, és meghatározza a legkorábbi és legkésőbbi tárolt dátum értékét. Az után előállítja a modellt teljesen lefedő dátumok telje halmazát, így biztosítja, hogy az összes év összes dátuma be legyen töltve. Ha például a modellben tárolt legkorábbi dátum 2021. október 15., akkor a CALENDARAUTO
függvény által visszaadott első dátum 2021. július 1. lesz. Ha a modellben tárolt legutóbbi dátum 2022. június 15., akkor a CALENDARAUTO
függvény által visszaadott utolsó dátum 2022. június 30. lesz.
A függvény gyakorlatilag garantálja, CALENDARAUTO
hogy a dátumtáblázat megjelölésére vonatkozó alábbi követelmények teljesülnek:
- A táblának tartalmaznia kell egy Dátum adattípusú oszlopot.
- Az oszlopnak teljes éveket kell tartalmaznia.
- Az oszlopból egyetlen dátum sem hiányozhat.
Tipp
Dátumtáblát CALENDAR
a DAX-függvénnyel is létrehozhat, és két dátumértéket adhat meg, amelyek a dátumtartományt jelölik. A függvény a tartományba eső összes dátumhoz generál egy-egy sort. Az átadott dátumértékek lehetnek statikusak, vagy olyan kifejezések, amelyek a modell meghatározott oszlopaiból kérdezik le a legkorábbi és legkésőbbi dátumot.
Ezután váltson adatnézetre, majd a Mezők panelen válassza ki a Határidő táblát. Vizsgálja meg a dátumok oszlopát. Érdemes lehet ezeket sorba rendezni, hogy az első sorban a legkorábbi dátum látsszon. Ehhez válassza a Date oszlopfejlécben lévő nyilat, és a növekvő sorrendbe rendezés lehetőségét.
Megjegyzés
Az oszlopok rendezése vagy szűrése nem változtatja meg az értékek tárolási módját. Ezek a függvények segítenek az adatok feltárásában és megismerésében.
A Date oszlop kijelölése után olvassa el a bal alsó sarokban található állapotsorban megjelenő üzenetet. Ez leírja, hogy hány sort tárol a tábla, és hogy hány különböző érték található a kijelölt oszlopban.
Ha a tábla sorainak és különböző értékeinek száma azonos, akkor az oszlop csupa egyedi értékből áll. Ez a jellemző két szempontból is lényeges: Eleget tesz a dátumtáblaként megjelölés követelményeinek, így ez az oszlop felhasználható egy modellbeli kapcsolat egy-oldalaként.
A Határidő számított tábla minden alkalommal újraszámol, amikor egy dátumoszlopot tartalmazó tábla frissül. Más szóval, amikor egy sort 2022. július 1-jével tölt be a Sales táblába, a Határidő tábla automatikusan kiterjeszti a dátumokat a következő év végéig: 2023. június 30-ig.
A Határidő tábla további oszlopokat igényel az ismert szűrési és csoportosítási követelmények támogatásához, különösen év, negyedév és hónap szerint.