SUMMARIZECOLUMNS
A következőre vonatkozik: Számított oszlop
Számított tábla
Mérték
vizualizáció számítása
Egy összegző táblát ad vissza egy csoportcsoporton keresztül.
Syntax
SUMMARIZECOLUMNS( <groupBy_columnName> [, < groupBy_columnName >]…, [<filterTable>]…[, <name>, <expression>]…)
Paraméterek
Időszak | Definíció |
---|---|
groupBy_columnName | Teljes körű oszlophivatkozás (Table[Column]) egy olyan alaptáblára, amelyhez a különböző értékek szerepelnek a visszaadott táblában. Minden groupBy_columnName oszlop keresztbe van kapcsolva (különböző táblák), vagy automatikusan létezik (ugyanaz a tábla) a következő megadott oszlopokkal. |
filterTable | Táblakifejezés, amely groupBy_columnName argumentumként megadott összes oszlop szűrőkörnyezetéhez hozzáadva. A szűrőtáblában található értékek szűrésre szolgálnak a keresztcsatlakozás/automatikus létezés végrehajtása előtt. |
név | A következő megadott kifejezéshez használni kívánt oszlopnevet képviselő sztring. |
kifejezés | Bármely DAX-kifejezés, amely egyetlen értéket ad vissza (nem táblázatot). |
Visszaadott érték
Egy táblázat, amely a megadott oszlopokból származó értékek kombinációját tartalmazza a megadott csoportosítás alapján. A visszaadott táblában csak azok a sorok szerepelnek, amelyeknél a megadott kifejezések közül legalább egy nem üres értéket ad vissza. Ha egy sor összes kifejezése BLANK/NULL értékre van kiértékelve, az adott sor nem szerepel a visszaadott táblában.
Megjegyzések
Ez a függvény nem garantálja az eredmények rendezési sorrendjét.
Az oszlop nem adható meg többször a groupBy_columnName paraméterben. A következő képlet például érvénytelen.
SUMMARIZECOLUMNS( Sales[StoreId], Sales[StoreId] )
Ez a függvény nem támogatott DirectQuery módban, ha számított oszlopokban vagy sorszintű biztonsági (RLS) szabályokban használják.
Szűrőkörnyezet
Fontolja meg a következő lekérdezést:
SUMMARIZECOLUMNS (
'Sales Territory'[Category],
FILTER('Customer', 'Customer' [First Name] = "Alicia")
)
Ebben a lekérdezésben mérték nélkül a groupBy oszlopok nem tartalmaznak a FILTER kifejezésből származó oszlopokat (például az Ügyfél táblából). A szűrő nincs alkalmazva a groupBy oszlopokra. A Sales Territory és a Customer táblák közvetetten kapcsolódhatnak a Reseller sales fact táblán keresztül. Mivel ezek nem kapcsolódnak közvetlenül, a szűrőkifejezés nem működik, és a groupBy oszlopokra nincs hatással.
Ezzel a lekérdezéssel azonban:
SUMMARIZECOLUMNS (
'Sales Territory'[Category], 'Customer' [Education],
FILTER('Customer', 'Customer'[First Name] = "Alicia")
)
A groupBy oszlopok olyan oszlopot tartalmaznak, amelyre hatással van a szűrő, és ezt a szűrőt alkalmazza a groupBy-eredményekre.
A MELLŐZÉS
Az IGNORE szintaxissal módosíthatja a SUMMARIZECOLUMNS függvény viselkedését úgy, hogy kihagy bizonyos kifejezéseket a BLANK/NULL kiértékelésből. Azok a sorok, amelyeknél az IGNORE függvényt nem használó összes kifejezés ÜRES/NULL értéket ad vissza, attól függetlenül ki lesz zárva, hogy az IGNORE függvényt használó kifejezések blank/NULL értéket adnak-e ki. AZ IGNORE csak SUMMARIZECOLUMNS kifejezésen belül használható.
Példa
SUMMARIZECOLUMNS(
Sales[CustomerId], "Total Qty",
IGNORE( SUM( Sales[Qty] ) ),
"BlankIfTotalQtyIsNot3", IF( SUM( Sales[Qty] )=3, 3 )
)
Ez összegezi a Sales[CustomerId] oszlopot, és létrehoz egy részösszeget az adott csoportosításban lévő összes ügyfél számára. Az IGNORE nélkül az eredmény a következő:
Vevőkód | Teljes mennyiség | BlankIfTotalQtyIsNot3 |
---|---|---|
A | 5 | |
h | 3 | 3 |
C | 3 | 3 |
Vevőkód | Teljes mennyiség | BlankIfTotalQtyIsNot3 |
---|---|---|
h | 3 | 3 |
C | 3 | 3 |
Minden kifejezés figyelmen kívül hagyva,
SUMMARIZECOLUMNS(
Sales[CustomerId], "Blank",
IGNORE( BLANK() ), "BlankIfTotalQtyIsNot5",
IGNORE( IF( SUM( Sales[Qty] )=5, 5 ) )
)
Annak ellenére, hogy mindkét kifejezés üresen ad vissza néhány sort, a függvények bele vannak foglalva, mivel nincsenek olyan ki nem használt kifejezések, amelyek üresen térnek vissza.
Vevőkód | Blank | BlankIfTotalQtyIsNot5 |
---|---|---|
A | 5 | |
h | ||
C |
NEMVISUAL
A NEMVISUAL függvény a SUMMARIZECOLUMNS függvényben egy értékszűrőt jelöl, amely nem befolyásolja a mértékértékeket, csak a groupBy oszlopokra vonatkozik. A NONVISUAL csak SUMMARIZECOLUMNS kifejezésben használható.
Példa
DEFINE
MEASURE FactInternetSales[Sales] = SUM(FactInternetSales[Sales Amount])
EVALUATE
SUMMARIZECOLUMNS
(
DimDate[CalendarYear],
NONVISUAL(TREATAS({2007, 2008}, DimDate[CalendarYear])),
"Sales", [Sales],
"Visual Total Sales", CALCULATE([Sales], ALLSELECTED(DimDate[CalendarYear]))
)
ORDER BY [CalendarYear]
Azt az eredményt adja vissza, amelyben a [Visual Total Sales] az összes év összesítése:
DimDate[CalendarYear] | [Sales] | [Visual Total Sales] |
---|---|---|
2007 | 9,791,060.30 | 29,358,677.22 |
2008 | 9,770,899.74 | 29,358,677.22 |
Ezzel szemben ugyanaz a lekérdezés a NEMVISUAL függvény nélkül :
DEFINE
MEASURE FactInternetSales[Sales] = SUM(FactInternetSales[Sales Amount])
EVALUATE
SUMMARIZECOLUMNS
(
DimDate[CalendarYear],
TREATAS({2007, 2008}, DimDate[CalendarYear]),
"Sales", [Sales],
"Visual Total Sales", CALCULATE([Sales], ALLSELECTED(DimDate[CalendarYear]))
)
ORDER BY [CalendarYear]
Azt az eredményt adja vissza, amelyben a [Visual Total Sales] a két kiválasztott év összesítése:
DimDate[CalendarYear] | [Sales] | [Visual Total Sales] |
---|---|---|
2007 | 9,791,060.30 | 19,561,960.04 |
2008 | 9,770,899.74 | 19,561,960.04 |
A ROLLUPADDISSUBTOTAL használatával
A ROLLUPADDISSUBTOTAL szintaxis hozzáadása módosítja a SUMMARIZECOLUMNS függvény viselkedését úgy, hogy összegző/részösszeg sorokat ad hozzá az eredményhez a groupBy_columnName oszlopok alapján. A ROLLUPADDISSUBTOTAL csak SUMMARIZECOLUMNS kifejezésben használható.
Példa egyetlen részösszeggel
DEFINE
VAR vCategoryFilter =
TREATAS({"Accessories", "Clothing"}, Product[Category])
VAR vSubcategoryFilter =
TREATAS({"Bike Racks", "Mountain Bikes"}, Product[Subcategory])
EVALUATE
SUMMARIZECOLUMNS
(
ROLLUPADDISSUBTOTAL
(
Product[Category], "IsCategorySubtotal", vCategoryFilter,
Product[Subcategory], "IsSubcategorySubtotal", vSubcategoryFilter
),
"Total Qty", SUM(Sales[Qty])
)
ORDER BY
[IsCategorySubtotal] DESC, [Category],
[IsSubcategorySubtotal] DESC, [Subcategory]
A következő táblázatot adja vissza:
Kategória | Alkategória | IsCategorySubtotal | IsSubcategorySubtotal | Teljes mennyiség |
---|---|---|---|---|
Igaz | Igaz | 60398 | ||
Tartozékok | Hamis | Igaz | 36092 | |
Tartozékok | Kerékpártartók | Hamis | Hamis | 328 |
Kerékpárok | Hegyi kerékpárok | Hamis | Hamis | 4970 |
Clothing | Hamis | Igaz | 9101 |
Példa több részösszeggel
SUMMARIZECOLUMNS (
Regions[State], ROLLUPADDISSUBTOTAL ( Sales[CustomerId], "IsCustomerSubtotal" ),
ROLLUPADDISSUBTOTAL ( Sales[Date], "IsDateSubtotal"), "Total Qty", SUM( Sales[Qty] )
)
Az értékesítések állam, ügyfél és dátum szerint csoportosítva, 1 részösszeggel. Értékesítés állapot szerint, 2. dátum szerint. Értékesítés állam szerint, 3. ügyfél szerint. Mind az ügyfélen, mind a dátumon fel van állítva, és állapot szerinti értékesítést eredményez.
A következő táblázatot adja vissza:
CustomerID (Ügyfél azonosítója) | IsCustomerSubtotal | Állapot | Teljes mennyiség | Dátum | IsDateSubtotal |
---|---|---|---|---|---|
A | HAMIS | WA | 5 | 7/10/2014 | |
h | HAMIS | WA | 0 | 7/10/2014 | |
h | HAMIS | WA | 2 | 7/11/2014 | |
C | HAMIS | VAGY | 2 | 7/10/2014 | |
C | HAMIS | VAGY | 0 | 7/11/2014 | |
IGAZ | WA | 6 | 7/10/2014 | ||
IGAZ | WA | 2 | 7/11/2014 | ||
IGAZ | VAGY | 2 | 7/10/2014 | ||
IGAZ | VAGY | 0 | 7/11/2014 | ||
A | HAMIS | WA | 5 | IGAZ | |
h | HAMIS | WA | 3 | IGAZ | |
C | HAMIS | VAGY | 3 | IGAZ | |
IGAZ | WA | 8 | IGAZ | ||
IGAZ | VAGY | 3 | IGAZ |
A ROLLUPGROUP használatával
A SUMMARIZE függvényhez hasonlóan a ROLLUPGROUP és a ROLLUPADDISSUBTOTAL együttes használatával megadhatja, hogy mely összegző csoportok/részletességek (részösszegek) legyenek belefoglalva, csökkentve a visszaadott részösszegsorok számát. A ROLLUPGROUP csak SUMMARIZECOLUMNS vagy SUMMARIZE kifejezésben használható.
Példa több részösszeggel
SUMMARIZECOLUMNS(
ROLLUPADDISSUBTOTAL( Sales[CustomerId], "IsCustomerSubtotal" ),
ROLLUPADDISSUBTOTAL(ROLLUPGROUP(Regions[City], Regions[State]), "IsCityStateSubtotal"),"Total Qty", SUM( Sales[Qty] )
)
Továbbra is város és állam szerint csoportosítva, de a részösszeg jelentésekor egybegördítve a következő táblázatot adja vissza:
Állapot | Vevőkód | IsCustomerSubtotal | Teljes mennyiség | Város | IsCityStateSubtotal |
---|---|---|---|---|---|
WA | A | HAMIS | 2 | Bellevue | HAMIS |
WA | h | HAMIS | 2 | Bellevue | HAMIS |
WA | A | HAMIS | 3 | Redmond | HAMIS |
WA | h | HAMIS | 0 | Redmond | HAMIS |
VAGY | C | HAMIS | 3 | Portland | HAMIS |
WA | IGAZ | 4 | Bellevue | HAMIS | |
WA | IGAZ | 4 | Redmond | HAMIS | |
VAGY | IGAZ | 3 | Portland | HAMIS | |
A | HAMIS | 5 | HAMIS | ||
h | HAMIS | 3 | IGAZ | ||
C | HAMIS | 3 | IGAZ | ||
IGAZ | 11 | IGAZ |
Kapcsolódó tartalom
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: