• ベストアンサー

Excelでの質問

シート1の列Aに名前、列Bに電話番号が入力してあります。 シート2で、名前を入力した時、シート1から電話番号をひっぱってくる方法を教えて下さい。 名前の定義なのでしょうか・・・。

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

  • ベストアンサー
  • g_nekoru
  • ベストアンサー率34% (30/88)
回答No.5

>逆に電話番号を入力した時にも シート2のA1に検索文字(名前or電話番号)を入力し B1に名前なら電話番号を、電話番号なら名前を表示する方法です。 以下の分をシート2のB1に入力してください。 =IF(A1="","",INDEX(Sheet1!A:B,IF(LEFT(A1,1)="0",MATCH(A1,Sheet1!B:B,0),MATCH(A1,Sheet1!A:A,0)),IF(LEFT(A1,1)="0",1,2))) 電話番号かどうかの判定をA1に入力した文字列の左端が"0"かどうかで判定しているので市外局番から入力していることが前提です。 もし市内局番からの入力の場合は、補足質問してください。

その他の回答 (4)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

今回は検索範囲がA列なのでvlookupでもよいですが、 通常、元表で常に一番左に検索範囲があるとも 限りません。 vlookupよりも、indexとmatchの組み合わせで対応 すると柔軟性があがります。 =INDEX(元表,MATCH(検査値,検査範囲,0),列番号)

  • g_nekoru
  • ベストアンサー率34% (30/88)
回答No.3

シート2で名前をA1に入力したとすると以下のようになります。 =IF(ISNA(VLOOKUP(A1,Sheet1!$A:$B,2,FALSE)),"",VLOOKUP(A1,Sheet1!$A:$B,2,FALSE)) Sheet1!$A:$B の部分はシート1のデータの件数がわかっていればその範囲にした方が軽くなると思います。 1行目から50行目までデータがあるとすると Sheet1!$A1:$B50

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.2

LOOKUP系の関数を使います。 シート2の名前を入力するセルの隣の数式を次のようにしてください。 例ではA1に名前を入力すると仮定します。 =LOOKUP(A1,Sheet1!A$1:A$2,Sheet1!B$1:B$2) Sheet1!A$1:A$2 はシート1の名前が入力されている範囲を指定します。 Sheet1!B$1:B$2 は電話番号の範囲を指定します。 それぞれ100行あるなら、 =LOOKUP(Sheet2!A1,Sheet1!A$1:A$100,Sheet1!B$1:B$100) となります。

  • periodayo
  • ベストアンサー率20% (64/315)
回答No.1

シート2のB列に下記式をいれます。 =IF(A2=0,"",VLOOKUP(A2,Sheet1!A1:B3,2,FALSE)) 上記式の「Sheet1!A1:B3」はSheet1の名前と電話が 入っている範囲を指定します。

dra96
質問者

お礼

回答ありがとうございます。 逆に電話番号を入力した時にも、名前をひっぱってきたいのですが・・・。

関連するQ&A