• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2つの表を統合するVBAマクロについて)

2つの表を統合するVBAマクロについて

april21の回答

  • ベストアンサー
  • april21
  • ベストアンサー率42% (91/216)
回答No.2

別のご質問で関数の事に触れたので一例として、こういう場合にはこの関数で出来ます という意味で回答したものであって実際に使用する事を薦めている訳ではありません。 5000~10000件もあるようなデータを自動計算する設定のまま件数分のセルに数式をいれると 処理が遅くて使い物にならないと思います。 それにnishi6さんの考えてくださったVBAがあるのですから必要ないはずです。 ■件数が少なくて何かに利用したい方の為に 商品番号などをつける場合は別々のセルするか「0001みかん」という風に数字を左に付ける。 番号を付けたセルをキーに「データ」-「並べ替え」で並べ替えを行う事が出来ます。 (文字列の左側のものを優先的にする為「みかん0001」「おかん0002」で並べ替えを 行うと「おかん0002」「みかん0001」に。) 50音順、数字などの昇順、降順でもなく任意の順に並べ替えたい場合は1番目に並べたい行の セルに「1」2番目「2」・・・という風に番号をつけ、そのセルをキーに「並べ替え」 をする。 50音順で並び替えたけど最初の並びに戻したい場合、番号がふってないと戻す為のキーが ないので戻らない。 だから、並べ替える前にデータの右でも左のセルでもいいので番号ふっておく。 手動では大変なのでフィルを使って番号を自動で付ける(フィルが分からなければヘルプ参照) ☆今回のを例にすると K列にフィルを使って番号をつけ、F~I列でしたのと同様に シート1のJ1は=IF($E1=0,K1,"") シート2のJ1は=IF($E2<>0,K1,"")にして不要な番号がセルに 入らないする。 E1をクリックしてシフト+コントロールキーを押しながら「end」キーで選択してコピーして シート3に「形式を選択して・・」-「値」で貼り付けし「データ」-「並び替え」で「J列」を キーにして並べ替える。 (F~J列を選択してコピーして値をシート3に張り付けて並べ替えをするとデータが空白で番号 だけが表示された行が入ってしまう)

kiroro302
質問者

お礼

april21さん、お忙しい中ご回答本当にありがとうございます。やはり、データが多い場合はマクロなどの自動処理の方が時間が短縮できるのですね。おっしゃるとおりnishi6さんのVBAのお世話になっているのでどうしてもというわけではなかったのですが、私にとってBVAより比較的ハードルが低いかなと思われる関数でも同じことが出来るのであれば、何かのときに自分たちの力でどうにか処理することが出来ることがあるかもしれないと、ご迷惑も考えずにご相談してしまいまいた。本当に申し訳ありませんでした。A列には何の秩序もなくリストアップされている表もあるので、april21さんが最後のところでご指導してくださったやり方で一度試してみたいと思います。本当にいつもありがとうございます。今回もお手数をおかけして恐縮ですがどうぞこれからもよろしくお願いします。

