• 締切済み

Excel : データを部分一致で参照したい

こんにちは。 部分一致の方法をご存知でしたら教えてください。 以下のような二つのシートがあります。 <シート1> セルA 山田太郎 木村次郎 佐藤花子 <シート2> セルA  セルB    セルC 山田  太郎  03-1234-5678 木村   次郎  03-****-***** 佐藤   花子  03-****-***** シート1にシート2の電話番号を参照して表示させたいのですが、 シート2には苗字と名前が別のセルになっていて、 完全一致ができません。 シート2に1セル足して、苗字名前を両方表示させてもいいのですが、 できるだけ、シート2はいじらずに、苗字だけ一致させるか、あるいは二つのセル(苗字と名前)を参照して、シート1に電話番号を表示させる方法さがしていますがうまくいきません。どなたか詳しい方がいらっしゃいましたら、ご教示いただけませんか。よろしくお願い致します。

みんなの回答

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.5

◆こんな方法もありますよ ◆Sheet1のB1の式 B1=INDEX(Sheet2!$B$1:$B$10,MATCH(A1,INDEX(SUBSTITUTE(JIS(Sheet2!$A$1:$A$10)," ",),),0)) ★下にコピー ★ただし、同姓同名があった場合は、Sheet2の上の行のデータを表示します

mikamika12
質問者

お礼

回答ありがとうございました。 お礼がこのように遅れて済みませんでした。 一度お礼を書いたつもりだったのですが、うまくアップ できていなかったようで、すみません。 助かりました。

  • ionatsu
  • ベストアンサー率33% (1/3)
回答No.4

申し訳ないです、入力する数式のsheet1をsheet2でお願いします。 タイトルを読んで判断するに、部分一致で参照する方法をお探しかと思い、このやり方をお勧めしましたが、このやり方だと、例えばシート2の4行目に 山田  三郎  0120-123-987 というのがあるとしても、 シート1の4行目には山田太郎さんの電話番号が表示されてしまいます。(部分一致で、一番最初にあったものを返してしまう為です。) 完全一致の方法に関しては、下にやり方がすでにアップされているようなので控えておきます。

mikamika12
質問者

お礼

回答ありがとうございました。 お礼がこのように遅れて済みませんでした。 一度お礼を書いたつもりだったのですが、うまくアップ できていなかったようで、すみません。 助かりました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

Sheet1のC1セルの式は以下の通りです。 Sheet2の名字、氏名の前後の空白が半角か、全角かがはっきりしませんので、一応両方Nullに置き換えるようにしました。 Sheet2のデータ範囲は実際のシートに合わせて修正して下さい =INDEX(Sheet2!C:C,MAX(INDEX(($A1=SUBSTITUTE(SUBSTITUTE(Sheet2!$A$1:$A$3&Sheet2!$B$1:$B$3," ","")," ",""))*ROW(Sheet1!$A$1:$A$3),))) ただしSheet2で同じ姓+名が二回以上出現する場合は、下の行の番号を取得しますのでご承知おきください。

mikamika12
質問者

お礼

回答ありがとうございました。 お礼がこのように遅れて済みませんでした。 一度お礼を書いたつもりだったのですが、うまくアップ できていなかったようで、すみません。 助かりました。

  • ionatsu
  • ベストアンサー率33% (1/3)
回答No.2

お答えします。 シート1のセルB1に対して、 =VLOOKUP(A2,Sheet1!$A:$C,3,TRUE) と入力されるとよいかと思われます。 VLOOKUP関数において、4つめの引数TRUEを入れると、完全一致ではなく、部分一致で検索してくれます。 回答だけなら以上です。以下、詳細は補足にて・・・

mikamika12
質問者

お礼

回答ありがとうございました。 お礼がこのように遅れて済みませんでした。 一度お礼を書いたつもりだったのですが、うまくアップ できていなかったようで、すみません。 助かりました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

次の数式は如何でしょうか。 表サイズはA1:C10としていますので調整して下さい。 シート1のC1に=INDEX(Sheet2!C:C,SUMPRODUCT(CONCATENATE(Sheet2!$A$1:$A$10,Sheet2!$B$1:$B$10)=A1)*ROW(Sheet2!$A$1:$A$10))として下方向にコピー

