エクセルで46000件のデータ名寄せが困難!明日の午前9時までに完了する方法を教えてください

このQ&Aのポイント
  • 46000件のエクセルデータ名寄せを明日の午前9時までに完了しなければなりません。異なるブックにあるデータで顧客名だけが同一となっています。同一の顧客名のあとに異なるデータをそれぞれの行の⇒にくっつけたいです。ブック1が元となるデータになります。
  • エクセルの46000件のデータ名寄せに困っています。異なるブックにあるデータで顧客名が同一となっていますが、顧客名に対応するデータをまとめたいです。ブック1が元のデータです。
  • エクセルの46000件のデータ名寄せについて教えてください。異なるブックにあるデータで顧客名が同じだけど、データが異なる場合、それぞれのデータを統合したいです。ブック1にあるデータを元にします。
回答を見る
  • ベストアンサー

エクセルの46000件のデータ名寄せで困ってます

こんばんは遅い時間にすいません。 46000件のエクセルデータ名寄せを明日の午前9時までに 完了しなければなりません、、、こちらの勝手な都合ですみませんが どうかお教えください。 異なるブックにあるデータで顧客名だけが同一となっています。 同一の顧客名のあとに異なるデータをそれぞれの行の⇒に くっつけたいです。 ただし顧客名は ブック1にはあるけれど ブック2にはないということもありますので そのときは行の横にはつけないという形をとります。 ブック1が元となるデータになります。 ブック1には A列    B列     C列  三上  111111  Aランク 佐藤  111112  Bランク 菊池  111113  Cランク ブック2には A列    B列    C列          三上  800000円  7月29日 佐藤  7000円    7月3日   高橋  50000円   7月7日 作りたい最終データ下記のような形となります。 A列    B列      C列    D列    E列      三上  111111  Aランク  80000円  7月29日 佐藤  111112  Bランク  7000円    7月3日 菊池  111113  Cランク ブック2の高橋さんは後ろ付ける人がいないのでつけません 以上お手数をおかけしますがご回答をお待ちしております。

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

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

もっとも簡単な方法としては、次の通りに行います。 手順: ブック2からシートをシート名タブをドラッグしてブック1に移動する 元々ブック1に有った方をSheet1にする ブック2から持ってきた方のシート名をSheet2にする D1セルに =IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:C,2,FALSE),"") と記入 E1セルに =IF(D1="","",VLOOKUP($A1,Sheet2!$A:$C,3,FALSE)) と記入 D1,E1をそれぞれリスト下端まで下向けにコピー貼り付ける D:E列をコピー その場で形式を選んで貼り付けの「値」のみ貼り付ける ブック2から持ってきたシートはシート名タブ右クリックで削除してしまう。

akiramail333
質問者

お礼

ありがとうございます。できました。 求めていた答えの100%です。しかも式までコピペでやったら簡単にできました。 もう回答を閉めきったで、もう質問ができなかったら仕方がありませんが、列が増えた場合はどのようにするのでしょうか? いずれにせよ本当にありがとうございました。 なんとか間に合います

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

この時間に投稿で、明日の午前とは。 名前に同姓同名かあるのか? 行の順序は重要か? ブック1をコピーして最終データブックにして、 ブック2の内容を最終ブックの列E以降に貼付け 列A~Cを並べかえ 列E~Gを並べかえ セルD1に式[=A1=E1]と入れて、下までコピー 列Dで判断 でしょうか。

akiramail333
質問者

補足

遅い時間にすみません。 名前には同姓同名はありません。 又行の順序は重要ではありません。 又ブック1の名前データとブック2の名前データが著しくちがっており、あったりなかったりで あっているもののみデータを結び付けたいと思っております。 教えていた手順ですと一列の連番が同じではないのできませんでした。 なんか良い方法はないでしょうか

