Excelのvlookup関数を使って表をマッチングして結合する方法

このQ&Aのポイント
  • Excelのvlookup関数を使うことで、複数の表をidでマッチングして結合することができます。具体的な手順は以下の通りです。
  • 1. マッチングしたい表と結合先の表を用意します。
  • 2. 結合先の表の一番左側にマッチング用のidを配置します。
回答を見る
  • ベストアンサー

マッチングして結合

3つのシートにそれぞれ以下のような表があるとします。 各シートは第1回から第3回までの小テスト結果で、1列目は学生id、2列目は点数とします。 (シート1) id s1 a 4 b 2 c 3 (シート2) id s2 a 3 b 1 (シート3) id s3 a 4 c 2 これらの表を id s1 s2 s3 a 4 3 2 b 2 1 c 4 2 というようにidでマッチングして結合したいのですがどのようにすればよいでしょうか。vlookup関数を調べたのですが、ぴったりの例が見つかりません。空欄(棄権)のところは#N/Aとなると思いますが。ご教示いただけるとありがたいです。

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

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

集計シートを開き データメニューの統合を開始し シート1,2,3の各データを追加し 左端列,上端行にチェックしてOKすると ご希望のマッチングして結合した表を一発で出してくれます。 難しい計算式も,名前一覧の準備も何も要りません。 #各表の更新が頻繁にあるときは,データメニューのピボットテーブルレポートでも同じような結果を得られます。 #いやいや自分は絶対数式じゃないとイヤなんですどうしても,とおっしゃるのでしたら 1.漏れのない名前の一覧を先に用意する 2.=IF(COUNTIF(Sheet1!A:A,ある名前),VLOOKUP(ある名前,Sheet1!A:B,2,FALSE),"")   のような数式を一渡り並べる といった具合で。

ksu1678
質問者

お礼

お陰さまで問題解決しました。ありがとうございました。

