パワークエリの「合計」と「加算」は同じように見えるけど、実は違う

パワークエリには「足し算」する機能が2つあります。①「統計」という機能の「合計」と、②「標準」という四則演算する機能の「加算」です。

「合計」と「加算」

図表1 ①「統計」という機能の「合計」
図表2 ②「標準」という四則演算する機能の「加算」

①②いずれも「足し算」する機能ですが、挙動に少し違いがあることを知っておいた方が良いと思います。

日本語表記では、自動で計算列名に入る名称が、いずれも「加算」になってしまう!
紛らわしいので注意しよう!

「合計」も「加算」も同じ結果になる事例

ここでは、次のような2列のデータを足し算します。

図表3 「足し算」する2列のデータ

①「統計」という機能の「合計」では、次のようになります。

図表4 ①「統計」という機能の「合計」による結果

想定どおりですね。

ここでは、自動で付される「加算」という列名を「合計」に変えたよ。
“加算”とあるところを“合計”とすることで、ステップを一つ削除できるよ!

次に、②「標準」という四則演算する機能の「加算」の結果を見てみましょう。

図表5 ②「標準」という四則演算する機能の「加算」の結果

「加算」も、想定どおりですね。
ここで注目してほしいのは、図表4と図表5のそれぞれのM言語の違いです。
計算バーを見ると、①②ともに最初にTable.AddColumnとありますが、これはテーブルに列を追加するという関数です。今回は「列の追加」タブを使って解説しているのでTable.AddColumn関数が使われています。

ある条件下で、「合計」と「加算」の挙動が異なることになる

①②両者の違いは、そのあとの関数です。①はList.Sum関数が使われているのに対し、②は[列1] + [列2]として「+」演算子が使われています。この違いが、挙動の違いを生み出します。
図表3の足し算するための2列のデータを見ると、列1の5行目のセルは「0」ゼロとなっています。この場合は上述のように、①「合計」でも②「加算」でも結果は同じになります。
ここで、図表3のデータを次のようにしてみます。

図表6 列1の5行目を、nullにする

列1の5行目を、図表3のように「ゼロ」ではなく、図表6では「null」にしてみました。nullとは、空白値を意味します。
図表6のデータを対象に①「合計」と②「加算」をしてみると次のようになります。

図表7 nullがあるときの計算結果

nullが含まれるデータを対象に①「統計」という機能の「合計」をした結果は、図表4と同じになります。
しかし、②「標準」という四則演算する機能の「加算」の結果は図表5と異なり、「加算」列の5行目が「10」ではなく「null」になります。
つまり、こうです。

  • ①「統計」という機能の「合計」は、「null」を「0」に変換して計算する
  • ②「標準」という四則演算する機能の「加算」は、「null」を含むと「null」を返す

パワークエリは、実に奥が深い!
一見正しそうに見えても、挙動の違いにより、想定する結果が得られない場合もあるよ。
必ず、結果を見よう!

モダンExcel研究所

フォローお待ちしてます!

error: Content is protected !!