- ベストアンサー
エクセル関数 IF関数・OR関数・ISNA関数
いつもお世話になります。 IF()と OR()と ISNA()を組み合わせて行数を返したいのですが、 セルの値が 0 ではない もしくは #N/A なら行数を、そうでなければスペースを返したいのです。 A列に関数が入っており、数値か#N/Aが返されています。 B2セルに、 =IF(OR(A2<>0,ISNA(A2)),ROW(),"") と入力しB列最下行までオートフィルしたら、 A列が0の場合は行数が返りましたが、#N/Aの場合、、#N/Aと返され行数が返りません。 どこに問題があるか、わかる方教えてください。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ORでくくると、エラー値の場合、A2<>0が判定できないので =IF(ISNA(A2),ROW(),IF(A2<>0,ROW(),"")) と分けたらどうでしょう?
その他の回答 (1)
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
回答No.2
「A2<>0」などのように、セルの値を評価した時、値が#N/A!になっていると、式全体が「#N/A!」になります。 なので =IF(ISNA(A2) , A2を含まない式 , 式) のように、N/Aのみ先に判断しないといけません。 なので、質問者さんの希望通りにするには =IF(ISNA(A2) , ROW() , IF(A2<>0,ROW(),"")) と書く必要があります。
質問者
お礼
ありがあとうございます。 教えて頂いた方法でできました。 そうなんですね。勉強になりました。
お礼
返信ありがとうございます。 教えて頂いた方法でできました。 orでくくる場合、エラー値は使えないのですね。 勉強になりました。