この記事では「エクセルのSUMIF関数で0になる(エラー:計算できない:SUMIFSも)原因と対策」について解説していきます。
原因は1つだけではありませんが、よく見かける事例としては下記の通りです。
・カタカナにおいて「全角」と「半角」が混在している
サンプルケースを用意してありますので、それに基づき解説しましょう。
目次
エクセルのSUMIF関数で0になる(エラー:計算できない:SUMIFSも)原因と対策
こちらは各商品の合計出荷個数を求めようとしているケースです。
SUMIF関数を使用していますが、正しく機能していないようです。
SUMIF関数について解説しますと、当関数は指定範囲において条件を満たすセルの合計値を求める際に使用し、
=SUMIF (範囲, 検索条件, [合計範囲])
と入力します。
各引数には
・範囲($B$2:$B$13): 商品名が並べられている列
・検索条件(E2): 対象の商品
・[合計範囲]($C$2:$C$13): 計算を行う範囲
がそれぞれ入力されています。
実は、数式には全く誤りはなく、「全商品」列に書かれた商品名に問題があります。
よく見てみると、半角で「チョコレート」と書かれています。
SUMIF関数において「チョコレート」と「チョコレート」は同一データとはみなされないのです。
そのため、範囲において「チョコレート」は存在しないデータと判定され、0が出力されてしまうのです。
正しい商品名に修正しましょう。
セルE2をダブルクリックして「チョコレート」→「チョコレート」に編集します。
完了後、ENTERを押すと、合計値が出力されるようになります。
こうしたトラブルを避ける一つの方策をご紹介いたします。
OFFICE 2021またはMicrosoft 365を使用していることが必須となりますが、UNIQUE関数を導入することです。
セルE2に「UNIQUE(B2:B13)」と入力します。
UNIQUE関数について解説しますと、当関数は指定した配列で一意なものをすべて抽出する機能を有し、
=UNIQUE(配列, [列の比較], [回数指定])
と入力します。
また、今回使用する引数は「配列」のみで、該当範囲であるB2:B13を入力し、その他の引数は未設定としています。
ENTERを押すと「#スピル!」と出てきますが、慌てることはありません。
これは「出力先のセルに既に値が入力されている」を意味しています。
セルE3:E5を選択し、Deleteキーを押してみましょう。
出力先のセルが空になったことで、正常な処理が行われます。
前述の通り、数式は正常なので、オートフィル機能でコピーしましょう。
全商品の数量が出力されたら、本ケースのトラブルはすべて解決です。
エクセルのSUMIFS関数でエラーになる(できない)原因と対策【0になるなど】
こちらのケースでは、各商品の合計出荷個数を支店別に求めようとしています。
しかし、ご覧の通り、正しい値が出力されていません。
SUMIFS関数について解説しますと、当関数は指定範囲において複数の条件を満たすセルの合計値を求める際に使用し、
=SUMIFS (合計対象範囲, 条件範囲1, 条件1, [条件範囲2], [条件2], …) *必要なだけ条件を指定できる
と入力します。
各引数には
・合計対象範囲($D$2:$D$13): 合計対象である出荷個数列
・条件範囲1($B$2:$B$13): 商品列
・条件1($F2): 対象の商品
・[条件範囲2]($C$2:$C$13): 支店列
・[条件2](G$1): 対象の支店
がそれぞれ指定されています。
ここでセルG2をよく確認してみましょう。
半角で「ナゴヤ」と書かれていることに気づいたでしょうか。
SUMIF関数と同様に、全角と半角は同じとみなされません。
セルG2に書かれた「ナゴヤ」を「ナゴヤ」に修正してみましょう。
完了後、ENTERを押すと正しい値が出力されました。
このような場合でも関数で回避することができますが、前回のように単純にUNIQUE関数だけでは解決できません。
UNIQUE関数は参照元の配列と同じ方向にしか書き出せない仕様なためで、もうひとつTRANSPOSE関数を導入する必要があります。
セルG2に「=TRANSPOSE(UNIQUE(C2:C13))」と入力します。
TRANSPOSE関数について解説しますと、当関数は指定された配列の縦横を入れ替える際に使用し、
= TRANSPOSE(配列)
と入力します。
UNIQUE関数で一意な支店名が取得され、TRANSPOSE関数で参照元と縦横が入れ替わったものが出力される、といったロジックであります。
ENTERを押すと、一意な支店名が出力されました。
「#スピル!」と表示された場合は出力先のセルが空であることを確認しましょう。
数式には一切誤りはありません。
あとはオートフィル機能で全てのセルに数式を入力すればOKです。
まとめ エクセルのSUMTIF関数で計算されない:うまくいかない:エラー)原因と対策【SUMIFS関数でも】
この記事では「エクセルのSUMTIF関数で0になる(計算されない:エラー)原因と対策【SUMIFS関数でも】」について解説しました。
多くの職場ではカタカナは全角で、英数字は半角でといったようなルールがあるようです。
ルールだけで今回のようなトラブルをすべて回避するのは困難ですが、全角・半角の誤りが場合によっては大きな混乱の元となる、という意識付けを与える点では非常に意味のあることであります。
この記事がトラブル解決スキルをアップさせるきっかけとなれば幸いです。