関連するQ&A

  • エクセルでのマッチング

    「見込客」シート A列:担当者名 B列:電話番号 C列:メールアドレス 「受注」シート A列:担当者名 B列:電話番号 C列:メールアドレス これをマッチングして、見込客からの受注があったかをチェックしたいので、 「結果」シートに、マッチした結果のみを抽出する、ということは可能でしょうか? 今は、「結果」シートの各列に =VLOOKUP(見込客!A2,受注!A:A,1,FALSE) のようにしていますが、エクセルがめちゃめちゃ重くて使いづらいのです。 マクロなどは設定方法もわかりません。 よろしくお願いいたします。

  • 3つの表の外部結合

    3つの表があり、それぞれ次のデータが格納されているとします。 表A +-----+-----+-----+ |列A1 |列A2 | 列A3| +-----+-----+-----+ | A01 | B01 | A11 | | A02 | B02 | A12 | +-----+-----+-----+ 表B +-----+-----+-----+ |列B1 |列B2 |列B3 | +-----+-----+-----+ | B01 | X | B11 | | B01 | Y | B12 | | B02 | X | B13 | | B02 | Y | B14 | +-----+-----+-----+ 表C +-----+-----+ |列C1 |列C2 | +-----+-----+ | C01 | A11 | | C02 | A21 | | C03 | A12 | +-----+-----+ この場合、表Aと表BをA2とB1で等価結合し(但しB2='X') その結果導き出されたA3と表CのC2で外部結合し, B3の値を取得したいのです。 つまり、以下のような結果を得たいのです。 +-----+-----+ |列C1 |列B3 | +-----+-----+ | C01 | B11 | | C02 | null| | C03 | B13 | +-----+-----+ 表Aと表Bを結合した表を別名で定義し、 表Cと外部結合すれば可能だと思うのですが、 その様なやり方ではなく、 単純に3つの表を結合して行うことは出来ないのでしょうか。 尚、DBはORACLE9iです。

  • Excel:条件付き文字列の結合方法

    Excel本当の初心者です。ヘルプなど使って、自分なりにがんばって 考えたのですが、やりたいことがどうしてもできず、お力を貸して ください! やりたいのは、下記の通りです。 Sheet1のような表があります。カテゴリー毎にID が 付いていて、表は20,000行位あります。 同じID(カテゴリー)のものは、C列の商品名を”、”で 結合して、1行にまとめたいのです。 Sheet2のような結果を得たいのです。 Sheet1 A列     B列     C列 ID      カテゴリー  商品名 12345    くだもの   りんご 12345    くだもの   みかん 12345    くだもの   イチゴ 67891    野菜     いんげん 23456    お菓子    チョコ 23456    お菓子    お煎餅 Sheet2 A列     B列     C列 ID      カテゴリー  商品名 12345    くだもの   りんご、みかん、イチゴ 67891    野菜     いんげん 23456    お菓子    チョコ、お煎餅 Sheet1のA列とB列を「フィルタの重複レコードを無視する」を したものをSheet2のA列とB列に貼り付けて、ISNUMBERとFIND を使ってと思ったのですが、Sheet2のC列で商品名の結合を"、 " で結合しようと思ったのですが、重複IDがない物もあれば、 10個も20個もあるものもあるので、CONCATENATEではできなくて... どんな関数を使えば良いのでしょうか? それと、事前にSheet1にフィルタをかけてSheet2に貼り付けたり ぜずに、Sheet2のA列とB列とも関数でやる事はできるのでしょうか? あともうひとつ、教えてただきたい事があります。 いつも一番上の行に式を入れて、下にドラッグすることで 下の行にコピーしているのですが、20,000行もあるので この方法だと大変なので、行数をしていして、コピーする 方法とかあれば教えてください! 一度にいくつもすみませんが、教えてくださると 嬉しいです。

  • Excel - 空白の結合

    以下のようなExcelのシートがあります。   A B C 1 ABC 123 DEF 2 3 456 4 DEF GHI 5 6 GHI 789 123 空白セルを結合したいです。 A1は、A2, A3と結合、A4はA5と結合、B列、C列も同じです。 要は、空白セルを上にある値の入ったセルと結合したいのです。 実際は、かなり大きな表なので、単純に結合していくのはNGです。 (A1と同じ値をA2, A3に入れた方がいいという意見があると思いますが、会社の表なので結合しないといけません。)

  • エクセルでのデータのマッチングその2

    以前以下の質問を投稿させて いただきました。 http://www.okweb.ne.jp/kotaeru.php3?q=659843 に対しまして 以下のお答えをいただくことが できました。 ----------以下お答えいただいたもの---------- Sheet1のA,B列に表1の内容が入っているものとします。 表2は一番左に一列挿入し、A,B,C列となっているものとします。 A1に以下の式を入れます。 =VLOOKUP(LEFT(B1,1),Sheet1!A:B,2,0) A2以下にA1の式をコピーします。 ・VLOOKUP()関数で値を検索しています。 ・LEFT()関数で「A01」の一番左の「A」だけ抽出しています。 --------------------------------------- 教えていただいたように おこなってみたのですが #N/A となってしまい、うまく成功しませんでした。 申し訳ございませんが どなたか再度ご指導いただけないでしょうか。 よろしくお願いします。

  • 近似値によるEXCELマッチング

    2つのシートがあり、両方ともA列に会社名があり、B列以降は異なった情報が入っています。 このA列の会社名をマッチングさせて、ひとつのシート上に、情報を並べたいのですが、この会社列のデータが、同じ会社(マッチングさせたい情報)でも ●一方はカタカナ半角、一方はカタカナ全角 だったり、 ●一方は“・”有、一方は無し だったり ●一方は“株式会社”あり、一方は無し、もしくは“(株)” といった具合でVLOOKUP関数によるマッチングはできないので、 近似値でのマッチングができる関数などがあれば、 ご教示頂ければと思います。 どうぞ宜しくお願い致します。

  • 計算するにはどうしたらよいですか?

    昨日下記のような質問をさせていただきました。 (Sheet1表1) A列 B列 C列・・・ 空欄 ポスター ハガキ ・・・ 写真 \20 \10 イラスト \15 \2 (Sheet2表2) A列 B列 C列 D列 E列 使用者 コード 用途 用途料金 印刷枚数 ウシ 11111 ポスター 空欄 1,500 カメ 22222 ハガキ 空欄 1,800 ハト 33333 買取 空欄 3,400 (Sheet3表3) A列 B列 コード カテゴリ 11111 イラスト 12345 イラスト 22222 写真 23456 イラスト 上記の表があり、Sheet2表2のD列の用途料金を求めたいです。 表1からもってくればいいのは分かります。 ただその表1の参照の仕方が分かりません。 カテゴリ(写真等)はVLOOKUPを使って表3を見に行けばいいのでしょうが、そこから用途(ポスター等)を探して金額を表示させるにはどうしたらいいですか?COLUMN関数なら列番号を返すのでいいかなと思ったのですが、引数に関数は使えるのでしょうか? 他にいい方法があるようでしたら教えて下さい。 よろしくお願いします! その際に Sheet2!表2D2=HLOOKUP(D3,Sheet2!$A$2:$H$4,MATCH(VLOOKUP(Sheet3!B3,Sheet1!$A$3:$D$402,2,FALSE),Sheet2!A$2:A$4,0) という式を教えていただき解決したのですが、実は表2D2欄は用途単価を導くのではなく、 IF(C3="買取",0,HLOOKUP(D3,Sheet2!$A$2:$H$4,MATCH(VLOOKUP(Sheet3!B3,Sheet1!$A$3:$D$402,2,FALSE),Sheet2!A$2:A$4,0)),FALSE) と先頭にIF関数がつき、表2E列に追加した「印刷枚数」という項目があり、最終的には「用途単価」*「印刷枚数」の料金を出すのです。で、教わった式に「*E2」を追加してもエラーになってしまいます。 最初からそのように質問しろって感じですよね。計算なら単純に計算式を加えればできると思ってたので・・・ たびたびで本当に申し訳ないですが、どのようにすればいいか、教えて下さい。よろしくお願いします!

  • エクセル2003 関数 IFとVlookupの組み合わせについて

    エクセル2003 関数 IFとVlookupの組み合わせについて IF関数とvlookuo関数を組み合わせて関数を組もうとしています。 vlookupしたい元データが18万あるのでシートを(1)~(3)に分けています。 やりたいことは、 シート「(1)1~60,000」     A列:ID B列:社名 シート「(2)60,001~120,000」 A列:ID B列:社名 シート「(3)120,001~180,000」 A列:ID B列:社名 シート「集計」 このシートに関数の結果を表示したいです シート「集計」のH9のセルにIDを入れたらI9のセルに社名が自動表示される。且つH9のセルが空欄ならI9のセルも空欄になる。※入るIDはシート(1)~(3)のどこかにあります 関数教えて下さい。よろしくお願いします。

  • Wordの表(セルの結合あり。)に貼り付けると、左右凸凹に貼り付く

    質問自体は、実際に見れば簡単なことなんですが、 言葉で書くので煩わしくなってしまいます。 Wordで作っている文章の中に表があります。 ただし、その表は単純な表ではなくて、 セルの分割や結合が行われています。 表自体は長方形をしていますが、セルの結合によって、行によりセルの数が違います。 詳しく書くと、 表は4列で、 列をエクセルのように假に左からA、B、C、Dとすると、 D列はどの行も結合されていません。 1行目は、A1・B1・C1が結合されている状態。 2行目と3行目は、A2とA3が結合されていて、 B2とC2、B3とC3が結合されている。 4・5・6行目は、A4・A5・A6が結合されていて、 B4・C4が結合、B5・B6が結合。 7行目は、(1行目と同じく)A7・B7・C7が結合。 (多分、表を作るときは分割も使ったと思いますが、 説明が面倒になるので、分割という言葉は使いませんでした。) さて、結合がされていないD列に、 エクセルのある列のデータを貼り付けたいと思います。 貼り付けたいデータをコピーして、 上記のWordの表のD列を選んで貼り付けます。 すると、意図に反して、うまくD列に貼り付きません。 どの行でも、必ず、左から2つめのセルに貼り付いてしまいます。 上記のようにセルの結合が行われているために、 左右に凸凹に貼り付いてしまいます。 例えば、 3列になっている2行目や3行目は、結合されている (左から)2つめのセル(B2・C2、B3・C3)に、 4列になっている5行目や6行目は2つめのセル(B列)に貼り付いてしまいます。 このように、行のセルの数にしたがって凸凹に貼りつくのではなく、 行のセルの数にかかわらず縦一直線に貼り付けたいのですが、 どうすればよいでしょうか。 Wordは2000

  • 一気にセルの結合できますか?

    お世話になります。 エクセル2000を使用しています。 例えば、A列は空欄でB列に文字が入っているとします。(10行目まで) 今、A列とB列を結合してB列に入っていた文字を一つのセルにしたいのですが、 1行目から10行目まで10回やらなければなりませんか? 一気に1行目から10行目までをそれぞれの行でセルの結合はできますか? よろしくお願いします。

専門家に質問してみよう