アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になってます。
以下の関数式について、お時間がありましたらどうぞご教示ください。

=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)

A 回答 (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回繰り返しになってます。
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/11/08 21:29

こんばんは~♪



失礼しま~す。

>「シート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でした~♪♪
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/11/08 21:28

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でなかったときにはその値を入れろという意味で、
無意味に繰り返しているわけではありませんよ。

わからない関数がでてきたときには、ヘルプで調べてみましょうね。
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/11/08 21:27

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関数の中で説明されています。
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/11/08 21:26

 


式を訳して考えます。
=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のエラーなら,空白,エラーで無いなら調査結果とする)

 
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/11/08 21:24

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