• ベストアンサー

ExcelのVLOOKUPを使った自動表示

昨日も似たような質問をしたのですが、新たに困った事が出てきたので 質問します。 Sheet1のセルに例えば下記のようにA列に番号、B列に苗字、C列に名前     A  B   C  1  1  山田 太郎  2  2  田中 一郎  :  :  :   : と記載されていて、 Sheet2のセルB1に苗字、C1に名前を入力したらA1に自動的にその人の 番号が表示されるようにしたいのですが…。 VLOOKUP関数をうまく使えば出来るのでしょうか?? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

検索のキーが何なのかを把握して下さい。 A列の数字ではなくB+Cの文字列ですね。 従って、B+Cの文字列で昇順に並び替えないと番号は導き出せません。 つまり、Sheet1のA列はB+C、B列は数字、C列は姓、D列は名とします。 検索文字はSheet2のC+Dですから、文字列を結合させる関数を使います。 検索結果の表示はB列ですから2になります。 Sheet1の列順番を変える事も可能ですが、VLOOKUPを理解してからの方が良いかと思います。

noname#242762
質問者

お礼

ご回答ありがとうございます。 VLOOKUPでなくてもよいのですが、 具体的にどのような関数を使えば可能でしょうか。 よろしければ教えていただけないでしょうか。 初心者なもので。。

その他の回答 (2)

noname#235092
noname#235092
回答No.3

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)
回答No.2

次の数式は如何でしょうか。 シート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))),"")

noname#242762
質問者

お礼

ご回答ありがとうございます! VLOOKUP使わなくても↑↑のようなやり方があるんですね。凄いです。 申し訳ないのですが、ご存知でしたら教えてください。 ↑↑でやってみたんですが、Sheet2で入力ミスしたときも、 関係の無い数値が出てきちゃいます。 これは諦めるしかないんでしょうか?? よろしくお願いいたします。

関連するQ&A