Excelで同じ行で2つの各値が一致する行の参照

このQ&Aのポイント
  • エクセルで【Sheet1】のデータから【Sheet2】【Sheet3】の表を作成したいのですが、いろいろ試してもわかりません。どうか教えてください。
  • 【Sheet1】には2001年と2002年のデータがあり、各データには住所、番号、名前、電話番号が含まれています。
  • 【Sheet2】【Sheet3】には、【Sheet1】からデータを参照するための数式が入力されていますが、3行目以降がうまくいっていません。
回答を見る
  • ベストアンサー

【Excel】同じ行で2つの各値が一致する行の参照

エクセルで【Sheet1】のデータから 【Sheet2】【Sheet3】の表を作成したいのですが、 いろいろ試してもわかりません。 どうか教えてください。 【Sheet1】 A B C   D E 1 2001 佐賀県 1 山田 090-000-0000 2 2001 愛媛県 2 佐藤 090-111-1111 3 2001 静岡県 4 伊藤 090-222-2222 4 2001 岡山県 5 中野 090-333-3333 5 2002 三重県 1 近藤 090-444-4444 6 2002 福島県 2 田中 090-555-5555 7 2002 岐阜県 3 吉田 090-666-6666 以下600行ほど続きます。 【Sheet2】 A B C 1 2001←入力します 2 1 山田 090-000-0000 3 2 佐藤 090-111-1111 4 4 伊藤 090-222-2222 5 5 中野 090-333-3333 【Sheet3】 A B C 1 2002←入力します 2 1 近藤 090-444-4444 3 2 田中 090-555-5555 4 3 吉田 090-666-6666 【Sheet2】【Sheet3】のA1には、 【Sheet1】のA1の値を入力します。 A2,B2,C2 A3,B3,C3 ... それぞれのセルにどんな数式を入れたら 表ができあがりますででしょうか? 【Sheet2】【Sheet3】共に、VLOOKUPで =VLOOKUP(A1,Sheet1!A1:D7,3,) =VLOOKUP(A1,Sheet1!A1:D7,4,)を使うと、 2行目はうまくいきますが、 3行目から狂ってきます。 頭が沸騰してきました! わかる方に教えていただいたほうが早いですネ、 どうぞご享受よろしくお願いいたします。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 まず、適当な未使用シート(ここでは仮にSheet4とします)のA1セルに次の数式を入力して下さい。 =IF(INDEX(Sheet1!$A:$A,ROW())="","",INDEX(Sheet1!$A:$A,ROW())&"#"&COUNTIF(INDEX(Sheet1!$A:$A,1):INDEX(Sheet1!$A:$A,ROW()),INDEX(Sheet1!$A:$A,ROW())))  次に、Sheet4のA1セルをコピーして、Sheet4のA2以下に貼り付けて下さい。  次に、Sheet2のA2セルに次の数式を入力して下さい。 =IF(ROWS($2:2)>COUNTIF(Sheet1!$A:$A,$A$1),"",INDEX(Sheet1!C:C,MATCH($A$1&"#"&ROWS($2:2),Sheet4!$A:$A,0)))  次に、Sheet2のA2セルをコピーして、Sheet2のB2~C2の範囲に貼り付けて下さい。  次に、Sheet2のA2~C2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。  次に、Sheet2のコピーシートを作成し、その新たに作成したコピーシートのシート名をSheet3に変更して下さい。  後は、Sheet2やSheet3のA1セルに「2001」や「2002」等のSheet1のA列に入力されている値を入力しますと、Sheet1のA列の値が、各SheetのA1セルで指定した値と同じ値となっている行のデータのみが、自動的に抽出されます。

googooparty
質問者

お礼

kagakusukiさんの書いた通りにやってみたところ、できました! 解釈はまだできてませんが、大変助かりました。ありがとうございました! お礼入力の操作方法などがわからず、お返事が遅くなってしまい申し訳ございませんでした。

