• ベストアンサー

=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $

いつもお世話になってます。 以下の関数式について、お時間がありましたらどうぞご教示ください。 =IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $12,2,FALSE)) 「シート2の範囲指定した表にA1セルの値と同じ値の右隣になる値を返せ。ただし該当なき場合は空白とせよ。」 純粋になんでこのような構文になるのかが解りません。 1.ISNAってそもそもなんでしょう? 2.同じ式を繰り返すのはなぜ? (模範式で、このように同じ式を繰り返す構文があまり無いように思えたのです。) ・参考となる他所のページがあれば教えて下さい。 ・素人です。お手柔らかにお願いします。 (エクセル2003)

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.5

1.ISNAってそもそもなんでしょう? ISで始まる情報関数の一つで、#N/A!エラーのみを判定する関数 結果はTRUE(真),FALSE(偽)のいずれかになります。 エラー判定のIS関数には他に ISERR:#N/A!を除くすべてのエラーを判定する関数 ISERROR:すべてのエラーを判定する関数 があります。 2.同じ式を繰り返すのはなぜ? ISNAの判定する値がセルでなく数式の結果だからです。 A2=VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE) なら A3=IF(ISNA(A2),"",A2) ということになります。A2のように計算の為のセルを省略する為に =IF(ISNA(数式),"",数式)のように同じ数式を2回繰り返しになってます。

noujii
質問者

お礼

ありがとうございました。

その他の回答 (4)

  • rin01
  • ベストアンサー率43% (33/76)
回答No.4

こんばんは~♪ 失礼しま~す。 >「シート2の範囲指定した表にA1セルの値と同じ値の右隣になる値を >返せ。ただし該当なき場合は空白とせよ。」 ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)) の部分を COUNTIF関数を使って =IF(COUNTIF(Sheet2!$A$1:$B$12,$A1),VLOOKUP($A1,Sheet2!$A$1:$B$12,2,FALSE),"") こんな式も、良く見かけますね。 ご参考にどうぞ~。。。 。。。Ms.Rinでした~♪♪

noujii
質問者

お礼

Ms.Rin様ありがとうございました。

回答No.3

ISNA(テスト対象) テストの対象がエラー値 #N/A (使用する値がない) のとき TRUE を返します。 =IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $12,2,FALSE)) これはVLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE))の値が#N/Aだったら セルに""を入れ、#N/Aでなかったときにはその値を入れろという意味で、 無意味に繰り返しているわけではありませんよ。 わからない関数がでてきたときには、ヘルプで調べてみましょうね。

noujii
質問者

お礼

無意味に繰り返してるワケではないと?(笑) (=^ー^=)ありがとうございました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

1.ISNA関数は#NA!エラーを検出したときにTRUEになります。  VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)  がエラー(=シート2のA列に合致する値がない)なら空白(””)を返し、そうでない(=合致する値がある)時は  VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE) の値そのもの(A列の値が合致する値のB列の値)を返すのです。 2.同じ式を繰り返しているのは最初のVLOOKUP関数は条件、後のVLOOKUP関数は値(戻り値)として使用しているためです。 ISNAはEXCELのヘルプではIS関数の中で説明されています。

noujii
質問者

お礼

大変わかりやすかったです。ありがとうございました。 「TRUE」「FALSE」自体もよく解ってないので、また別の機会に質問させていただきます。

noname#58440
noname#58440
回答No.1

  式を訳して考えます。 =IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $12,2,FALSE)) この式のVLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)をシート2の範囲にA1セルの値と同じ値が有るかを調べる意味で「調査結果」と名付ける、すると元の式は =IF(ISNA(調査結果),"",調査結果) となります。 こうなれば理解は簡単になります。 ISNA(調査)・・・調査結果が#N/Aのエラーか? これで理解できますネ =もし(調査結果が#N/Aのエラーなら,空白,エラーで無いなら調査結果とする)  

noujii
質問者

お礼

目線に合わせていただいた説明に大変嬉しいです。 ありがとうございました。

関連するQ&A