鷹尾祥(アキラ)のExcel BI ブログ

Excelの革新的機能であるパワーピボット/パワークエリ/DAXについて紹介します。

計算・統計の使い方とステップの過去参照

計算・統計の使い方

f:id:modernexcel7:20190728105048p:plain


今回のテーマは「計算・統計の使い方とそれに関連したステップの過去参照」です。

目標として以下のようなテーブルがあった時、
 ① 商品ごとの売上を計算し、
 ② 全商品の売上合計に対するそれぞれの商品の占める割合を計算します。

Before

商品 単価 数量
商品A 500 52
商品B 800 196
商品C 600 435
商品D 1000 227
商品E 700 150

After

商品 単価 数量 売上 割合
商品A 500 52 26000 0.033513792
商品B 800 196 156800 0.202113947
商品C 600 435 261000 0.336426914
商品D 1000 227 227000 0.292601186
商品E 700 150 105000 0.135344161

実践

1. テーブルの読み込みと各商品の売上の計算

まず、テーブルの上にカーソルを置き、データメニュー→テーブルまたは範囲からでPower Query Editorを開きます。
f:id:modernexcel7:20190728083507p:plain

f:id:modernexcel7:20190715180606p:plain

f:id:modernexcel7:20190728083842p:plain

次に、列の追加メニューに移動し、Ctrlキーを押しながら単価数量列をクリックします。
f:id:modernexcel7:20190728084831p:plain

数値→標準→乗算を選択します。
f:id:modernexcel7:20190728084946p:plain

これで単価×数量=売上が計算されました。
f:id:modernexcel7:20190728085035p:plain

なお、Ctrlキーを押しながら選択した項目の順番がそのまま計算のテーブルが順番になります。今回は乗算なので順番が違っていても影響ありませんが、減算や除算などは要注意です。

ここで少し寄り道をしてカスタム列を追加して以下の計算式で売上を計算してみます。
f:id:modernexcel7:20190728092334p:plain

f:id:modernexcel7:20190728092346p:plain

先ほど作成した乗算とカスタム列で作成した売上がほぼ同じ結果で並んでいます。
f:id:modernexcel7:20190728092426p:plain

違うところと言えば、以下2点です。
① 列名:   「乗算」vs 「売上」
② データ型: 整数型 vs すべて型

その違いの出所を知るために、右側の適用したステップの中から挿入された乗算追加されたカスタムの数式をそれぞれ比較します。

f:id:modernexcel7:20190728093002p:plain

挿入された乗算
= Table.AddColumn(変更された型, "乗算", each [単価] * [数量], Int64.Type)

追加されたカスタム
= Table.AddColumn(挿入された乗算, "売上", each [単価] * [数量])

どちらも最初にTable.AddColumnという関数を使用しています。次の「変更された型」と「挿入された乗算」は直前のステップを表しているので、ここも無視します。

次に、列名を示す"乗算"と"売上"が異なります。
次に、乗算の方は最後に、Int64.Typeというデータ型を示す言葉があるのに対し、「売上」にはそれがありません。

【まとめ】
標準→乗算で追加:列名は設定できないが、データ型は正しい(整数)
カスタム列で追加:列名は設定できるが、データ型はすべて型


ここまで分かったので、処理をシンプルするために少し工夫します。最後の追加されたカスタムステップを削除し、挿入された乗算ステップの数式を以下のように変更します。

挿入された乗算
= Table.AddColumn(変更された型, "売上", each [単価] * [数量], Int64.Type)

f:id:modernexcel7:20190728094213p:plain

これで上手くいきました。最初にマウスクリックで数式のひな形を作成し、そのあとで数式を一部書き換えることで、効率的でシンプルなクエリを作成することができます。

2. 個々の商品の売上の占める割合を出す

次に、それぞれ売上の占める割合を出すために全商品の売上の合計を出します。そのためには、
 ① 全商品の売上合計を出し、
 ② それぞれの商品の売上を全商品の売上合計で割る
という2段階の作業が必要です。

① 全商品の売上合計を出す
変換メニューに移動し(列の追加メニューではありません)、売上列を選択したあとに統計→合計を選択してください。

f:id:modernexcel7:20190728101153p:plain

すると、画面がガラッと変わり、今まで縦横にテーブルが広がっていたのが、数値が一つしか表示されなくなりました。
f:id:modernexcel7:20190728101250p:plain

数字としては売上の合計のようですが、一つの値しか表示されなくなりました。このままでは割合どころの話ではないので元に戻します。
今回は、最後のステップを削除する代わりに、数式バーのfxをクリックして、2つ前のステップ名である挿入された乗算と入力します。

すると、プレビューが二つ前のステップに戻りました。
f:id:modernexcel7:20190728102219p:plain

今度は同じ要領で列の追加メニューでカスタム列を開き、以下のように計算された合計の値を追加します。
f:id:modernexcel7:20190728105204p:plain

すると、各行に先ほど統計→合計で計算した値が並びました。

f:id:modernexcel7:20190728105456p:plain

数式を見ると、eachの後に先ほど統計→合計で作成したステップである計算された合計があります。

= Table.AddColumn(カスタム1, "売上合計", each 計算された合計)

統計を使うときは、このようにいったん全行を一つの値にまとめたあと、前のステップに戻りその値を利用することができます。

② それぞれの商品の売上を全商品の売上合計で割る
それでは最後の仕上げとして、割合を計算します。列の追加メニューでCtrlキーを押しながら、売上売上合計の順番にクリックし、標準→除算を実行します。

f:id:modernexcel7:20190728110126p:plain

f:id:modernexcel7:20190728110213p:plain

最後に仕上げとして、売上合計の削除、除算記号のリネームをして完成です。

f:id:modernexcel7:20190728110308p:plain

ここまで来たら「閉じて読み込む」を実行してください。

f:id:modernexcel7:20190728110349p:plain

これで出来上がりです。