プロが教えるわが家の防犯対策術!

いつもお世話になります。

IF()と OR()と ISNA()を組み合わせて行数を返したいのですが、
セルの値が 0 ではない もしくは #N/A なら行数を、そうでなければスペースを返したいのです。

A列に関数が入っており、数値か#N/Aが返されています。

B2セルに、 =IF(OR(A2<>0,ISNA(A2)),ROW(),"")

と入力しB列最下行までオートフィルしたら、
A列が0の場合は行数が返りましたが、#N/Aの場合、、#N/Aと返され行数が返りません。


どこに問題があるか、わかる方教えてください。よろしくお願いします。

A 回答 (2件)

ORでくくると、エラー値の場合、A2<>0が判定できないので




=IF(ISNA(A2),ROW(),IF(A2<>0,ROW(),""))

と分けたらどうでしょう?
    • good
    • 0
この回答へのお礼

返信ありがとうございます。

教えて頂いた方法でできました。
orでくくる場合、エラー値は使えないのですね。
勉強になりました。

お礼日時:2014/03/10 12:44

「A2<>0」などのように、セルの値を評価した時、値が#N/A!になっていると、式全体が「#N/A!」になります。



なので

=IF(ISNA(A2) , A2を含まない式 , 式)

のように、N/Aのみ先に判断しないといけません。

なので、質問者さんの希望通りにするには

=IF(ISNA(A2) , ROW() , IF(A2<>0,ROW(),""))

と書く必要があります。
    • good
    • 0
この回答へのお礼

ありがあとうございます。

教えて頂いた方法でできました。
そうなんですね。勉強になりました。

お礼日時:2014/03/10 12:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!