- ベストアンサー
エクセルで一致するをセルを参照して入力したい
お世話になります。 わかりにくいタイトルで申し訳ないのですが以下の場合について教えてください。 A列に1,2,3,4,5・・・というように重複しない数字が入っています。 C列にも1,3,4・・・など重複しない数字が入っています。(1と3の間に空白セルはない) D列には任意の文字が入っています。 C列の数字と同じ数字は必ずA列には存在します。(逆にA列の数字がすべてC列にあるわけではない) ここであいているB列にその左のA列と同じ数字をC列から探し、その右側のD列の文字を入力したいのです。 (A列と同じ数字がC列にない場合は空白にする。) 例 A1:1 C列で「1」が入っているセルがC1、D1:みかん の場合 B1:みかん とする A2:2 C列に2がない場合 B2:空白 A3:3 C列で「3」が入っているセルがC2、D2:りんご の場合 B3:りんご とする この場合B列にはどのような計算式を入れておけばよいのでしょうか。 よろしくお願いします。 Excel2002です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
結論から書きます。C列・D列のデータが1行目から10行目までの10行に入っていているとします。 =IF(TYPE(VLOOKUP(A1,$C$1:$D$10,2,FALSE))=16,"",VLOOKUP(A1,$C$1:$D$10,2,FALSE)) でいいんじゃないでしょうか? IF内の最初の項で、A列の数値がC列で見つからない時はVLOOKUPが"#N/A"を返すので、それを検出してその場合(TYPEは引数が"#N/A"の時、16を返す)、空文字列を、C列で一致する数値が見つかった時は対応するD列の文字列を返します。
その他の回答 (1)
- DoragonFang
- ベストアンサー率41% (91/221)
C列とD列を入れ替えると、VLOOKUP関数で検索できません。 VLOOKUP関数は範囲の一番左の列を検索します。 したがって、VLOOKUP関数の2番目の引数の範囲は一番左の列が検索値(つまりA列に対応するもの)でなければなりません。 列の入れ替えを考慮すると、INDEX関数とMATCH関数の組み合わせの方がいいでしょう。 B1セルに =IF(ISERROR(INDEX($D$1:$D$10,MATCH(A1,$C$1:$C$10,0))),"",INDEX($D$1:$D$10,MATCH(A1,$C$1:$C$10,0))) として、必要な数だけ下にコピーします。 この際、C列とD列を入れ替えたならば、上記の式の$Cと$Dを入れ替えるだけです。
お礼
ありがとうございました。 うまくいきました。
お礼
ありがとうございました。 参考になりました。
補足
ご回答ありがとうございました。 この方法で問題なくできました。 ただC列とD列を入れ替えてみたところうまくいかなのはどこが問題なのでしょうか?