2つの文字列に合うデータ取り出しについて

このQ&Aのポイント
  • A列に氏名、B列に旅館名、C列に部屋番号、D列を作り(=B+C)として他上記、G列に=VLOOKUP(旅館名&室番,$C$2:$D$100,2,FALSE)としましたがうまく行きません。
  • データソートすればよいのですが、それではやりたい事にはならないのです。
  • 旅館名と部屋番号に合う名前を取り出すために、E列に旅館名、F列に室番、G列に氏名という表を作成しました。
回答を見る
  • ベストアンサー

2つの文字列に合うデータ取り出しについて

A列:氏名 B列:旅館名 C列:部屋番号 D列    い      AAA      101    =B2+C2     お      CCC      201    =B3+C3    う      BBB      301      ・    え      AAA      102    あ       旅館名と部屋番号に合う名前を取り出すのに E列:旅館名 F列:室番 G列:氏名と表を作っています。    AAA     101    AAA     102               ・             ・      BBB     101             ・    CCC     101             ・  他の方が質問されてたのを参考に A列に氏名、B列に旅館名、C列に部屋番号、D列を作り(=b+c)として 他上記、G列に=VLOOKUP(旅館名&室番,$C$2:$D$100,2,FALSE) としましたがうまく行きません。 データソートすればよいのですが、それではやりたい事にはならないのです。 宜しくご指導お願いします。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

添付の図のようにしてください。 A2には↓の式を入れて下方向にコピー =C2&D2 G2には↓の式を入れて下方向にコピー =IF(COUNTIF(A:A,E2&F2)=0,"",VLOOKUP(E2&F2,A:D,2,FALSE))

kyon0512
質問者

お礼

A:氏名、B:旅館名、C:部屋番号、D:検索キー、E:旅館名、F:部屋番号、G:式 =IF(COUNTIF(D:D,E2&F2)=0,"",VLOOKUP(E2&F2,C:D,2,FALSE)) どこか駄目でしょうか?それとも検索キーはA列でないといけないとか? よろしくお願いします。

kyon0512
質問者

補足

早速の解答ありがとうございます 出来ることは出来たのですが、A列をC列の次に入れたりすると出来ないでしょうか? E2&F2はA列に作らないと駄目でしょうか? やっても、出来ないみたいなので。 それからA:D,2,FALSE、この2は何列目をさしているのでしょうか? よろしくお願いします

その他の回答 (3)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

>=IF(COUNTIF(D:D,E2&F2)=0,"",VLOOKUP(E2&F2,C:D,2,FALSE)) どこか駄目でしょうか?それとも検索キーはA列でないといけないとか? VLOOKUP関数の検索値をE2&F2と結合した文字にする場合は、検索範囲の一番左の列にこの文字列が無いとダメです(提示された数式ではC列に検索文字列がありD列に名前があるパターンの数式になっています)。 このようなケースではVLOOKUP関数の代わりに、以下のようなINDEX関数とMATCH関数を組み合わせて利用することになります。 =INDEX(A:A,MATCH(E2&F2,D:D,0)) ちなみにD列の結合補助列を使用せずに直接名前を表示したい場合は、以下のような配列数式を使用することになります。 =INDEX(A:A,MIN((($B$2:$B$100<>E2)+($C$2:$C$100<>F2))*10000+ROW($2:$100)))&"" 配列数式ですので、入力後Ctrl+Shift+Enterで確定してください。

kyon0512
質問者

お礼

解答ありがとうございます。 やはり一番左の列にないと駄目なんですね。 わかりました。

回答No.3

旅館、部屋番で全ての名前をリストしたいダケ?

kyon0512
質問者

補足

いえ、そこから別のシートに作っている平面図に自動で転記させたいのです。 よろしくお願いします。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

こんな具合に作成します: A1に「検索キー」と記入 A2に =C2&D2 以下コピー B1に「氏名」と記入 B2以下にお客様名を列記 C1に「旅館名」と記入 C2以下に宿泊先を列記 D1に「室番」と記入 D2以下にお部屋を列記 E列に旅館名を繰り返し列記 F列に室番を列記 G2には =IF(COUNTIF(A:A,E2&F2),VLOOKUP(E2&F2,A:B,2,FALSE),"") と記入,以下コピーで完成。

