• 締切済み

エクセル

シート1に載っているコードをキーに シート2にある住所を引っ張りたいです。 ただし、コードが2通りあり、シート1のA列にコードがない場合、 B列のコードを参照して欲しいのです。 下記のような感じだと、シート2に シート1のA5 126はないのでB5の226で引っ張りたい。。。 できますでしょうか? 1箇所だとVLOOKUPで引っ張っているのですが… ご教授お願いいたします。 ◎シート1   A     B 1 111     222 2 123     223 3 124     224 4 125     225 5 126     226 ◎シート2   A       B 1 111     住所 2 123     住所 3 124     住所 4 222     住所 5 226     住所

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 色々回答は出ていますが、一例です。 Excel2007以降のバージョンをお使いだとして・・・ ↓の画像で右側がSheet2とします。 左側のSheet1のD2セルに =IFERROR(VLOOKUP(IF(COUNTIF(Sheet2!A:A,A1),A1,B1),Sheet2!A:B,2,0),"") という数式を入れオートフィルで下へコピー! これで画像のような感じになります。m(_ _)m

回答No.3

VLOOKUP関数とIFERROR関数を合わせて使う方法を考えてみました。 VLOOKUP関数で、一番最後の引数にFALSEを設定すると、完全に一致した場合でないと結果を返さず、 参照先に値がみつからないとエラーを返します。 IFERROR関数はエラーを起こすか否かを判定し、エラーの時の戻り値をあらかじめ設定した値で返します。 上記のVLOOKUPでエラーだった場合、もう一つのVLOOKUP関数で、B列を検索値にしようという作戦です。 =IFERROR(VLOOKUP(A1,Sheet2!$A$1:$B$5,2,FALSE),VLOOKUP(B1,Sheet2!$A$1:$B$5,2,FALSE)) 例えば、シート1のC1セルにこういう式を入れて、C5までオートフィルでコピーします。 すると、C5セルの結果は、エラーではなく、ちゃんと226に対応した住所が返ってきます。 ただ、例題の場合、4行目は125も225もシート2に住所がないからエラーになりますが、意図するところはあってますよね?

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

A列の値でVlookupを行って、#N/AならB列の値でVlookupを行います。 でもって、B列の値でも#N/Aになるなら空白を返します。 =IFERROR(IFERROR(VLOOKUP(A1,Sheet2!$A:$B,2,FALSE),VLOOKUP(B1,Sheet2!$A:$B,2,FALSE)),"") #上記の式はExcel2007以降用です。

回答No.1

http://kokoro.kir.jp/excel/vlookup-iserror.html これを参考に考えてみては? もし、何か思いついたら再回答します。

関連するQ&A

専門家に質問してみよう