クリスは、ワークブックに一連のワークシートを1年の各月に1つずつ持っています。要約ワークシートで、彼は各ワークシートの同じセルの値を合計したいと考えています。クリスは、次のような式を使用してこれを行います。

=SUM(January:December!B19)

これは、範囲内のB19セルの1つに値#N / Aが含まれている可能性がある場合を除いて、正常に機能します。その場合、Chrisはサマリーシートの結果でも#N / Aを取得します。クリスが望んでいるのは、セルが空白であるかのように、合計に対して#N / Aの結果を無視することです。

この問題に取り組むには、いくつかの方法があります。おそらく最良の方法は、毎月のワークシートのセルB19で使用されている数式を確認することです。たとえば、各ワークシートの数式が次のようになっているとします。

=SUM(B1:B18)

これらの個々のワークシートの数式を変更して、#N / A値の可能性を考慮に入れることができます。たとえば、次は各ワークシートのB19で問題なく機能します。

=SUMIF(B1: B18,"<>#N/A")

これにより、各ワークシートのセルB19の合計は、範囲内のすべての非N / A値に基づきます。このため、要約シートでこれを実行できると思うかもしれません:

=SUMIF(January:December!B19,"<>#N/A")

ただし、SUMIF関数は本質的に「3次元」ではないため、これは機能しません。示されている方法で、さまざまなワークシートで使用することはできません。このため、最善の解決策は、要約ワークシートで集計されている各ワークシートの個々の値に戻ることです。

個々の月のワークシートの数式でSUM関数が使用されていない場合、SUMIFを使用するように数式を変更するのは明らかに簡単ではありません。その場合、数式がエラー値を返すかどうかを確認するために、既存の数式をチェックで「囲む」ことができます。この手法は次のように行われます:

=IF(ISERROR(<current_B19_formula>),0,<current_B19_formula>)

IF関数は、ISERROR関数によって返されるTrue / False値を探します。したがって、数式がエラー値(#N / Aなど)を返す場合、IF関数は0を返します。それ以外の場合は、元の数式の結果を返します。このアプローチは、エラー結果をチェックします。 #N / Aの結果のみをチェックして無視したい場合は、次のバリエーションを使用できます。

=IF(ISNA(<current_B19_formula>),0,<current_B19_formula>)

これらのIFベースのアプローチと、ヒントで前述したSUMIFアプローチの使用には大きな違いがあります。 SUMIFアプローチは、範囲内のすべての非N / A値の合計を返しますが、範囲内に#N / A値がある場合、IFベースのアプローチは合計全体に対して0を返します。これは明らかにサマリーシートに表示される内容に影響を与える可能性があるため、作業しているデータに最適なアプローチを決定する必要があります。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(3156)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。