• ベストアンサー

データのマッチング方法について

2つのデータのマッチング方法について教えて下さい。 ここに、  1.ある製品の型番名  2.その型番の構成部品リスト という2つのリストがあります。 (リストはそれぞれ縦にデータが並んでいます。1は型番名が1列で縦に並んでいます。2は2列構成で、左に型番名、右に構成部品名が入った形式です) この2つをマッチングさせて、  ・リストの左端に型番名  ・その右横に構成部品を順に表示させる   (複数あるので、その際はどんどん右にリストを伸ばしていきます) というリストを作りたいと思っています。 イメージとしましては、 型番 構成部品1 構成部品2 構成部品3 A    A1    A2    A3 B    B1    B2 のような感じです。 データ自体はAccessとExcelでそれぞれ持っていますので、どちらでも使用できると思います。(バージョンは2000です) 上手く説明できなくて申し訳ありませんが、『このアプリのこんな機能を使えばできるよ!』というアドバイスを頂ければ嬉しいです。 よろしくお願いします。

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

  • ベストアンサー
  • losedog
  • ベストアンサー率66% (22/33)
回答No.2

Excelで、VLOOKUP関数を使う方法があります。 ちょっと手間はかかりますが・・ 構成部品リストの構成部品に、型番名毎に連番を付け、型番名と連番を使ってVLOOKUP関数で表を作成する方法です。 型番名リストがワークシート「Sheet1」のA列に、 構成部品リストがワークシート「Sheet2」のA列とB列にあるとして、 (いずれも1行目は項目名で2行目からデータとして) (1)「Sheet2」のA列の前に1列挿入する。    (A列は空白、構成部品リストがB・C列になる。) (2)「Sheet2」の構成部品リストを、「型番名」で並べ替えをする。 (3)A1のセルに「検索値」、D1のセルに「連番」と入力。 (4)D2のセルに「=IF(A2=A1,C1+1,1)」と入力。 (5)D2のセルを、オートフィルでリストの最終行までコピー。 (6)A2のセルに「=B2&D2」と入力。 (7)A2のセルを、オートフィルでリストの最終行までコピー。 これで、VLOOKUP関数で検索するための値ができます。 なお、連番の最大値も調べておいてください。(以下では、最大値=5と仮定します。) (8)「Sheet1」の型番号リストの横、B1のセルに「1」と入力。 (9)B1のセルを、F1のセル(連番の最大値になる)まで横方向にオートフィル(連続データ)。    (B1からF1のセルには「1」「2」「3」「4」「5」が入力される。) (10)B2のセルに「=IF(ISERROR(VLOOKUP($A2&B$1,Sheet2!$A$1:$C$●,3,FALSE)),"",VLOOKUP($A2&B$1,Sheet2!$A$1:$C$●,3,FALSE))」と入力。     (●は、構成部品リストの最終行の行数です。)     なお、エラー表示を気にしなければ「=VLOOKUP($A2&B$1,Sheet2!$A$1:$C$●,3,FALSE)」でも良いです。 (11)B2のセルをF2のセル((9)で入力した列)まで横方向にオートフィルでコピー。 (12)B2からF2のセル((11)のセル)を、オートフィルで型番号リストの最終行までコピー。 以上で、ご希望の内容の表が完成すると思います。 このままだと、ワークシート関数なのでデータとして使い辛いですが、関数を消したい場合は (13)「Sheet1」全体を選択・コピーし、そのまま「形式を選択して貼付」で値を貼り付ければ関数が消えます。 文章にするとややこしいですが、やってることは単純です。

ledm
質問者

お礼

お礼遅くなり申し訳ありません。 使い慣れてるExcelで早速試してみます。 成るほど、VLOOKUPでこういう使い方もあるんですね。 いろいろ研究してみます!!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

Accessで二つのテーブルを作ればクエリで簡単にイメージと同様のリストを作成 できます。 型番名同士をリレーションし必要なフィールドだけ追加すれば良いので使い勝手 も良いし余分な記述をする事もなく楽です。 ExcelよりAccessの方がその後の拡張性もあると思いますのでAccessが良いのでは と思います。

