Excelで、式が#NAを返す場合に「デフォルト値」を提供できますか?


23

例えば、

セルの値は次のとおりです。

IF(ISNA(VLOOKUP(A3,somesheet!G:J,3,FALSE) * VLOOKUP(A3,someothersheet!A:D,4,FALSE)), 0, VLOOKUP(A3,somesheet!G:J,3,FALSE) * VLOOKUP(A3,someothersheet!A:D,4,FALSE))

ここでは、2つのVLOOKUPの製品が必要です。ただし、一部の行が存在しない可能性があるため、NAを返す可能性があります。NAが返される場合、このセルにゼロを入力しますが、そうでない場合は製品が必要です。

そこにその表現全体を2回入れる必要があるのはばかげているようです。「この計算を行い、値を返す場合はそれを使用しますが、それ以外の場合はデフォルト値を使用します」と言うことができるショートカットはありますか?


私は確かにそれを正しく行うが、ここで見てする方法はないよmrexcel.com/td0110.html助けるべき最後の例を
chmodの

あなたの式は完璧です、私はあなたが望むショートカットがわからない。ユーザー定義関数を定義することもできますが、それにより、より短く、より複雑になりません。
レイスタファリアン

回答:


38

Excel 2007以降のバージョンを使用している場合、IFERROR関数を使用して繰り返しを回避できます

=IFERROR(VLOOKUP(A3,somesheet!G:J,3,FALSE)*VLOOKUP(A3,someothersheet!A:D,4,FALSE),0)

または、以前のバージョンでこのような回避策を使用できます

=LOOKUP(9.9E+307,IF({1,0},0,VLOOKUP(A3,somesheet!G:J,3,FALSE)*VLOOKUP(A3,someothersheet!A:D,4,FALSE)))


その最初の例はまさに私が探しているものです。ありがとう!
ジャー

5

NAの最初のルックアップ値をチェックし、次に2番目のルックアップ値をチェックし、両方が有効であればそれらを乗算する場合、より意味があります。

=IF(OR(ISNA(VLOOKUP(A3,somesheet!G:J,3,FALSE)),ISNA(VLOOKUP(A3,somesheet!A:D,4,FALSE))), 0, VLOOKUP(A3,somesheet!G:J,3,FALSE) * VLOOKUP(A3,somesheet!A:D,4,FALSE))

これにより複雑さが増しますが、繊細なプログラマーの感受性を損なうことはありません。;-)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.