ExcelでMAX(IF(…))のような配列関数を使用していると、条件に合致しない場合や空文字列を返すと#N/Aが表示されることがあります。特にOFFSET関数で動的に範囲を設定している場合、空セルや文字列が混ざると計算できないことがあります。
この記事では、ExcelでMAX(IF(…))が#N/Aになる原因と、正しく計算させる方法を解説します。
#N/Aが出る原因
IF関数で条件に合わなかった場合に空文字列””を返すと、MAX関数は文字列を無視できず、#N/Aを返すことがあります。
また、OFFSET関数で作成した範囲に数値以外のデータや空白セルが混じると、配列計算でエラーになる場合があります。
空文字列の代わりにNAや0を使う
条件に合わない場合、空文字列””ではなくNA()や0を返すようにするとMAX関数で正しく計算できます。例えば以下のように変更します。
=MAX(IF(NsA>$A$10,TempAD,NA()))
これにより、条件に合わない箇所は計算から除外され、#N/Aの表示を回避できます。
配列数式として入力する
古いExcelでは、IF関数の内部で配列を扱う場合、Ctrl+Shift+Enterで配列数式として入力する必要があります。
最新のExcelでは自動的に動的配列として計算されますが、古いバージョンでは忘れると#N/Aが出ることがあります。
範囲の正確性を確認
OFFSET関数で作成する範囲が意図通りのサイズになっているか確認しましょう。COUNTAで計算した範囲がずれていると、意図しない空セルや文字列が含まれることがあります。
例えば、参照する列に見出しや文字列が混じっていないか確認し、必要に応じて範囲を調整してください。
まとめ:#N/Aを回避するポイント
ExcelでMAX(IF(…))を使う際は、条件に合わない場合の返り値を適切に設定し、配列数式として入力し、範囲の正確性を確認することが重要です。
これらのポイントを押さえることで、#N/Aを防ぎ正しく最大値を計算できるようになります。


コメント