関連するQ&A

  • 2つの表を統合するVBAマクロについて(2)

    「2つの表を統合するVBAマクロについて」での質問を補足いたしますのでどうかお力をお貸しください。 前回の質問で例にあげたsheet1の表とsheet2の表を統合してsheet3に統合表を作りたいのですが、どのように統合したいのかといいますと、 (1)それぞれの表のA列をキーに、sheet1にもsheet2にもあるデータは新たに統合する表に採用します。前回の例でいうと、sony1,2,5,7ですね。この両者共通のものは新たに統合する表には、sheet2の方のデータを採用します。(複数ある場合は全て採用します。) (2)次にsheet1にしかないデータは統合する表に採用します。前回の例ではsony003が該当します。 (3)最後にsheet2の方にしかないデータは統合する表には採用しません。無視します。 この(1)から(3)を実行して下記のようは統合表を作成したいのです。 (sheet3 統合表)   A   B   C    D sony001 男  東京 Japan ←(sheet2のデータ) sony002 女  埼玉 Japan ←(sheet2のデータ) sony002 女  千葉 U S A ←(sheet2のデータ) sony003 女  千葉 U S A ←(sheet1のデータ) sony005 女  東京 Russia ←(sheet2のデータ) sony007 男  東京 U S A ←(sheet2のデータ) sony007 女  東京 Russia ←(sheet2のデータ) そしてできれば採用されなかった(無視されたデータ)をsheet4にリストアップしたいのです。 (sheet4 無視されたデータ) sony004 男  大阪 Canada sony006 女  東京 Russia このような処理を自動的にできるVBAマクロがわかる方がいらっしゃいましたら、どうかご教授くださいませ。データが大量なので手動ではとても時間がかかってしまい困っております。どうかお力をお貸しください。よろしくお願いいたします。

  • エクセルで2つのリストを統合するには?

    エクセルの別々のシートにある2つのリストを統合したいのですが、過去の質問などを見てもうまくいきません。具体的には 【表1】 番号 氏名 住所 A 佐藤 東京 B 高橋 神奈川 C 渡辺 埼玉 D 田中 千葉 E 小林 山梨 【表2】 番号 氏名 年齢 B 高橋 22 D 田中 45 という2つの表で、これを 番号 氏名 住所 年齢 A 佐藤 東京 B 高橋 神奈川 22 C 渡辺 埼玉 D 田中 千葉 45 E 小林 山梨 のようにまとめたいのです。 「データの統合」を使ってみましたがうまくいきませんでした。よろしくお願いします。

  • 表の統合

    エクセルで表を作るときの簡単な方法を探しています。 今、下のようなデータ1とデータ2があります。(ほんとうはたくさんあるのですが、省略させていただきます) そのデータを統合してtotalというデータを作る場合、どのような方法があるでしょうか。 D1   D2 名前 出身 頻度 名前 出身 頻度 山田 東京 3 山田 東京 2 伊藤 埼玉 1 山田 埼玉 1 梅田 大分 2 伊藤 埼玉 2      total 名前 出身  D1 D2 山田 東京 3 2 伊藤 埼玉 1 2 梅田 大分 2 0 山田 埼玉 0 1

  • EXCLEのマクロ 2つのシートを統合する方法

    下記のことを行いたいのです。 教えていただけないでしょうか。 下記2つのシートをA列をキーにして sheet1のあ、b、c列のデータに sheet2のc、d列を 統合して、sheet1のdれつ e列に統合して5列のデータを作りたい a列とb列のデータは基本同じですが、スペースが入っていたり 違う場合もある。B列はsheet1のデータを採用 sheet2は不要 ・sheet1 a列 b列 C列 123 ああ 123456 456 いい 125456 789 うう 12344556 1234 ええ 12345678 4567 おお 123456456 8945 かか 1234567844 ------------------- ・sheet2 a列 B列 C列 D列 123 ああ 03-5212-0000 東京都○ 456 いい 06-5212-0000 大阪府○ 789 うう 044-5212-0000 神奈川県○ 1234 ええ 045-512-0000 横浜市○ 4567 おお 043-212-0000 埼玉県○ 8945 かか 03-5212-0000 東京都○

  • ある列のリアルタイム数値を3分毎に列をずらしながら記録するEXCELマクロを作りたい

    EXECL2002 SP3を使っています。 B2からB99まで数式が入力されています。 この数式の結果はリアルタイムで変わります。 このリアルタイムデータを、 記録するマクロを作成したいと考えています。 9時1分から20時1分まで3分毎にデータを取得し、 C列、D列、E列、と列をずらしながら記録していきます。 以下のようなイメージになります。 ☆数式の状態     A   B 1        =now 2    東京  =tokyo.temperature 3    千葉  =kanagawa.temperature 4    埼玉  =saitama.temperature ☆9時1分のシートの状態     A   B   C 1        9:01  9:01 2    東京  11.5  11.5 3    千葉  11.9  11.9 4    埼玉  10.8  10.8 ☆9時4分のシートの状態     A   B   C   D 1        9:04  9:01  9:04 2    東京  11.6  11.5  11.6 3    千葉  12.1  11.9  12.1 4    埼玉  11.0  10.8  11.0 ☆9時7分のシートの状態     A   B   C   D   E 1        9:07  9:01  9:04  9:07 2    東京  11.8  11.5  11.6  11.8 3    千葉  12.4  11.9  12.1  12.4 4    埼玉  11.1  10.8  11.0  11.1 上記の作業を実現できるマクロを 教えていただけませんでしょうか。 よろしくお願いいたします。

  • Accessでこんな表(データ)つくれますか?

    府県名 学校名 学年 性別  -------------------------- 東京  〇〇〇  6  男 埼玉  ×××  2  女 埼玉  ▲▲▲  1  女 千葉  □□□  3  男 神奈川 ◎◎   1  男 上記データを基に、下記のような表を作成したいです。 行→府県名、学校名 列→学年、性別 データ→性別のカウント 今まで、Excelのピボットテーブルをりようしていましたが Accessで作表できないものでしょうか?

  • エクセルの立ち上げ時とマクロ実行時の再計算について

    なぜ同じ形式のファイルで同じようなことをマクロで実行させているだけなのに 一つだけ立ち上げ時と再計算時に時間がかかるか教えてください。 各フォルダ(東京・神奈川・千葉・埼玉)にアクセスからエクスポートしたExcelファイル(A・B・C・D)と、それを集計する合計.xlsがあります。 合計.xlsのマクロボタンを押下することによって A・B・C・Dが立ち上がり、それぞれが合計.xlsのsheet2~5に貼りつき、A・B・C・Dを閉じます。 合計.xlsのSheet1にはマクロボタンとSheet2~5を集計するための表があり、Sheet2~5からvlookupで数値を引っ張ってきています。 ●各フォルダに入ってるファイルは同じ形です。 ●フォルダ(東京・神奈川・千葉)は立ち上げもマクロ実行時も数秒で計算が完了します。 フォルダ(埼玉)だけは立ち上げ時に3分以上かかり、どこかクリックする度に再計算(これも3分以上)されてしまいます。 3分位待ってればいいのですが、なぜ(埼玉)の合計.xlsだけがそうなってしまうのか、わかる方がいらっしゃれば教えてください。 マクロ作成時、確認をしたときは他と同じでした。 今日他の人が合計.xlsを何度か強制終了したとのことですが、これが原因になったりしますか? ちなみに他フォルダ(東京)からファイルをコピーしマクロ&関数を修正してみましたがダメでした。 フォルダ(埼玉)に問題があったりするのでしょうか?

  • EXCELのVBAで困っています。

    うまくかけないので、イメージを下に書かせていただきます、。  |  A  |  B  | ---------------------- 1 | 東京   150 2 | 埼玉   150 3 | 千葉   150 4 | 群馬   120 5 | 東京   120 6 | 静岡   110   ↓  |  A  |  B  | ------------------------  | 東京 1 | 埼玉   150  | 千葉 ------------------------ 2 | 群馬   120  | 東京 ------------------------ 3 | 静岡   110 上記のような処理をVBAで行いたいのですが、どのように 書いたらよいかを、教えてください。お願いします。

  • Excel 2007 マクロ 表の貼り付け

    Excel 2007 マクロ 表の貼り付け Excel 2007 マクロ 表の貼り付けについて教えてください。 <Sheet1>の表にあるA2からD4を <Sheet2>に値貼り付けをします。 表は画像を添付します。 マクロの記録では下記内容になります。 Sub Macro1() ' ' Macro1 Macro ' ' Range("A2:D4").Select Selection.Copy Sheets("Sheet2").Select Range("A2:D4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub <Sheet1>のA列の行の増減にかかわらず、<Sheet2>に貼り付けることができるように するにはどのようにマクロを修正すればよろしいでしょうか。

  • Excelで統合の機能を使いたい

    Excelで統合の機能を使ってデータを集計したいのです。 例えば、Aさんの売上表をsheet1に作成します。 売上表は、項目やセル位置に若干の違いはあるものの、 似たような作りの表なので、 Aさんのシートを元にして、シートコピーを行い、 コピーしたシートに、Bさんの売上表、Cさんの売上表を作成しました。 そして、集計するためのシートにて、統合を選択しました。 集計方法を「合計」、 統合元範囲をそれぞれ「Aさんのシートにある表範囲」 「Bさんのシートにある表範囲」「Cさんのシートにある表範囲」を追加し、 統合の基準で「上端行」「左端列」にチェックを入れ、OKを押しました。 しかしその結果、合計行が2つでてしまい、正しく集計が行えませんでした。 どこか、やり方が間違っているのでしょうか? 試しに、シートコピーを行わないで各シートごとに表を1から作成し、 統合を実行したところ、ちゃんと合計行も1つで、正しい集計結果が得られました。 もしかして、統合の時には、表をコピーしてはいけないのでしょうか? 以前にも、1から表を作った場合と、シートコピーをした場合とで、 集計結果に、「項目の並び順の違い」がでたことはあったのですが、 そのときは並び順だけが違い、集計結果はあっていたので、 特に気にしていませんでした。 なぜ、こういう結果になってしまうのか、 どなたか、ご存知の方いらっしゃいましたら、 アドバイスいただけたらと思います。 よろしくお願いします。