SUMIF関数で#VALUE!エラー!?|原因と対処方法

ここでは、エクセルのSUMIF関数で「#VALUE!エラー」になる原因と対処方法を解説します。

 

分かりづらい原因なのですが、読めば解決します。

本記事はアフィリエイト広告を含みます

1.#VALUE!エラーはなぜ起こる?

SUMIF関数で#VALUE!エラーは、なぜ起こるのでしょうか?

 

そもそも、#VALUE!エラーは「入力した数式に問題があるか、参照先のセルに問題がある」時に起こるものです。

 

まずは、#VALUE!エラーの例と原因を確認します。

 

1-1.#VALUE!エラーの例

では、次の数式はどこに問題があるのでしょうか?

上の数式は、引数「範囲」と「合計範囲」で「他のエクセルファイルを参照している」点以外は、普段と同じです。

 

前提として、「引数の入れ方」、「数式の使い方」に問題はないものとします。

 

しかし、結果は「#VALUE!エラー」になってしまいました。

 

1-2.#VALUE!エラーの原因

この場合、問題は「参照先」にあります。

 

SUMIF関数は、「他のエクセルファイルを参照」すると#VALUE!エラーになってしまうのです。

ちなみに、参照先のファイルを開けばその時点でエラーは解消されます。

2.#VALUE!エラー解消のための対処方法

しかし、その都度参照先のファイルも開くのはとても面倒ですよね。

 

できれば開かなくてもエラーにならないようにしたいものです。

 

そこで、エラーにならない方法を2つ紹介します。

 

2-1.SUM関数と関数を組み合わせる

「SUM関数とIF関数の組み合わせ」て「配列数式」にすると、エラーが起こらずSUMIF関数と同じことができます。

SUMIF関数の数式の形は、以下の通りでした。

=SUMIF(範囲,検索条件,合計範囲)

 

対して、SUM関数とIF関数の組み合わせ+配列数式で同じことをしようとした場合、数式は、次のようになります。

{=SUM(IF(([範囲=検索条件)*1,合計範囲,""))}

ちなみに「{ }」は、手入力ではなく「数式入力後『CtrlキーとShiftキーを押しながらEnterキーを押す」ことで付けます。

 

例えば、数式は次のようになります。

=SUMIF([Book1.xlsx]Sheet1!B2:B7,"A")

 ↓

{=SUM(IF(([Book1.xlsx]Sheet1!$A$2:$A$7="A")*1,[Book1.xlsx]Sheet1!$B$2:$B$7,""))}

 

SUM関数とIF関数の組み合わせ+配列数式はかっこの多さと「*1」の意味が分かりづらいですが、こういうもんだと思って使えば意外と簡単です。

 

これが一つ目の対処方法です。

 

2-2.結果を表示させるファイルに参照元の表をコピーする

もう一つ方法があります。

 

それは「結果を表示させるセルに参照元の表をコピーし、それに対してSUMIF関数を使う」ことです。

 

具体的には、次の手順で行います。

手順
  • ① 結果表示のファイルに「シートを新規作成」
  • ② 「=」を使って参照元にある値をコピーする
  • ③ 出来上がったシートに対してSUMIF関数を使う

例えば上の表は、Book1のシート1の表をBook2のシート2にコピーしたものです。

 

セルA2の値は「=」で「Book1のシート1のセルA2」を参照しています。

 

このような参照元とリンクした表を作り、これに対してSUMIF関数を使うのです。

この「リンクした作業用シート」を挟むことで、閉じたファイルの値が取得できるようになり、結果#VALUE!エラーが発生しなくなります。

 

以上、参考になれば幸いです。

 


口コミ・評判のいいExcel本の紹介】


Top