MAXIFS関数が#VALUE!エラーになる原因と解消方法
ここでは、MAXIFS関数で#VALUE!エラーになる原因と対処法を解説します。
なぜ#VALUE!エラーになるのか、どのようにすれば#VALUE!エラーが出なくなるのかの説明です。
1.最大範囲と条件範囲の行番号が不一致
考えられる原因の一つ目は「最大範囲と条件範囲の行番号が不一致」です。
では、エラーが起こっている例と対処法を見てみます。
1-1.行番号が不一致とは?
ひとつ例を見てみましょう。
例えば、上のセルA1からB5までの表から、「A列が『B』であるB列の最大値」を求めようとしています。
そこでMAXIFS関数を使い、次のように数式を入れました。
=MAXIFS(B1:B4,A1:A5,"B")
しかし…
結果は、#VALUE!エラーになりました。
数式をよく見ると、最大範囲と条件範囲の「行番号が一致していない」ことが分かります。
具体的には、最大範囲が「1~4行目」、条件範囲が「1~5行目」となっているのです。
このように、引数ごとの表範囲が同じでないと、MAXIFS関数は#VALUE!エラーになります。
1-2.「行番号不一致」への対処法は?
対処法は「行番号を合わせる」ことです。
例の場合には、最大範囲を「B1:B5」に修正します。
これで#VALUE!エラーが解消されました。
なおこれは複数条件の時も同じで、一つでも行番号が違っている引数があると#VALUE!エラーになります。
気を付けてください。
2.閉じたブック内のセルを参照している
考えられる原因の二つ目は「閉じたブック内のセルを参照している」です。
では、エラーが起こっている例と対処法を見てみます。
2-1.閉じたブック内のセルを参照しているとは?
「閉じたブック内のセルを参照している」とは、MAXIFS関数の引数で別のエクセルファイルのセルを指定していることを言います。
他ブックを参照していると、数式は上のようになります。
MAXIFS関数では「閉じているブックの中身」を見ることができません。
そのため、参照先のブックを閉じた状態では#VALUE!エラーになるのです。
なお、数式を作っている時にエラーにならないのは「参照先のブックを開いているから」です。
2-2.「閉じたブック参照」への対処法は?
対処法は、「MAXIFS関数以外の関数を使う」です。
具体的には、MAX関数とIF関数を合わせて配列数式にするとエラーになりません。
数式の作り方は、次の通りです。
(1)数式バーに「=MAX(IF(」と入力しfxボタンを押す
(2)IF関数の引数「論理式」に条件範囲と条件を、「値が真の場合」に最大範囲を、「値が偽の場合」に「""」を入力する
(3)「ctrl」キーと「shift」キーを押しながら「enter」キーを押せば完了
※後ろのカッコは自動で付けられます
特に(3)の操作は「配列数式」にするもので、これをしないと#VALUE!エラーになります。
なお、複数条件の時には条件式をカッコでくくって「*」でつなげ、次のようにします。
例えば、上の表から「A列が『B』、B列が『b』であるC列の最大値」を求めたい時、条件式は「(A1:A5="B")*(B1:B5="b")」となります。
このように「カッコでくくる」、そして「『*』でつなげる」で、複数条件を指定することができます。
MAXIFS関数に比べて数式の書き方がとても面倒ですが、こちらの方法であれば閉じたブックを参照しても#VALUE!エラーにならないので、状況によって利用しましょう。
以上、参考になれば幸いです。
【口コミ・評判のいいExcel本の紹介】