このページでは、マトリックスのビジュアルに空白を含めた平均値を計算する方法を紹介します。
通常の数値計算のほか、項目をカウント数の平均値を表示する方法も記載しています。
マトリクスへの平均値の表示
通常の数値データであれば、特別な設定は不要で、ビジュアル(マトリクス)を選択し、視覚化ペインから値の表示方法を平均に変更すれば計算することができます。
ただし、この方法だと、小計に表示される平均値は存在する項目のみで計算をされてしまいます。
例えば下記の場合だと、カテゴリー”100+”は、データがある2015,2016,2018,2020のみで平均値を計算しています。
→ (103+100+104+100) / 4= 101.75
マトリクスが空白として表示されている場合、基本的にその項目にはデータが存在しないことを意味しています。
上の例では、カテゴリー100+において、2017のデータがそもそも存在していないため空白として表示。
(もちろん存在するデータは問題なく計算できています。)
視覚化ペインの設定で平均値を表示する場合、存在するデータのみ(空白(Blank)は無視して)で平均値を計算します。
空白を含めた平均値の計算方法
空白は0として、平均値を計算したい場合は、メジャーを使用して新しく計算式を作成する必要があります。
使用するデータ
以下のような、スコアとスコアのカテゴリー、サービスなどに登録した年を示すデータを用いて空白を含めた平均値を計算してみます。(各登録年とスコアの組み合わせに重複はありません。)
視覚化ペインの設定で平均値を求めた場合は下記になります。
計算式
メジャーを使用して、新しい計算式を作成します。
スコアの平均 =
VAR Y_count = CALCULATE(DISTINCTCOUNT(data[登録年]),ALLEXCEPT(data,data[登録年]))
RETURN
DIVIDE(SUM(data[スコア]),Y_count)
//空白は0として計算。
作成したメジャーをマトリクスの値に設定してみました。列の小計には空白を0として平均値を計算しています。
計算式の解説
平均値を計算するDAX関数はいくつかありますが、いずれも値が存在するもののみが対象になっており、今回のような存在しない数値を0とみなして計算を行うには不適切です。
そこで今回は明示的に、メジャーで平均値を計算しました。
スコアの平均 =
VAR Y_count = CALCULATE(DISTINCTCOUNT(data[登録年]),ALLEXCEPT(data,data[登録年]))
RETURN
DIVIDE(SUM(data[スコア]),Y_count)
//空白は0として計算。
DISTINCTCOUNT関数を使用して、登録年のデータの数を計算しています。フィルターはALLEXCEPT関数を使用してデータの有無を無視して全体の項目数を計算。
平均値の計算は、DIVIDE関数を使用して計算。第一引数の被除数をCOUNT関数等に変更すると、空白を考慮したデータ数の平均値を計算することが可能になります。
まとめ
- 視覚化ペインを使用した平均値は空白を無視して計算。
- 平均値を計算するDAX関数は空白を0として計算を行うには不適切。
- メジャーを使用して空白を0として計算を行う式を作成。