プロが教えるわが家の防犯対策術!

昨日も似たような質問をしたのですが、新たに困った事が出てきたので
質問します。

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

A 回答 (3件)

検索のキーが何なのかを把握して下さい。


A列の数字ではなくB+Cの文字列ですね。
従って、B+Cの文字列で昇順に並び替えないと番号は導き出せません。

つまり、Sheet1のA列はB+C、B列は数字、C列は姓、D列は名とします。

検索文字はSheet2のC+Dですから、文字列を結合させる関数を使います。

検索結果の表示はB列ですから2になります。

Sheet1の列順番を変える事も可能ですが、VLOOKUPを理解してからの方が良いかと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/09/12 08:57

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列に対応する数字が表示されます。
    • good
    • 0

次の数式は如何でしょうか。


シート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))),"")
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/09/12 22:37

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