プロが教える店舗&オフィスのセキュリティ対策術

以前、以下のような質問をして、幸いなことに回答をいただきました。

一定の条件で別シートのデータを表示させるには
https://oshiete.goo.ne.jp/qa/9201272.html
(IFERROR関数を使用するとよいとの回答)

いままで、Excel2013で作業をしていたので、回答の関数を使用してこれましたが、同じ作業をExcel2003で行う必要が生じました。

するとエラーが出て期待する結果が得られなくなりました。

Excel2003でもIFERROR関数と同じような結果が得られる方法をご存知の方がありましたら、教えていただけると大変助かります。

お知恵を貸していただける方がありましたら、よろしくお願いします。

A 回答 (3件)

No.2さんの数式に間違いがあるので訂正しておきます


=IF(ISERROR(VLOOKUP($B8,シートB!$C:$E,COLUMN(B1),0)),"",VLOOKUP($B8,シートB!$C:$E,COLUMN(B1),0))

当方の案も2つ載せておきます
●B8セルが空白だったら探さない
=IF($B8="","",INDEX(シートB!D:D,MATCH($B8,シートB!$C:$C,0)))
基本的には上記案で良いと思います。
ただし、質問と完全には合致していません。
検索値が見つからない場合にエラーが出るので。

●B8セルの値が見つからなければ、長さ0の文字(空白)を返す。
=IF(ISNA(MATCH($B8,シートB!$C:$C,0)),"",INDEX(シートB!D:D,MATCH($B8,シートB!$C:$C,0)))
質問とほぼ合致しますが、戻り値(シートBの値)がエラーの場合に表示されます。
No.1mike_gさんと同じです。

上記2つを組み合わせて
=IF($B8="","",IF(ISNA(MATCH($B8,シートB!$C:$C,0)),"",INDEX(シートB!D:D,MATCH($B8,シートB!$C:$C,0))))
B列に空白セルが多い場合の計算速度向上のためですが、あまり必要ないと思う。

求めたい値によって使い分けてください
    • good
    • 0
この回答へのお礼

回答をいただいたのにお礼が遅れて申し訳ありませんでした。

複数の関数を提示していただきありがとうございました。

>●B8セルの値が見つからなければ、長さ0の文字(空白)を返す。

を入力したところ、一番想定していたような表示がされました。

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

お礼日時:2016/09/25 21:40

excel2003には「IFERROR」関数がないため、「IF」+「ISERR」関数をネストして式を組み立てます。


セルC8=IF(ISERR(VLOOKUP($B8,シートB!$C:$E,COLUMN(B1),0)),VLOOKUP(B8,シートB!$C:$E,COLUMN(B1),0),"")
excel2007以降、「IF」+「ISERR」が組み合わさって新たに「IFERROR」という関数ができました。
    • good
    • 0
この回答へのお礼

回答をいただいたのにお礼が遅れて申し訳ありませんでした。

>excel2007以降、「IF」+「ISERR」が組み合わさって新たに「IFERROR」という関数ができました。

不勉強なため知りませんでした。ご教授ありがとうございます。

教えていただいた関数で想定していたような表示がされました。

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

お礼日時:2016/09/25 21:38

SheetA!C8: =IF(COUNTIF(SheetB!$C:$C,$B8),VLOOKUP($B8,SheetB!$C:$E

,COLUMN(B1),FALSE),"")
    • good
    • 0
この回答へのお礼

回答をいただいたのにお礼が遅れて申し訳ありませんでした。

想定していたような表示がされました。

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

お礼日時:2016/09/25 21:37

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