ledm
質問者

お礼

お礼遅くなり申し訳ありません。 成るほど Accessですか・・・。 非常に便利そうですので、これから頑張って勉強してみます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 条件が多数のエクセルデータマッチング

    似たような質問探したのですが、不明のため質問します。 エクセルVBAで下記のマクロの作成したいのです。 ファイル1:aaa.XLS ・・・集計するデータ ファイル2:bbb.XLS ・・・マッチング判定のリスト 二つ用意します。 ファイル1にあるB列のデータ(文字)、ファイル2にA列にあるデータ(文字)が一致した場合、一致した行にあるファイル2のB列にある文字を一致したファイル1のS列に表示させるマクロの作成を考えてます。 ただそのファイル2のマッチング判定が100個あり、100個それぞれとのマッチングを考えてます。 つまりファイル2の001~100の通りのマッチングをするマクロ(プログラム)です。

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

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

  • エクセルでマッチング

    2つのエクセルファイルの内容をマッチングさせたいんですけど、 例えば、aaa.xlsとbbb.xlsというのがあって、 aaa.xlsのA列とbbb.xlsのA列にファイル名、 bbb.xlsのB列にパッケージ名が格納されていて、 aaa.xlsのA列の1行目から順に、bbb.xlsのA列と 同じファイル名が存在するかマッチングさせていき、 マッチした場合にマッチした行のパッケージ名を aaa.xlsのB列に表示させたいんですけど、 関数なりマクロなりを使ってなんとかならないでしょうか?

  • Excel2003データマッチング方法

    どなたかお手すきな時にご教示ください。。 今週中にExcel2003にて、『見込み客と現在の契約者』のリストとを マッチングをし『見込みの客』から実際にどのくらいご契約いただいたか、 抽出するよう頼まれました。 それも、来年から毎日マッチングをするよう依頼されており、この作業が毎日の作業となります。。 マクロでシステム化したいと考えているのですが、マクロに関しては全くの素人のため 皆さんの知識をお貸しいただきたいです。。 マッチングの内容は下記になります。 --------------------------- 【sheet1:見込み客】 セルA:会社名 セルB:会社名(カタカナ) セルC:担当者名 セルD:担当者(カタカナ) セルE:メールアドレス セルF:電話番号1 セルG:お問い合わせID 【sheet2:現在の契約者】 セルA:会社名 セルB:会社名(カタカナ) セルC:担当者名 セルD:担当者(カタカナ) セルE:メールアドレス セルF:電話番号 セルG:お問い合わせID --------------------------- としたとき、重複しているものがあれば【sheet3】で契約済みと出るように したいのです。 現在はVLOOKUPを使ってマッチングしているのですがマクロにしたほうが、効率的だという話を聞いたことがあります。以前の担当が退職したため、現在抱えている仕事と両立して行う必要が あります。今後は毎日の作業となるため、できる限り効率的にできるようにしたいと考えております。 以前の質問も見てみたのですが、少々難解で自分では設定できないため どなたか上記の設定方法を教えていただけますでしょうか。

  • EXCEL 語句中の文字とマッチングさせる式を教え

    EXCEL関数式について教えてください。 A列のセルに地区名”東京”と入れたら、C列セル中の営業所一覧の正式名称の中の語句とマッチングし、B列セルに(C列セルの語句の地区名”東京”でマッチング)”○○会社 東京営業所”と表示される式を教えて頂けないでしょうか? A列(入力) B列(自動表示させる)    C列(リスト)       マッチングワード(地区名) 東京     ○○会社 東京営業所   ○○会社 東京営業所       東京 埼玉     ▽△会社 埼玉営業所   ▽△会社 埼玉営業所       埼玉 *地区名はダブルません。

  • EXCELのリストのデーターを別の書類にリンク

    どこに質問していいのかわからなくてこのカテゴリにしました。 EXCELのリストのデータ(A列に番号、B列に部品名、C列に型式、D列に発注日、E列に発注先、F列にメーカー、G列は備考)を、別の書類(注文書)にリンクさせたいです。現状、Sheet1に上記データの部品リスト。sheet2に注文書(データ部は空欄)。注文書を作る時、Sheet1のE列に部品ごとに発注先を手入力→同じ発注先でソートをかける→発注日を入力→その部品データ(番号、部品名など)をコピーしてsheet2の注文書のデータ空欄部に貼り付け。注文書の列の並び(A列に番号…)はSheet1と同じ。注文書の宛名欄のセルには、E列の発注先と同じなので、=(E列の)セル番号 にしている。量が少なければこの方法で十分なのですが、1000点くらい注文したい時が大変です。元の部品リスト(Excel)がユニットごとに分かれてるので、Excelリストが60枚ある。 大企業ならこんな発注システムではないと思います。事務作業は極力簡単にしたいのです。アドバイスを是非是非お願い致します。

  • エクセルデータの印刷方法について

    エクセルのデータがA・B列のみに入力されており、このデータをA4縦の用紙にプリントアウトしたいのです。列幅がそんなに広くないので通常の設定だと用紙の左端の部分にしか印刷されないようになってしまい、右側は余白となってしまいます。1枚の用紙に3列(3段組?)プリントしたいのですが、どこで設定すればいいのでしょうか?カット&ペーストでやろうとすればできるのですが、行数が多いものですからこんな方法では大変です。基本的なことで申し訳ないのですが、よろしくお願いいたします。

  • 空白セル(データ)を含むマッチングについて

    はじめまして。vbaや関数などで a列 b列..c列  ...  01  △ 02  △ 05 △ といったexcelデータで空白の列があります。 それを重複を含む一覧よりマッチチングしたら フラグを立てたいのです 1:nです。 関数でcontif,vbaでやってみましたがうまくいきません。 初心者ですみませんが誰がおしえていただけないでしょうか? よろしくお願いします。

  • エクセルによるデータマッチング

    エクセルのデータが2つありまして データ(1)が在庫のデータが一律に作られてます。 A列→商品番号 B列→商品名 C列→商品の内容 D列→商品状態 E列→値段となっております。 データ(2)には A列→売れた商品番号 があります。 この二つで データ(2)でデータ(1)にあるものが あるとき (データの一致をさせるのはA列どうしを 行いたいです。) 空いている列 Gあたりに 『売り切れ』とゆう表示をいれたいのですが どのようにすればよいかまったく わかりません。 以前 http://www.okweb.ne.jp/kotaeru.php3?q=403702 のアドレスに 同じような質問がでていましたので それを参考にさせていただいて 試してみたのですが、できなく まったくの素人ですので どこをどうなおしたら良いかも まったくわからず困り果てていた ところです。 OSは98で エクセルは2000 です。 データ数が多いため手作業でやるのに 無理がでてきてしまいましたので こまっているところです。 ぜひともよろしくお願いします。

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

    表が2つあります。 一つには 商品番号とその商品番号の商品名が書かれている エクセルの表です。2列になっているわけです。 もう一つの方の表には その商品番号の一覧とその商品の 詳細が書かれているものがあります。 そして、二つ目の表のA列に 一つ目の表の商品名をマッチングさせて A列に商品名を入れていきたいのですが どのようにすればできるでしょうか? 例えばこのような形です。 表1 A ごはん B パン C パスタ D ジュース E サラダ 表2 A01 1999年もの  A02 2000年もの B01 1987年もの B02 1966年もの B03 1977年もの C01 2003年もの C02 2002年もの D01 1975年もの D03 1996年もの E03 1950年もの となっているものを 表2 ごはん  A01 1999年もの  ごはん  A02 2000年もの パン   B01 1987年もの パン   B02 1966年もの パン   B03 1977年もの パスタ  C01 2003年もの パスタ  C02 2002年もの ジュース D01 1975年もの ジュース D03 1996年もの サラダ  E03 1950年もの とゆうようにしたいのですが 量が大量にあるため 手作業で一個一個やっていくには・・・ よろしくお願いします。

専門家に質問してみよう