関連するQ&A

  • エクセルの文字処理

    以前に同じ様な質問があったかも知れませんが、探しきれなかったので教えてください。 A1~A4の4つのセルに以下のスペースが入った文字列が入っていた場合 A1|AAA A2|AAA BBB A3|AAA BBB CCC A4|AAA BBB CCC DDD    A   B   C   D  1|    AAA 2|AAA BBB 3|AAA BBB CCC 4|AAA BBB CCC DDD という具合にしたいのです。 条件は  ・セル内にスペースで区切られない文字列があった場合には、B列に入れる  ・それ以外はスペースで区切って、A列B列C列D列に入れる  ・文字数は3文字固定ではなく全角半角が混在 以上です。すいません宜しく願いします。

  • 2つの文字列に合うデータの取出で質問の追加

    前回、下記の式にて解決したのですが、SHEETを別にしたく =IF(COUNTIF(A:A,E2&F2)=0,"",VLOOKUP(E2&F2,A:D,2,FALSE)) 旅館名 室番 氏名 をSHEET2に作って下記の様にしたのですがどうも、エラーになります。 =IF(COUNTIF(SHEET1!A:SHEET1!A,A2&B2)=0,"",VLOOKUP(A2&B2,SHEET1!A:SHEET1!D,2,FALSE)) シート間では、出来ないのでしょうか? 宜しくお願いします。

  • vbs データ登録用にcsvを編集

    vbsで以下のように編集したいです。 よろしければコードのご教示宜しくお願い致します。 <編集前>    A     B      C     D 1 #氏名   メアド1   メアド2  メアド3...........メアド10 2 田中太郎 aaa@aaa.jp  3 田中太郎 bbb@bbb.jp ccc@ccc.jp 4 田中太郎 aaa@aaa.jp       ddd@ddd.jp <編集後>    A     B      C     D     E 1 #氏名   メアド1   メアド2   メアド3  メアド4........メアド10 2 田中太郎 aaa@aaa.jp bbb@bbb.jp ccc@ccc.jp ddd@ddd.jp <編集内容> ・氏名をキーに同一の氏名があった場合に、一行にメアドをまとめる。 ・一行に表示するメアド数の上限は、10個(メアド10)として、それ以上は削除 ・メアドが被った場合は、置換する。(B列のaaa@aaa.jpを指す) ・メアド10まで埋まらなかった場合は、メアド10(K列)まで","(カンマ)を一つのセルごとに出力する。 説明が下手ですみません。 条件不足等ございましたらお知らせください。

  • Excel2002:複数条件のデータの個数の集計

    苦手な集計について質問させてください。 [A] [B] [1] AAA aaa [2] BBB bbb [3] AAA aaa [4] AAA bbb [5] BBB ccc 上記のようなデータで[A]と[B]のAND条件でみたときの個数を集計したいと思います。 例えば上記であれば、 [A]AAAかつ[B]aaa・・・2個 [A]BBBかつ[B]bbb・・・1個 [A]AAAかつ[B]bbb・・・1個 [A]BBBかつ[B]ccc・・・1個 になります。[B]のデータは[A]のデータに依存せず、[A]の各値にまたがっています。([B]bbbは[A]AAAと[A]BBBの場合があります) 実際のシートでは、全パターンを網羅したリストがA列とB列、集計対象がD列とE列にあります。 上記の例でいえば、以下のようになっています。 [A] [B] [C] [D] [E] [1] AAA aaa AAA aaa [2] AAA bbb BBB bbb [3] BBB bbb AAA aaa [4] BBB ccc AAA bbb [5] BBB ccc つまり[A]列と[B]列が組み合わせパターン、[D]列と[E]列が集計元データです。 ちなみにパターン数が414個、集計元データは29000個程度です。 そして最終的な各パターンの個数を[C]列に表示させたいと思います。 VLOOKUPやピボットテーブルを考えましたが、ピンと来ません。 適切なやり方を教えてください。よろしくお願いします。

  • (EXCEL)重複したデーターの抽出について

    EXCEL2003 シート「sheet1」に下記のようなデーターがあります。 <sheet1>   A   B   C  D 1 りんご 青森 AAA BBB 2 みかん 愛媛 CCC DDD 3 みかん 青森 AAA BBB 4 りんご 青森 AAA BBB 5 みかん 愛媛 CCC DDD A列とB列が同じ値のものをシート「sheet2」に重複しているデーター は1行だけになり、E列にカウントした数が入力されるようにしたいです。 (C列やD列は同じ値でなくてもA列とB列が同じ値の時にカウントして抽出したいです) <sheet2>   A   B   C  D   E  りんご 青森 AAA BBB  2  みかん 愛媛 CCC DDD  2   ご教示のほどお願いします。

  • *EXCEL*2シートにあるデータを同じ文字列があるか検索して隣のセルを関連づける

    タイトルではわかりにくいかと存じますがExcelの機能につきましてご質問です。 シート1の列Aに「文字列a」~「文字列z」      列Bに「文字列aaa」~「文字列zzz」が入力してあるとします。 シート2の列Dにシート1の列Aに入力してある文字列と同じ文字列が 入力してあるのですが、順は不同となります。 このときシート2の列Dの横(列E)に対応するシート1のAの横列(B) の文字列を表示させたいのですが、なにかよい方法はございます でしょうか。 シート1         シート2 A  B          D   E a  aaa         d   ddd ←この部分を関数などで b  bbb         a   aaa  表示させる c  ccc         b   bbb d  ddd         c   ccc ご回答いただけますと大変ありがたいです。 よろしくお願いいたします

  • vbs csv編集 プログラム

    vbsで以下のように編集したいです。 <編集前>    A     B      C 1 aaa@aaa.jp bbb@bbb.jp ccc@ccc.jp 2       bbb@bbb.jp ccc@ccc.jp 3             ccc@ccc.jp <編集後>    A     B      C      D 1 aaa@aaa.jp aaa@aaa.jp bbb@bbb.jp ccc@ccc.jp 2 bbb@bbb.jp       bbb@bbb.jp ccc@ccc.jp 3 ccc@ccc.jp             ccc@ccc.jp <編集後> (1)A列に値がある場合は、その値をA列にコピーする。 (2)A列に値がなく、B列に値がある場合は、その値をA列にコピーする。 (3)B列に値がなく、C列に値がある場合は、その値をA列のコピーする ※A、B、C列すべてに値がある場合は、A列の値をA列(編集後)にコピーする。 上記可能でしたら、コードのご教示お願いいたします。

  • Excel 同じ文字の数をカウントするには?

    同じ行で離れた列にある同じ文字をカウントするには どうしたら良いのでしょうか? 例)   A    B   C   D   E   F    G 1 A子 遅刻 aaa 遅刻 aaa ---   遅刻2  2 B子 遅刻 bbb  --- bbb 遅刻  遅刻2 3 C子 遅刻 ccc 欠勤 ccc ---   遅刻1 欠勤1 こんな感じでG列に表示させたいのですが。。。 今日・明日中にこの様な表を作成しなければいけなくなり、とても困っています。 どなたかお知恵を貸して下さい!!

  • 関数を使ってデータの抽出

    win excel97を使用しています。 sheet1に下記のようなデータが3000件程度あります。   A       B      会社名   取引先会社名 2 aaa    ○○ 3 aaa    ■■ 4 bbb     △△ 5 bbb    ◆◆ 6 bbb     ●● 7 ccc    ×× sheet2のB~のセルに、sheet1の取引先会社名を列方向に 抽出させてたいのですがどうしたらよいでしょうか? マクロやVBAは苦手なので関数で教えていただきたいです。 sheet2   A      B        C       D 会社名 取引先会社名1  取引先会社名2 ・・・ 2 aaa   ○○      ■■      3 bbb   △△      ◆◆     ●●   4 ccc   ××      

  • マクロで重複データの削除

    過去ログを使っていろいろ試したのですが、うまくいかなかったので助言お願いします。 データ的には B列 C列 AAA 50 AAA 50 BBB 70 BBB 70 BBB 72 CCC 25 のようなデータあります。 これを「AAA」でC列のデータが同じやつはひとつにするということをやりたいのです。 B列 C列 AAA 50 BBB 70 BBB 72 CCC 25 のようになります。 B列第一優先にC列第二で並べ替えをして、過去ログ参照より、下のデータからループしてくというのを試したのですが、全部削除されてしまいます。 しかし、これでは並べ替えの場合によってはCの重複がおかしくなると思うので、B列参照したほうがいいのかな? 別シートに書き出しタイプでないやり方をしたいと思っています。お助けくださいよろしくお願いします。

専門家に質問してみよう