- ベストアンサー
ExcelのVLOOKUPを使った自動表示
昨日も似たような質問をしたのですが、新たに困った事が出てきたので 質問します。 Sheet1のセルに例えば下記のようにA列に番号、B列に苗字、C列に名前 A B C 1 1 山田 太郎 2 2 田中 一郎 : : : : と記載されていて、 Sheet2のセルB1に苗字、C1に名前を入力したらA1に自動的にその人の 番号が表示されるようにしたいのですが…。 VLOOKUP関数をうまく使えば出来るのでしょうか?? よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
検索のキーが何なのかを把握して下さい。 A列の数字ではなくB+Cの文字列ですね。 従って、B+Cの文字列で昇順に並び替えないと番号は導き出せません。 つまり、Sheet1のA列はB+C、B列は数字、C列は姓、D列は名とします。 検索文字はSheet2のC+Dですから、文字列を結合させる関数を使います。 検索結果の表示はB列ですから2になります。 Sheet1の列順番を変える事も可能ですが、VLOOKUPを理解してからの方が良いかと思います。
その他の回答 (2)
No.1の方の方法ですと下記のように入力します。 Sheet1 A B C D 1 ア 1 山田 太郎 2 イ 2 田中 一郎 : : : : : ※B~D列のデータをC列をキー列として昇順でソート。 ※アには「=C1&D1」。これをイ以下に複写。 Sheet2 A B C D 1 ア カ 2 イ キ : : : : : ※アには「=C1&D1」。これをイ以下に複写。 ※カには「=VLOOKUP(A1,Sheet1!$A$1:$B$10,2)」。これをキ以下に複写。 (ただし、データが10行目まであるとしたとき) これで、C・D列にそれぞれ姓名を入力すれば、B列に対応する数字が表示されます。
- mu2011
- ベストアンサー率38% (1910/4994)
次の数式は如何でしょうか。 シート2のA1に次の数式を設定し、下方向にコピーして下さい。(仮で表範囲はA1:C10としていますので調整して下さい) =IF(COUNTBLANK(B1:C1)=0,INDEX(Sheet1!$A$1:$A$10,SUMPRODUCT((CONCATENATE(Sheet1!$B$1:$B$10,Sheet1!$C$1:$C$10)=B1&C1)*ROW(Sheet1!$A$1:$A$10))),"")
お礼
ご回答ありがとうございます! VLOOKUP使わなくても↑↑のようなやり方があるんですね。凄いです。 申し訳ないのですが、ご存知でしたら教えてください。 ↑↑でやってみたんですが、Sheet2で入力ミスしたときも、 関係の無い数値が出てきちゃいます。 これは諦めるしかないんでしょうか?? よろしくお願いいたします。
お礼
ご回答ありがとうございます。 VLOOKUPでなくてもよいのですが、 具体的にどのような関数を使えば可能でしょうか。 よろしければ教えていただけないでしょうか。 初心者なもので。。