関連するQ&A

  • エクセルデータ整理をVBAで行いたい

    シート1(表1)                シート2(表2)  A列 B列 C列 D列            A列 B列 C列 D列 1名前 開始日 内容 終了日      1名前 開始日 内容 終了日  2鈴木 21年1月1日 AAA ○○○    2鈴木 ○○○ ○○○ 21年11月1日  3高橋 21年1月8日 BBB ○○○    3山田 ○○○ ○○○ 21年11月1日  4鈴木 21年1月20日 AAA ○○○   4高橋 ○○○ ○○○ 21年11月10日 5鈴木 21年2月10日 BBB ○○○   5高橋 ○○○ ○○○ 22年9月30日 6山田 21年2月13日 AAA ○○○ 7佐藤 21年3月3日 CCC ○○○ 8高橋 21年11月24日 CCC ○○○ 9高橋 21年11月24日 AAA ○○○ 上記の表について下記の表になるように求めたいのですが、シート1のデータ数は約17万行、シート2のデータ数は約6万行になります。 他の方の質問を参考に関数で求めようとしましたが、処理が非常に重く、入力した関数も成功しませんでした。 「VBAを使って作業をする」という結論に達しましたが、プログラムを組む知識がなく時間もないため皆さんの力をお借りしたいです。 条件 表2のB~C列は表1を参照し、表1のD列は表2を参照する B列は、求めるセルのA列(名前)が一致する行を対象として、複数の行が該当する場合はその中でも終了日に最も近い開始日を求める もし同じ数値があった場合は先に検索で該当した方の値を参照し、求めているセルの文字を赤字へ変更する(下記の表ではシート2のB5が赤字で表示される) また、開始日<終了日である C列はB列で該当した開始日のある行のC列の値を求める D列は各行のA~C列の値が一致した行のD列の値を求める シート1(表1)                   シート2(表2)  A列 B列 C列 D列                A列 B列 C列 D列 1名前 開始日 内容 終了日          1名前 開始日 内容 終了日 2鈴木 21年1月1日 AAA ○○○       2鈴木 21年2月10日 BBB 21年11月1日  3高橋 21年1月8日 BBB 21年11月10日  3山田 21年2月13日 AAA 21年11月1日  4鈴木 21年1月20日 AAA ○○○      4高橋 21年1月8日 BBB 21年11月10日 5鈴木 21年2月10日 BBB 21年11月1日  5高橋 21年11月24日 CCC 22年9月30日 6山田 21年2月13日 AAA 21年11月1日 7佐藤 21年3月3日 CCC ○○○ 8高橋 21年11月24日 CCC 22年9月30日 9高橋 21年11月24日 AAA ○○○ 説明がへたくそで申し訳ないですが、よろしくお願いします。

  • エクセルでデータ抽出→並べ替え

    エクセルで   A列   B列   C列    D列  E列        4月1日 9:00 山田太郎   9:15   佐藤仁  4月1日 10:05 佐藤聡 10:00 鈴木正夫  4月1日 11:15 高橋二郎 11:00 山田勇        4月2日 9:05 渡邊正志 9:15 佐々木正夫        4月2日 10:00 山田太郎  10:15 佐藤仁         4月2日 11:02 佐藤仁   11:00 高橋二郎 という複数の営業マンの訪問予定表があります。この「山田太郎」さんに 月間の訪問予定表を発行したいと思っています。 ※発行対象は全員です。 関数でもマクロでも結構ですが、ご教授いただけると助かります。

  • Excel 微妙に違う2つのシートのデータをリンクさせる

    ある程度 同じデータのブック1とブック2があり、 ブック1は祭日などデータが無い日も日付があり、行が確保されていますが、 ブック2は祭日などデータが無い日は行が抜いてあります。 A列:日付、B列:曜日 C列:データ1、D列:リンクを入れる 04.11.22 月 56  =[ブック2.xls]シート1!H2 04.11.23 火  04.11.24 水 50  =[ブック2.xls]シート1!H3 04.11.25 木 52  =[ブック2.xls]シート1!H4 04.11.26 金 49  =[ブック2.xls]シート1!H5 04.11.29 月      04.11.30 火 A~C列はブック1、2とも同じデータです。(現在ブック1は1400行、ブック2は1300行くらい) D列にブック2のH列のデータを表記したいのですが、ドラッグなどでは行がずれてしまいます。 関数かマクロなど、何か良い方法を教えて下さい。 下記のことにも対応できれば更に便利なのですが・・。 ブック2のH列は時々J列とか他の列(表範囲内)に移動します。 そしてたまにはブック2のシート1もブック1に移動したりブック2に戻したりもします。

  • 書類をまたいで、列の足し算

    WindowsXPでOffice2003を使用しています。 タイトルでは簡単に書きましたが詳細は下記です。 「A」という書類があります。その書類には・・・   A    B    C 1 佐藤   15   10 2 高橋   5 ---- 0 [A1]佐藤 [B1]高橋 [B1]15 [C1]10 [B2]5 [C2]0 「B」という書類には・・・   A    B     C 1 高橋 ---10 ---10 2 佐藤 ---5 ---15 [A1]高橋 [B1]佐藤 [B1]10 [C1]10 [B2]5 [C2]15 そして全体の集計で「C」という書類をつくり・・・   A    B    C 1 佐藤 ---20 ---25 2 高橋 ---15 ---10 [A1]高橋 [B1]佐藤 [B1]20 [C1]25 [B2]15 [C2]10 「C」の書類は「A]「B」の書類を足したものです。  やりたいことはCの書類の[B1]のセルに「A]「B」から佐藤という名前を見つけ、佐藤であったなら[B]の列の合計をだす!といおう方法です。  「C]の書類の[C2]であれば書類「A]「B」から高橋を検索し高橋があったら高橋の[C]の列を足すという感じです。 「A」「B」はシートにしても構いません。 なにかいい方法ありますでしょうか?

  • Excelで2つの条件が一致したデータの抽出

    Excelで2つの条件が一致したデータの抽出 こんにちわ。 タイトルの通り、Excelで2つの条件が一致したデータの抽出作業を行っています。 Sheet1にデータがあり、以下のような構成なっています。 A列    B列    C列 日付   社員名   売上金 6月1日 鈴木     3万円 6月1日 今井     2万円 6月2日 川口     10万円 6月3日 鈴木     4万円 6月3日 野口     1万円 6月4日 鈴木     3万円 6月7日 佐藤     6万円 6月7日 今井     2万円 6月7日 黒木     7万円 6月9日 野口     3万円 A列の日付は不連続かつ同一日付のものもあります。 Sheet2に以下のフォーマットを作成してあります。 1行目:B1セルから連続する日付(6/1~6/30まで) A列:A2から社員名(社員名は各セルに固定) 6月1日 6月2日 6月3日 6月4日 6月5日 ・・・ 鈴木 佐藤 今井 川口 野口 黒木 Sheet2のセルに、Sheet1の表の日付と社員名が一致した売上金のデータを反映させたいのです。 そこで例えばSheet2のB2セルには以下の関数を入れました。 B2=IF(ISNA(MATCH($A$2:$A$9&$B$1:$N$1,INDEX(Sheet1!$C$2:$C$24&Sheet1!$A$2:$A$24,))),"",INDEX(Sheet1!$D$2:$D$24,MATCH($A$2:$A$9&$B$1:$N$1,INDEX(Sheet1!$C$2:$C$24&Sheet1!$A$2:$A$24,),0))) この関数を入れると、該当するところには売上金のデータが反映されるものの、それ以外のセルには全て#N/Aが表示されてしまいます。 この#N/Aを表示させないようにするには、関数をどのようにすればいいのでしょうか? エクセル初心者なので、分かりやすくご教授願えたら…と思います。 よろしくお願いいたします。 使用OS:XP  使用ソフト:Office2000 Pro.

  • Excelのマクロを教えてください。

    Excelのマクロを教えてください。 Sheet1 F列(商品) F2テレビ、F3DVD、F4携帯電話、サプライ、、、F32まで商品あり。 I列~N列の1段目(人*増える場合あり) I1佐藤、J1高橋、K1田中、L1中村、、、 I2~N32まで、1、2、3と個数が入力されています。 A列~E列とG列とH列は今回の処理に不要なデータがいます。 これをSheet2に A列に人、B列に商品、C列に数 例) A1 佐藤、B1 テレビ、C1 1 A2 佐藤、B2 DVD 、C2 3 A3 高橋、B3 携帯電話、C3 2 のように、書き出すマクロを教えていただけませんか? 別にマクロでなくても、Excel2007までの機能でできることであればそれでもいいです。 丸投げして申し訳ありません。

  • エクセルでこういうときは・・・?

    book1は   A B 1 1-1 山田 2 1-2 田中 3 1-1 佐藤 4 1-2 加藤 5 1-3 高橋 6 1-2 武田 7 1-3 岡田 と、なっております。この表から book2で 1-1 1-2 1-3 山田 田中 高橋 佐藤 田中 高橋 佐藤 加藤 高橋 #N/A 加藤 高橋 #N/A 武田 高橋 #N/A 武田 岡田 #N/A #N/A 岡田 と、いう表を作りたいのです。が、ご覧のとおりうまくいっておりません。(>_<) 上の表の検索はVLOOKを使っています。 なにかよい方法を教えてください。お願いします。

  • EXCELで2つのファイルから重複データで抜き出したいです。

    EXCELで2つのファイルから重複データで抜き出したいです。 『A』ファイルという顧客データと『B』ファイルという顧客データがあります。 それぞれ項目は同じで、 A列=顧客コード B列=顧客名 C列=住所   ・   ・   ・ となっています。 『A』ファイルと『B』ファイルそれぞれのファイルには顧客コードに重複はありません。 『A』ファイルと『B』ファイルを比べて 重複データ以外のダブリのないファイルを作成したいです。 よろしくお願いします。

  • エクセルでデータを抽出して日報を作りたいです

    今は日報を手書きで作っているんですが、今度からパソコンで作ることになり、かなり困ってます。 やりたい内容としては、エクセルで作っている顧客データがあるんですが、それの中の郵便番号を絞り込んで別ブックの日報のシートに顧客名だけを移す作業です。マクロ初心者で本を読んではいますがどうしていいのかわかりません。どなたか教えてください。 ≪顧客データ≫ A列      B列     C列     D列       顧客名  電話番号  郵便番号  市町村名    顧客データはこのような並びです。顧客名は2行目から始まっており、24000行ほどあります。 ≪日報≫ A列     B列 番号   顧客名 日報はこの並びです。日報の顧客名を移したい場所はB列の13行目から表示させたいです。 日報を作るときにできれば顧客データを触りたくないので、日報でセルに郵便番号を入れて マクロで作れるボタンをクリックして作成できたらいいかなって思っています。 ちなみに日報はデスクトップにあるんですが、顧客データは違うフォルダの中に入っています。 マクロ初心者ですがどなたかわかる方がいましたらよろしくお願いいたします。 わかりやすくコードを書いていただけると助かります。

  • エクセル 複数行にまたがっているデーターを一つの行にまとめたい

          A列  B列   C列 1行目  佐藤 北海道 りんご 2行目  佐藤 北海道 ばなな   3行目 伊藤  東京  いちご 4行目  伊藤  東京  ばなな  上記のようなデーターがあります。これを2行目と4行目を削除し下記のようにしたいのですが       A列  B列      C列 1行目  佐藤 北海道  りんごばなな 2行目  伊藤  東京   いちごばなな A列とB列のデーターが同じでC列のデータが異なる場合、上記のように一行にまとめたいのです。関数やVBAで上記の処理を出来る方法がありますでしょうか。 

専門家に質問してみよう