GoGoマクロのブログ

初心者向けマクロ講座「Go!Go!マクロ」の筆者三太郎の公式ブログです。

GoGoマクロ

エクセル仕事の自動化が誰でもできる本

複数のデータを突き合わせて一つの表にまとめるマクロ

2013-01-25 19:32:11 | マクロ作成のコツ

先日、「1対1」→「1対多」→「多対多」こうやると簡単です・・・
といったお話を書きましたが、

そもそも、「データマッチングって??」とのご質問をいたたきましたので、
今日はもう少しこれを詳しく解説してみます。


たとえば、学校や学習塾などで模擬テストがあって、

[Sheet1]
 氏名 英語
 一郎 30点
 二郎 90点
 三郎 70点
 四郎 80点
 五郎 85点

[Sheet2]
 氏名 国語
 四郎 80点
 一郎 40点

[Sheet3]
 氏名 数学
 一郎 60点
 五郎 80点
 三郎 70点

といった具合に、各教科ごとの担任から成績表シートが上がってきた場合、
これを一つの成績表に(全教科のシートに)まとめたい・・・ということに
なるわけですが、

この場合、科目によってそのテストを受けた生徒と受けない生徒(テストの
当日に休んだとか、理系や文系の受験科目の違い、等々で)がまちまちに
居るわけです。


で、上記の3つのシートをまとめて、

 氏名 英語 国語 数学
 一郎 30点 40点 60点
 二郎 90点 なし なし
 三郎 70点 なし 70点
 四郎 80点 80点 なし
 五郎 85点 なし 80点

と、このような表を作りたいけど・・・、生徒数が多ければ多いほど
これは大変な編集作業となるわけです。

表のキーとなる項目(この場合なら氏名)が、まとめる前の各シートで
統一されているのであれば(データ数や順番が同じ)まだしもですが、
データ数や順番がシート毎に違ってて「困った!」「一緒にできない!」
なんて経験、ありませんか?


これぞまさしく「データマッチング」を必要とするわけです。

ビジネスの場合でも、「顧客データ」や「商品データ」や「在庫データ」等々
中々統一されて出ては来ませんので、2箇所や3箇所(いや、それ以上に・・)
ばらけて管理されていて、データ数も順番もまちまちなリストがあっちこっち
転がっていて、これらデータの付け合せ(マッチング)での一元化というのは、
実に大変な作業になるかと思います。


顧客リストの例)

[Sheet1]
 顧客名 メールアドレス
 Aさん asan@abc.co.jp
 Bさん bsan@abc.co.jp
 Cさん csan@abc.co.jp
 Dさん csan@abc.co.jp
 Eさん csan@abc.co.jp
  ・
  ・

     +


[Sheet2]
 顧客名 電話番号
 Cさん 090-33333333
 Eさん 090-44444444
 Aさん 090-11111111
  ・
  ・


     ↓


[Sheet3]
 顧客名 メールアドレス 電話番号
 Aさん asan@abc.co.jp 090-11111111
 Bさん bsan@abc.co.jp 不明
 Cさん csan@abc.co.jp 090-33333333
 Dさん csan@abc.co.jp 不明
 Eさん csan@abc.co.jp 090-55555555
  ・
  ・

本来なら、このような一つの表にまとめて一元管理をしたいわけです。


データ数が少ないのであれば手作業でも十分対応できるかも知れません。

けど、それが何百件、何千件、何万件とある場合には、到底もうお手上げ
「一元化は諦めてその都度のバラバラ管理でもういいや・・・」
なんてことになりがちではありませんか?


そこで、これに非常な威力を発揮するのが「データマッチング」のマクロ
というわけです。マクロを組めば、このようなデータ統合も一発で(一瞬で)
解決します。


 ▼ゼロから7日間でスタートする!マクロ講座▼
 エクセルマクロ(VBA)の『スターターズ・キッド』7日間メールセミナー
 只今、無料登録受付中です↑ 








コメント