関連するQ&A

  • エクセル(EXCEL) 2つの値が一致する行の参照

    エクセルで、以下のように「Sheet1」のA列に日付、B列には時刻が 入力されており、C列にはその時刻の為替レート(ドル)が入力され ています。 【Sheet1】      A     B     C 1 2009/3/1   7:00   99.56 2 2009/3/1   8:00   99.12 3 2009/3/1   9:00   96.12 以下続く この行が延々と数年間分入力されているとします。 そこで、例えば、「Sheet2」に毎日の7:00の為替レートのみを抜きだ して縦に並べたい(以下のように)とします。 【Sheet2】        A     B     C 1 2009/3/1   7:00   99.56 2 2009/3/2   7:00   98.39 3 2009/3/3   7:00   100.10 (要するに、毎日7:00の為替レートのみ時系列で見たい) この場合、「Sheet2」のC列にはどのような数式を入力すれば良いの でしょうか? 【Sheet1】から、「09年3月1日」且つ「7:00」の行のC列、 を拾ってきて、【Sheet2】のC列に返すということなのですが、 参照するところが2つ(日付と時刻)ある、場合の式の組み方がわかりません。 (もしひとつなら、VLOOKUP とか、INDEX + MATCH 関数で組めるのですが・・) 恐れ入りますが、おわかりになる方なにとぞご教示くださいませm(_ _)m。

  • Excel2003 関数を教えてください

    Excel2003にて作業しております。 ワークシートが県毎に分かれており、以下のような入力をしております。 北海道(シート1) A   B  C   D   E   F ―――――――――――――― No. 件数 ・・・ 担当  日付  ・・・ 1   60  ・・・ 佐藤   6/2  ・・・ 2   40  ・・・ 鈴木   6/6  ・・・ 3   70  ・・・ 佐藤   6/5  ・・・ 4   50  ・・・ 田中   6/6  ・・・ 青森県(シート2) A   B  C   D   E   F ―――――――――――――― No. 件数 ・・・ 担当  日付  ・・・ 1   30  ・・・ 加藤   6/3  ・・・ 2   20  ・・・ 田中   6/4  ・・・ 3   50  ・・・ 佐藤   6/3  ・・・ 4   10  ・・・ 田中   6/4  ・・・ 各担当者の合計件数・日付などを知りたいのですが、何かよい関数はないでしょうか? 以下のように担当者毎に別シートへ反映できれば理想的です。 A   B  C   D   E   F ―――――――――――――― No. 件数 ・・・ 担当  日付  ・・・ 1   60  ・・・ 佐藤   6/2  ・・・ 3   70  ・・・ 佐藤   6/5  ・・・ 3   50  ・・・ 佐藤   6/3  ・・・ できなければ各担当者の合計件数だけでも出したいのです。 ご教示ください。よろしくお願いいたします。

  • 【Excel】一致するデータの検索

    Excel2003を使用しています。 Sheet1のB列の値がSheet2のA列に入力されている値と一致したら、Sheet1のC列とD列の値をSheet2のC列とD列に表示させたく、VLOOKUP関数を使用したところ、Sheet1のB列とSheet2のA列のデータの並び方(順序)が同じではないためか、VLOOKUP関数ではできませんでした。 こういう場合、マクロで処理することは可能でしょうか?可能であれば、どのようにコードを記述すればいいでしょうか? Sheet1のデータは4行目から、Sheet2のデータは6行目から入力されています。 よろしくお願いします。

  • Excel 条件に該当する行の異なるセル参照

    エクセル初心者ですが、質問をさせて頂きます。 関数を利用してSheet2に下記のような記録データを貼り付け   A   B  C   D 1 名前 組 成績  組内順位 2 山田 1  280   1 3 伊藤 1  233   2 4 佐藤 3  298   1 5 山本 2  264   1 6 斉藤 3  215   2 7 田中 2  256   2 Sheet1のC列に該当者名を参照する方法はございませんでしょうか?    A  B   C 1  組 順位 名前 2  1  1 3  1  2 4  2  1 5  2  2 6  3  1 7  3  2 [=INDEX(Sheet2!A:A,MATCH(AND(Sheet2!B:B=A2,D:D=B2),Sheet2!A:D,0))] このような形でC2から検査値をずらして 試してみているのですがなかなかうまくいきません。

  • エクセル(Excel)の部分一致検索[COUNTIFでは無理かな?]

    A列の文字列(データベース)が、B列の個々に一致または部分一致するかをC列に表示させたいと思っています。 COUNTIF($A$1:$A$8,B1) だと、近藤さんと麻生さんは部分一致になりません。 COUNTIF($A$1:$A$8,"*"&B1&"*") だと、近藤さんと麻生さんは逆の不一致となってしまい、佐藤さんは部分一致になってしまいます。 COUNTIF("*"&$A$1&"*":"*"&$A$8&"*",B1) こんな感じが理想なのですが、文法的にはエラーになります。 何か得策は、ありますでしょうか? よろしくお願い致します。   AAAA  BBBB  CCCC  1鈴木一朗 近藤真彦 True 2田中角栄 野村克也 False  3野茂英雄 伊藤     True 4佐藤浩一 鈴木一朗 True 5伊藤     麻生太郎 True 6小林     佐藤     False 7近藤 8麻生

  • VBA 条件の一致する行の特定のセルの削除について

    VBA初心者です。よろしくお願いします。 <sheet1>     A  B   C  D  E 1   1 1211 佐藤 10 100 2   2 1344  山田 25 150 3   3 1522 田中  5 80 4   4 1655  高橋 35 200 ・ ・ 100 100 3682 小林 40 300 <sheet2>    A   B 1 1344 2 この様な表があったとします。(見辛くてすみません) "sheet2"A1セルに入力した内容と同じ内容を"sheet1"のB列から検索し、その行のB~Eのセルを削除するにはどのようにしたら良いでしょうか? 例えば"sheet2で"「1344」と入力した場合、"sheet1"の「1344」のある2行目のB~Eのセルを削除するといった感じです。 削除後の空白は詰める必要はなく、マクロを記録させるボタンは"sheet2"に貼り付けます。 色々調べましたがどうにも分からない為質問させていただきます。 よろしくお願い致します。

  • 【至急】エクセルで、一致するデータを紐付けたい

    エクセルでsheet1のA列のデータに、sheet2の並び順の異なるA列~F列のデータを紐付け、一致、並び替えする方法がありましたら、ご教授ください。よろしくお願いいたします。 ※sheet1のA列とsheet2のA列は、同じデータですが順不同で入力されています。 sheet1 A   B   C   D   E   F   G 田中 斉藤 新井 伊東 塚越 佐藤 吉田 sheet2 A   B    C     D      E      F   斉藤 東京都 文京区 123-0000 0120-・・・ × 伊東 東京都 台東区 123-1000 0120-・・・ ○ 新井 東京都 江東区 123-0000 0120-・・・ × 吉田 東京都 豊島区 121-0100 0120-・・・ △ 塚越 東京都 文京区 122-0000 0120-・・・ × 佐藤 東京都 新宿区 121-0000 0120-・・・ ○ 田中 東京都 大田区 111-0000 0120-・・・ ◎ ◆得たい結果◆ sheet1 A   B   C    D      E      F     G 田中 田中 東京都 大田区 111-0000 0120-・・・ ◎ 斉藤 斉藤 東京都 文京区 123-0000 0120-・・・ × 新井 新井 東京都 江東区 123-0000 0120-・・・ × 伊東 伊東 東京都 台東区 123-1000 0120-・・・ ○ 塚越 塚越 東京都 文京区 122-0000 0120-・・・ × 佐藤 佐藤 東京都 新宿区 121-0000 0120-・・・ ○ 吉田 吉田 東京都 豊島区 121-0100 0120-・・・ △

  • エクセル関数について

    下記のようなエクセルのデータを作りたいのですが、どのような関数を使えばいいかわかりません。 シート1           シート11           シート12            A    B         A    B            A    B  1  田中 500円    1 田中  500       1 田中  500 2               2 シート2    A    B         A   B             A    B  1  伊藤 300円     3 伊藤 300         2 伊藤  300 2  佐藤 400円     4 佐藤 400         3 佐藤  400 このようにシート1から10まで2行入力する欄を作ります その中から大事なデータだけを集計するため一度シート11に反映させます この時2行目が空欄の場合はシート11も空欄になっています。 そしてこのシート11から空白部分を除いて順番に並べるシート12を作りたいです。 シート11は=Sheet1!A1のように単純に反映ができるのかと思うのですが シート12へ空白を除いて反映させる方法がわかりません。 わかりづらい質問でも申し訳ありませんが  何卒よろしくお願い致します。  

  • エクセルの入力データーを別のシートの日付と氏名の交差点に記録していくマクロ

    エクセルのセルに入力したデーターを別のシートの名簿一覧に記録していくにはどのようなマクロを組めばよいでしょうか? 入力イメージとして、「田中 90 良」この項目は手動で入力するとします。 Sheet1 A   B  C  D  E  F  G 1 日付 氏名 成績 区分 2 9/19 田中 90  優 ここでマクロを実行すると別のシートに Sheet2 A   B  C  D   E   F  G 1       1組       2組 2    田中 佐藤 小林 近藤 三浦 遠藤 3 9/19 90  と記録され、次に入力し、 Sheet1 A   B  C  D  E  F  G 1 日付 氏名 成績 区分 2 9/21 小林 80  良 さらにマクロを実行すると Sheet2 A   B  C  D   E   F  G 1       1組       2組  2    田中 佐藤 小林 近藤 三浦 遠藤 3 9/19 90  4 9/21        80 このように記録され、さらに Sheet1 A   B  C  D  E  F  G 1 日付 氏名 成績 区分 2 9/23 佐藤 95  優 と入力して、さらにマクロを実行すると Sheet2 A   B  C  D   E   F  G 1       1組       2組 2    田中 佐藤 小林 近藤 三浦 遠藤 3 9/19 90  4 9/21        80 5 9/23    95 という具合に、氏名と日付が交差するセルにデーターを記録していきたいのですが、 可能でしょうか? どうかお返事よろしくお願いいたします。

  • Excelで勤怠管理表を作っています。

    以下のようにSheet2で1名に対し、5行使って勤怠を管理しています。   A  B  C  D  E  F  G  ・・・ 1      7/1 7/2 7/3 7/4 7/5 ・・・ ------------------------------------------ 2   予定 8  8  4     8  ・・・ 3    実働 8  0  4     8  ・・・ 4 田中                 ・・・ 5                    ・・・ 6                    ・・・ ------------------------------------------ 7   予定    8  8  8  8  ・・・ 8   実働    8  8  8  8  ・・・ 9 佐藤                 ・・・ 10                   ・・・ 11                   ・・・ ------------------------------------------ A2~A6、A7~A11は結合されており、別シート(Sheet1)から VLOOKUPで名前を自動表示させています。 数字は勤務時間で、空欄は公休日です。 このシートの勤怠部分を別シート(Sheet3)で名前に紐付けて 取り出したいのですが、自分の知識ではVLOOKUPが使えなくて 困っています。 Sheet3 以下のようにSheet2で1名に対し、5行使って勤怠を管理しています。   A  B  C  D  E  F  G  ・・・ 1      7/1 7/2 7/3 7/4 7/5 ・・・ ------------------------------------------ 2 田中 予定 8  8  4     8  ・・・ 3    実働 8  0  4     8  ・・・ ------------------------------------------ 4 佐藤 予定    8  8  8  8  ・・・ 5    実働    8  8  8  8  ・・・ ------------------------------------------ ちょっとわかりにくいですが、A2~A3、A4~A5は結合されています。 ・Sheet3のA2に田中と手入力すると、Sheet3のC2~G3に、Sheet2のC2~G3を表示。 ・Sheet3のA4に佐藤と手入力すると、Sheet3のC4~G5に、Sheet2のC7~G8を表示。 ・Sheet3のA2に佐藤と手入力した場合は、Sheet3のC2~G3に、Sheet2のC7~G8を表示。 というようにしたいのです。 Excelをあまり触った事のない社員も入力をするため、参照式にすると退職時に列や行を削除され、エラーが起こってしまうので、名前に紐付けたいのです。 なにかいい方法はありませんでしょうか。