SUMMARIZE
Dotyczy:kolumna obliczeniowa
tabela obliczeniowa
Miara
wizualizacji
Zwraca tabelę podsumowania dla żądanych sum w zestawie grup.
Składnia
SUMMARIZE (<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)
Parametry
Termin | Definicja |
---|---|
table |
Dowolne wyrażenie DAX zwracające tabelę danych. |
groupBy_ColumnName |
(Opcjonalnie) Kwalifikowana nazwa istniejącej kolumny używanej do tworzenia grup podsumowania na podstawie znalezionych w nim wartości. Ten parametr nie może być wyrażeniem. |
name |
Nazwa nadana kolumnie sumy lub podsumowania ujęta w cudzysłów. |
expression |
Każde wyrażenie DAX zwracające pojedynczą wartość skalarną, gdzie wyrażenie ma być obliczane wiele razy (dla każdego wiersza/kontekstu). |
Wartość zwracana
Tabela z wybranymi kolumnami dla argumentów groupBy_columnName
i podsumowanymi kolumnami zaprojektowanymi przez argumenty nazw.
Uwagi
Każda kolumna, dla której definiujesz nazwę, musi mieć odpowiednie wyrażenie; w przeciwnym razie zwracany jest błąd. Pierwszy argument, name, definiuje nazwę kolumny w wynikach. Drugi argument, wyrażenie, definiuje obliczenia wykonywane w celu uzyskania wartości dla każdego wiersza w tej kolumnie.
groupBy_columnName musi znajdować się w
table
lub w powiązanej tabeli, abytable
.Każda nazwa musi być ujęta w znaki podwójnego cudzysłowu.
Funkcja grupuje wybrany zestaw wierszy w zestaw wierszy podsumowania według wartości co najmniej jednej groupBy_columnName kolumn. Jeden wiersz jest zwracany dla każdej grupy.
Ta funkcja nie jest obsługiwana w trybie DirectQuery w przypadku użycia w kolumnach obliczeniowych lub regułach zabezpieczeń na poziomie wiersza.
Przykład
Poniższy przykład zwraca podsumowanie sprzedaży odsprzedawcy pogrupowane w całym roku kalendarzowym i nazwę kategorii produktów. Ta tabela wyników umożliwia analizę sprzedaży odsprzedawcy według roku i kategorii produktów.
SUMMARIZE(ResellerSales_USD
, DateTime[CalendarYear]
, ProductCategory[ProductCategoryName]
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
W poniższej tabeli przedstawiono podgląd danych, który byłby odbierany przez dowolną funkcję oczekującą otrzymania tabeli:
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Kwota sprzedaży (USD)] | [Kwota rabatu (USD)] |
---|---|---|---|
2008 | Rowery | 12968255.42 | 36167.6592 |
2005 | Rowery | 6958251.043 | 4231.1621 |
2006 | Rowery | 18901351.08 | 178175.8399 |
2007 | Rowery | 24256817.5 | 276065.992 |
2008 | Składniki | 2008052.706 | 39.9266 |
2005 | Składniki | 574256.9865 | 0 |
2006 | Składniki | 3428213.05 | 948.7674 |
2007 | Składniki | 5195315.216 | 4226.0444 |
2008 | Odzież | 366507.844 | 4151.1235 |
2005 | Odzież | 31851.1628 | 90.9593 |
2006 | Odzież | 455730.9729 | 4233.039 |
2007 | Odzież | 815853.2868 | 12489.3835 |
2008 | Akcesoria | 153299.924 | 865.5945 |
2005 | Akcesoria | 18594.4782 | 4.293 |
2006 | Akcesoria | 86612.7463 | 1061.4872 |
2007 | Akcesoria | 275794.8403 | 4756.6546 |
Z ROLLUP
Dodanie składni ROLLUP modyfikuje zachowanie funkcji SUMMARIZE przez dodanie wierszy zestawienia do wyniku w kolumnach groupBy_columnName. ROLLUP można używać tylko w wyrażeniu SUMMARIZE.
Przykład
Poniższy przykład dodaje wiersze zestawienia do kolumn Group-By wywołania funkcji SUMMARIZE:
SUMMARIZE(ResellerSales_USD
, ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
Zwraca poniższą tabelę.
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Kwota sprzedaży (USD)] | [Kwota rabatu (USD)] |
---|---|---|---|
2008 | Rowery | 12968255.42 | 36167.6592 |
2005 | Rowery | 6958251.043 | 4231.1621 |
2006 | Rowery | 18901351.08 | 178175.8399 |
2007 | Rowery | 24256817.5 | 276065.992 |
2008 | Składniki | 2008052.706 | 39.9266 |
2005 | Składniki | 574256.9865 | 0 |
2006 | Składniki | 3428213.05 | 948.7674 |
2007 | Składniki | 5195315.216 | 4226.0444 |
2008 | Odzież | 366507.844 | 4151.1235 |
2005 | Odzież | 31851.1628 | 90.9593 |
2006 | Odzież | 455730.9729 | 4233.039 |
2007 | Odzież | 815853.2868 | 12489.3835 |
2008 | Akcesoria | 153299.924 | 865.5945 |
2005 | Akcesoria | 18594.4782 | 4.293 |
2006 | Akcesoria | 86612.7463 | 1061.4872 |
2007 | Akcesoria | 275794.8403 | 4756.6546 |
2008 | 15496115.89 | 41224.3038 | |
2005 | 7582953.67 | 4326.4144 | |
2006 | 22871907.85 | 184419.1335 | |
2007 | 30543780.84 | 297538.0745 | |
76494758.25 | 527507.9262 |
Z ROLLUPGROUP
Dodanie ROLLUPGROUP wewnątrz składni ROLLUP może służyć do zapobiegania częściowym sumom częściowym w wierszach zestawienia. ROLLUPGROUP można używać tylko w wyrażeniu ROLLUP, ROLLUPADDISSUBTOTALlub ROLLUPISSUBTOTAL.
Przykład
W poniższym przykładzie przedstawiono tylko sumę końcową wszystkich lat i kategorii bez sumy częściowej każdego roku ze wszystkimi kategoriami:
SUMMARIZE(ResellerSales_USD
, ROLLUP(ROLLUPGROUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]))
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
)
Zwraca poniższą tabelę.
DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Kwota sprzedaży (USD)] | [Kwota rabatu (USD)] |
---|---|---|---|
2008 | Rowery | 12968255.42 | 36167.6592 |
2005 | Rowery | 6958251.043 | 4231.1621 |
2006 | Rowery | 18901351.08 | 178175.8399 |
2007 | Rowery | 24256817.5 | 276065.992 |
2008 | Składniki | 2008052.706 | 39.9266 |
2005 | Składniki | 574256.9865 | 0 |
2006 | Składniki | 3428213.05 | 948.7674 |
2007 | Składniki | 5195315.216 | 4226.0444 |
2008 | Odzież | 366507.844 | 4151.1235 |
2005 | Odzież | 31851.1628 | 90.9593 |
2006 | Odzież | 455730.9729 | 4233.039 |
2007 | Odzież | 815853.2868 | 12489.3835 |
2008 | Akcesoria | 153299.924 | 865.5945 |
2005 | Akcesoria | 18594.4782 | 4.293 |
2006 | Akcesoria | 86612.7463 | 1061.4872 |
2007 | Akcesoria | 275794.8403 | 4756.6546 |
76494758.25 | 527507.9262 |
Z ISSUBTOTAL
Za pomocą ISSUBTOTALmożesz utworzyć kolejną kolumnę w wyrażeniu SUMMARIZE, które zwraca wartość True, jeśli wiersz zawiera wartości sumy częściowej dla kolumny podanej jako argument do ISSUBTOTAL, w przeciwnym razie zwraca wartość False. ISSUBTOTAL można używać tylko w wyrażeniu SUMMARIZE.
Przykład
Poniższy przykład generuje kolumnę ISSUBTOTAL dla każdej z kolumn ROLLUP w danym wywołaniu funkcji SUMMARIZE:
SUMMARIZE(ResellerSales_USD
, ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])
, "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD])
, "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount])
, "Is Sub Total for DateTimeCalendarYear", ISSUBTOTAL(DateTime[CalendarYear])
, "Is Sub Total for ProductCategoryName", ISSUBTOTAL(ProductCategory[ProductCategoryName])
)
Zwraca poniższą tabelę.
[Is Sub Total for DateTimeCalendarYear] | [Is Sub Total for ProductCategoryName ] | DateTime[CalendarYear] | ProductCategory[ProductCategoryName] | [Kwota sprzedaży (USD)] | [Kwota rabatu (USD)] |
---|---|---|---|---|---|
FALSE |
FALSE |
||||
FALSE |
FALSE |
2008 | Rowery | 12968255.42 | 36167.6592 |
FALSE |
FALSE |
2005 | Rowery | 6958251.043 | 4231.1621 |
FALSE |
FALSE |
2006 | Rowery | 18901351.08 | 178175.8399 |
FALSE |
FALSE |
2007 | Rowery | 24256817.5 | 276065.992 |
FALSE |
FALSE |
2008 | Składniki | 2008052.706 | 39.9266 |
FALSE |
FALSE |
2005 | Składniki | 574256.9865 | 0 |
FALSE |
FALSE |
2006 | Składniki | 3428213.05 | 948.7674 |
FALSE |
FALSE |
2007 | Składniki | 5195315.216 | 4226.0444 |
FALSE |
FALSE |
2008 | Odzież | 366507.844 | 4151.1235 |
FALSE |
FALSE |
2005 | Odzież | 31851.1628 | 90.9593 |
FALSE |
FALSE |
2006 | Odzież | 455730.9729 | 4233.039 |
FALSE |
FALSE |
2007 | Odzież | 815853.2868 | 12489.3835 |
FALSE |
FALSE |
2008 | Akcesoria | 153299.924 | 865.5945 |
FALSE |
FALSE |
2005 | Akcesoria | 18594.4782 | 4.293 |
FALSE |
FALSE |
2006 | Akcesoria | 86612.7463 | 1061.4872 |
FALSE |
FALSE |
2007 | Akcesoria | 275794.8403 | 4756.6546 |
FALSE |
TRUE |
||||
FALSE |
TRUE |
2008 | 15496115.89 | 41224.3038 | |
FALSE |
TRUE |
2005 | 7582953.67 | 4326.4144 | |
FALSE |
TRUE |
2006 | 22871907.85 | 184419.1335 | |
FALSE |
TRUE |
2007 | 30543780.84 | 297538.0745 | |
TRUE |
TRUE |
76494758.25 | 527507.9262 |