mikamika12
質問者

お礼

回答ありがとうございました。 お礼がこのように遅れて済みませんでした。 一度お礼を書いたつもりだったのですが、うまくアップ できていなかったようで、すみません。 助かりました。

関連するQ&A

  • エクセルについて

    エクセルについて、 山田太郎  150 154 155 156 佐藤花子  151 153 158 高橋二郎  152 159 162 163 164 165    : (それぞれ別のセルに入力) というようなシート(1)の横書きのデータをもとにして、別のシート(2)の 150 151 152 153 154 : という縦書きの数列の横に、シート(1)の対応する名前 150 山田太郎 151 佐藤花子  152 高橋二郎 153 佐藤花子 154 山田太郎  : を表示させる方法をご教授願います。 実際のデータはシート(1)、シート(2)ともに膨大なデータのため、手作業の処理は 困難な状況です。 よろしくお願いいたします。m(_ _)m

  • 【エクセル】リストの照合について教えてください!!

    sheet1に、下記の様に600件の氏名が書いてあります。 A      B 1     山田太郎  2     鈴木花子 ・・・ 600   佐藤次郎 sheet2に、地域と氏名がずらっと書いてあります。 A      B      C     D    E 東京都   神奈川県   埼玉県   千葉県  茨城県 山田太郎 鈴木太郎 山田花子 佐藤次郎 ・・・ このsheet2の地域を、sheet1のC列に下記の様に入れたいのですが、 どの様に行ったら良いでしょうか? みなさんのお知恵をください!!宜しくお願い致します。 A      B      C 1     山田太郎   東京都 2     鈴木花子   神奈川県 ・・・ 600   佐藤次郎   埼玉県

  • エクセルで選択したセルの内容を合体したい

    エクセルで a1セルに 山田太郎 a2セルに 山田花子 a3セルに 山田次郎 と入っています。この3つのセルを選択した状態でvbaを実行してa1セルだけに   山田太郎・花子・次郎 と入力させたいのです。 苗字の長さは2文字限定で十分です(欲を言えば1文字3文字でも選択できればいいのですが)さてどうするのかお分かりの方お教えください。

  • Accessで一致データを抜いて項目をずらす方法

    Access2000を使用して、テーブル1のフィールド2~5で、テーブル2と一致したフィールドを抜いて項目をシフトさせたいのですが、どのような方法があるのでしょうか。 <元テーブル>    フィールド→ 氏名, 名1, 名2, 名3, 名4 ・テーブル1の項目 山田,花子,次郎,三郎,四郎           鈴木,五郎,六郎,七朗,和子           佐藤,和子,一郎,太郎,四郎 ・テーブル2の項目 山田,花子           鈴木,七朗           鈴木,和子          佐藤,一郎           佐藤,四郎           佐藤,和子 <変換後テーブル>テーブル1を基準として   フィールド→ 氏名, 名1, 名2, 名3, 名4           山田,次郎,三郎,四郎,null           鈴木,五郎,六郎,null,null           佐藤,太郎,null,null,null 分りずらい説明で申し訳ありませんが、宜しくお願いします。

  • 複数一致からの検索

    シート1のような様な表があります。シート2に日付、部屋番を入力するとシート1の日付、部屋番の一致から※C1に名前が表示されるようにしたいです。 シート2のC1にどのような関数を入力したらよろしいでしょうか? よろしくお願い致します。 シート1   A   B   C   日付  部屋  名前 1  1/1  101  太郎 2  1/1  102  花子 3  1/1  201  次郎 4  1/2  101  花子 5  1/2  102  太郎 シート2    A B C   日付  部屋  名前 1  1/1  102  ※花子

  • ACCESSのテーブルでこういう表示は可能でしょうか?

    お願いします 下記のように名前・電話番号・年齢フィールドあるテーブルがあり同一の番号が存在した場合には年齢が一番上の人が代表者となりそれ以外の人は同一のレコードの家族フィールドに表示させたいと思います。 そのようなクエリを組むことは可能でしょうか? 名前 電話番号             年齢 ==================================================== 山田太郎 00-0000-0000  50 山田花子 00-0000-0000  45 山田一郎 00-0000-0000  20 田中次郎 11-1111-1111  55 ↓ 代表者 電話番号            家族1  家族2 ==================================================== 山田太郎 00-0000-0000  山田花子 山田一郎 田中次郎 11-1111-1111 以上よろしく願いします。

  • EXCEL 一覧シートから各シートへ参照

    現在シートが 一覧、1、2、3、 とあります。 一覧シートには、 シート名(A1) 名前(B1) 1(A2) 山田(B2) 2(A3) 鈴木(B3) 3(A4) 木村(B4) と記載されております。(カッコ内は、セルの位置です) シート 1 のA1には、山田 シート1のB2を参照 シート 2 のA1には、鈴木 シート1のB3を参照 シート 3 のA1には、木村 シート1のB4を参照 とシート 一覧から参照して表示されるようにしたい と考えております。 数字の名前のシートが数個であればシート毎に入力すれば済む話ですが、 予定では、順次増え、最終的には100位になる予定です。 数式、マクロ VBA 等を使って  一覧シートに名前を入力すると該当のシートのA1セルに参照させる事は可能でしょうか? よろしくお願いいたします

  • エクセルで文字を活かしたままセルの結合を・・・

    なぜこんなことを?と思われてしまうかもしれませんが、 二つのファイルがレイアウトがばらばらで どうしてもタイトルのような作業を行いたいので、教えてください!      A      B 1  山田太郎   佐藤花子 とあるものを     A 1 山田太郎、佐藤花子 としたいのです。 かなりの行数があり、 =A1&B2 と言った作業ですと どうしても 山田太郎佐藤花子 と続き文字になってしまうのをひとつひとつ名前の間に「、」を入れるのは手間がかかってしまうものですから・・・。 間に「、」を入れつつセルを結合させる方法はございませんでしょうか? 二つファイル(A,B)があって、Aは1つのセル内に名前が羅列され、もうひとつのファイルBは上記のような状態のものなんです。 これをひとつにまとめたいんです。 ひとつのセルを分離させる方法(AをBに合わせる)はあるのですが、どうしても結合という方法で処理をしたいのです。 ぜひお教えください!!

  • エクセルのマクロで

    エクセルのマクロで自動で記録させることしかできないド素人です。マクロで置換をしたいのですが、普通の置換ではなく例えば一枚目のシートのあるセルに花子さん、2枚目シートのあるセルに太郎さん、そのとなりのセルに次郎さんというようになっていたとします。これをマクロで花子さんを置換して太郎さんとその隣に次郎さんもくるようにしたいのですが可能でしょうか。または置換だと1つのセルに対して2つのセルは無理かもしれないので、ある条件の時に(太郎さんの時に)隣に次郎さんが貼り付けられるようにする方法はありますか。今までは手動で花子さんのところに太郎、次郎の両方のセルをコピーで貼り付けていました。これを多数の置換を登録してマクロにすればとても便利なのですがこのようなことは可能でしょうか。

  • Excelのドロップダウンリストについて

    Sheet1において, A列 B列 1 田中太郎 2 佐藤次郎 3 山田三郎 のようなリストを作成してあるとします。 Sheet2において, A1のセルに1を入力すると,B1のセルに田中太郎と表示される様,B1にVLOOKUP($A1,Sheet1!$A$1:$B$3,2,0)と入力しています。 この時,A1をドロップダウンリストで入力する場合,リストの表示と入力値を変更するようなことはできるのでしょうか。 すなわち,リストには, 田中太郎 佐藤次郎 山田三郎 と表示され, 田中太郎 を選ぶとA1には1が入力され,B1にはVLOOKUP関数の効果として田中太郎と表示されるといった具合です。 当方,HTMLは理解しておりますので,HTMLで意図をご説明させていただければと思います。 HTMLでプルダウンボックスを使う場合の入力として, <SELECT name="ボックス名"> <OPTION value="1">田中太郎</OPTION> <OPTION value="2">佐藤次郎</OPTION> <OPTION value="3">山田三郎</OPTION> </SELECT> ということになります。 これと同じようなことがエクセルで可能なのかどうかという質問でございます。

専門家に質問してみよう