このページでは、SUMMARIZE関数の機能と使い方を解説します。サマリーテーブルの作成や、データの要約方法を紹介します。
・使用する関数:SUMMARIZE関数
関数の概要と使用データの紹介
SUMMARIZE関数は、テーブルの中から列データを選択し、選択する列を基準としたデータテーブルを作成することができるテーブル操作関数です。
=SUMMARIZE(テーブル名、グループ化する列、名前、計算列、)
グループ化する列、名前、計算列は複数選択することができます。また、名前、計算列は省略が可能です。
グループ化する列は集計の基準となる列です。
この記事では、MIcrosoftからダウンロードできる財務サンプルデータを使用してSUMMARIZE関数を使用してみます。
ページ内の直接ダウンロードするからダウンロードすることができます。
ダウンロードしたExcelブックは、月ごとにSegment、Country、Product、Discount Band、Profitなどの財務関係のデータが入っています。テーブル名はfinancialsとします。
関数の基本的な使い方
SUMMARIZE関数はテーブル操作関数なので、レポートビューのモデリングタブ、新しいテーブルを選択します。
DAX式を入力することで、新しくサマリーテーブルの作成やデータの要約ができます。
サマリーテーブルとは、元のデータから集計、要約されたデータのセットのことで、大量のデータを効率的に扱うためのテーブルのことです。
financialsテーブルに対して、SUMMARIZE関数を使用してみます。
グループ化する列(第2引数)だけを選択した場合
グループ化する列が1つの場合。
SUMMARIZE_financial =
SUMMARIZE(
financials,
financials[Country]
)
グループ化する列の引数に[Country]だけを選択することで、financialsテーブルの中にCountry列にあるデータだけを抽出することができます。このとき、データは重複しません。
グループ化する列が2つの場合。
SUMMARIZE_financial =
SUMMARIZE(
financials,
financials[Country],
financials[Product]
)
グループ化する列の引数に[Country]と[Product]を選択しました。
financialsテーブルの中からCountry列とProduc列を抽出し、新しいテーブルを作成することが可能です。
グループ化する列は、リレーションシップの関係がある別のテーブルの列を引用することができます。
名前、計算列(第3,4引数)の使い方
第3,4引数を使用して、グループ化したテーブル計算列を追加することができます。
計算結果は、グループ化した列に応じた行コンテキストが反映されています。
SUMMARIZE_financial =
SUMMARIZE(
financials,
financials[Country],
"SUM Sales",SUM(financials[ Sales]),
"SUM Unit Sold",SUM(financials[Units Sold])
)
グループ化したCountryに対して、Salesの合計と、Unit Soldの合計を計算し、新しい列で表示しました。
このように、SUMMARIZE関数を使用すること、大規模なデータから、任意の項目だけで構成されるサマリーテーブルを作成することが簡単にできます。
SUMMARIZE関数の使用例
financialsテーブルから、Countryデータを抽出し、日本語で記載された国名列を追加してみます。
国名 =
SUMMARIZE(
financials,
financials[Country],
"国名",SWITCH(TRUE(),
[Country]="Canada","カナダ",
[Country]="France","フランス",
[Country]="Germany","ドイツ",
[Country]="Mexico","メキシコ",
[Country]="United States of America","アメリカ"
)
)
作成した国名テーブルはCounrtryを基準にfinancialsテーブルとリレーションシップを作成します。
financialsテーブルを使用した、サマリーテーブルの作成例を表示してみます。
ここでは、2014年のみとデータを抽出し、別のテーブルのデータである日本語の国名も列データとして加えます。
SUMMARIZE_financial_2014 =
SUMMARIZE(
FILTER(financials,[Year]=2014),
financials[Country],
financials[Product],
'国名'[国名],
"SUM Sales",SUM(financials[ Sales]),
"SUM Profit",SUM(financials[Profit])
)
まとめ
- SUMMARIZE関数を使用することで、サマリーテーブルやデータを要約することが可能。
- リレーションシップの関係にあるデータを引用することができる。