複数の表からデータをまとめて総合表を作りたい

このQ&Aのポイント
  • 複数の同じ形式の表から、データのある行だけを抽出し、一つの表にまとめる方法を教えてください。
  • 表の列数・行数は固定できますが、項目数によっては余ることがあります。
  • 方法があれば、手動で作業することなく総合表を作成したいです。
回答を見る
  • ベストアンサー

複数の表からデータをまとめて総合表を作りたい

複数の同じ形式の表から、データのある行だけを抽出し、それを全て並べて一つの表にまとめたいです。表自体の列数・行数は固定ですが、行数は項目数によっては余ることがあります。 表1: 日付  項目  金額 6/4 花   300 6/11 手紙 200 6/14 花 350 (空白) (空白) (空白) (空白) (空白) (空白) 表2: 日付  項目  金額 7/2 手紙 210 7/16 手紙 270 (空白) (空白) (空白) (空白) (空白) (空白) (空白) (空白) (空白) 表3: 日付  項目  金額 8/9 花   300 8/21 手紙 200 8/24 花 350 8/26 花 250 8/29 花 250 これらから下記のような表を作りたいです。 日付  項目  金額 6/4 花   300 6/11 手紙 200 6/14 花 350 7/2 手紙 210 7/16 手紙 270 8/9 花   300 8/21 手紙 200 8/24 花 350 8/26 花 250 8/29 花 250 実際には表も数十あるため、手動では大変で困っています。 もし方法がありましたらご教授下さい。よろしくお願い致します。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 1つに纏めた後の表におけるデータが並んでいる順番が、行番号が小さい順になる方法です。(念のためにコピーしたシートで試す様にして下さい) エクセルシートの列の中で、表が存在している全ての列を纏めて選択   ↓ Excelウインドウの左上の辺りにある[ホーム]タブをクリック   ↓ 現れた「編集」グループの中にある[並べ替えとフィルター]ボタンをクリック   ↓ 現れた選択肢の中にある[フィルター]をクリック   ↓ 現れた複数の「▼」印のボタンの内、「日付」欄の上にあるボタンをクリック   ↓ 現れた選択肢の中にある[日付フィルター]にカーソルを合わせる   ↓ 現れた選択肢の中にある[ユーザー設定フィルター]をクリック   ↓ 現れた「オートフィルターオプション」ダイアログボックスの中にある[OR]と記されている箇所をクリックしてチェックを入れる   ↓ 「オートフィルターオプション」ダイアログボックスの右端にある欄を上下2ヶ所とも「と等しい」に設定する   ↓ 「オートフィルターオプション」ダイアログボックスの左側に上下2ヶ所並んでいる欄の内、片方に *? と入力し、もう片方は何も入力されていない状態とする   ↓ 「オートフィルターオプション」ダイアログボックスの中にある[OK]ボタンをクリック   ↓ フィルターがかかっている状態でも表示されている行の内、「『1番上の項目欄の行』のすぐ下の行」から「『表の枠線が引かれているセルを含んでいる行』の内、最も下の行」にかけての全ての行を纏めて選択   ↓ 選択されている行をまとめて削除   ↓ 「編集」グループの中にある[並べ替えとフィルター]ボタンをクリック   ↓ 現れた選択肢の中にある[フィルター]をクリックし、オートフィルタ―を解除

その他の回答 (3)

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.4

> 実際には表も数十あるため、手動では大変で困っています。 その量だとマクロで処理するしかないですが VBAの知識が最低限ないと 無理です。初心者レベルで充分ですけど。 Excel(エクセル)VBA入門:複数のシートのデータを1つのシートにまとめる http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_data_matome.html しかし管理できないのに 何故そんな表の作り方をしたのでしょう。 後で困るのは最初から分かっていたはずです。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 1つに纏めた後の表におけるデータが並んでいる順番が、元の行番号が小さい順ではなく、日付順になってしまっても宜しければ次の様な方法があります。(念のためにコピーしたシートで試す様にして下さい) 1番上の表の中の左上の隅のセルを選択   ↓ Excelウインドウの左上の辺りにある[ホーム]タブをクリック   ↓ 現れた「編集」グループの中にある[検索と選択]ボタンをクリック   ↓ 現れた選択肢の中にある[条件を選択してジャンプ]をクリック   ↓ 現れた「選択オプション」ダイアログボックスの中にある[最後のセル]と記されている箇所をクリックしてチェックを入れる   ↓ キーボードの[Shift]キーを押しながら、「選択オプション」ダイアログボックスの中にある[OK]ボタンをクリック   ↓ 「編集」グループの中にある[並べ替えとフィルター]ボタンをクリック   ↓ 現れた選択肢の中にある[ユーザー設定の並べ替え]をクリック   ↓ 現れた「並べ替え」ダイアログボックスの中にある[先頭行をデータの見出しとして使用する]と記されている箇所にチェックを入れる   ↓ 「並べ替え」ダイアログボックスの「並べ替えのキー」欄を「値」に、「順序」欄を「昇順」に設定する   ↓ 「並べ替え」ダイアログボックスの「列」欄ををクリック   ↓ 現れた選択肢の中にある[日付]をクリック   ↓ 「並べ替え」ダイアログボックスの中にある[OK]ボタンをクリック  上記の様に操作しますと、日付欄に日付が入力されている行のデータが日付順で並べ替えられて、表の上の方の行に纏められ、日付欄に文字列データが入力されている行や、日付欄が空欄となっている行のデータは、表の下の方に行に纏められますので、表の下の方の行を確認して不要な行を削除されると良いと思います。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.1

ひとつ確認しておきたいのですが、貴方自身はマクロ(VBA)がお出来になりますか?

関連するQ&A

  • Excelの複数ブックにあるデータの結合(統合?)

    複数の人から同じフォームに入力をした表が送られてきます。 【表サンプル】 A1 記入者名 2行目に項目が B1 空白 B2 購入日付 B3 金額  のように並んでいます。 3行目からデータが入っており、記入者によって入力する行数が異なります。(最大データ数は20件) 複数名が入力してくるこの表のデータを 1つのシートにまとめたいと思っています。 (各データの記入者情報がわかるようにしたいです) まとめた後、さらに「購入日付」の月ごとのシートに分けることができたら更に助かります。 このような作業をするにはどうしたらよいでしょうか。大変困っています。 わかりづらくて申し訳ありませんが、どうぞよろしくお願いいたします。

  • EXCELで、画像のような表があり、2、3、4、6、7、8、10、11

    EXCELで、画像のような表があり、2、3、4、6、7、8、10、11行目をフィルタで抽出したいのですが、どのようにすればできますか? やりたい事は項目行(1月第○週)と項目行との間で、B列~D列にデータが入っていたら、その行とその上の項目行をフィルタで抽出したいです。 項目行(1月第○週)以外のデータが入っている行は作業用の列でCOUNTIFで抽出できるのですが、項目行(1月第○週)の抽出ができません。 項目行(1月第○週)と項目行の間の行数が固定であれば、項目行にIF(COUNTIF(B3:D5,"〇"),1,"")という関数をかければ、できると思うのですが、項目行(1月第○週)と項目行の間の行数は2行の場合もあれば、7行の場合もあり固定ではありません。 全体の行数は5000行程あり、手動でやるには限界があります。 どうすれば出来るでしょうか? アドバイスお願いいたします。

  • データ表より抽出・集計について

    いつもお世話になります。先日、質問した内容ですがわからないなどの指摘を頂きましたので反省して再質問いたします。 ・元データ表:概略 WORK2.XLS   A     B     C     D 1 日付    2      不良1  不良2  不良3 3       15     60     25      4       0.15    0.6    0.25     5 12/1    5       25      5 6 12/2    3       15      3 7 12/3    2      15       5 8 12/4    5       5      2 1行:日付名称 2行:不良項目 3行:不良項目合計数 4行:不良項目発生率 5行以下:日付別発生数 を表しています。 ・抽出 上記表よりワースト不良発生率を抽出 不良2   0.6%  → LARGE・INDEX関数により:完了 ・日付別の発生数を表にしたい     A       B 1  12/1      25 2  12/2      15  3  12/3      15 4  12/4      5 B1=SUMIF('WORK2.xls]sheet1'!$A:$A,A1,'[WORK2.xls]sheet1'!$C:$C) 下へオートフィルで完成しますが、式の$C:$C(不良項目)は抽出した不良項目により変わるので上の式で固定はできません。(そのたびに変えるのは避けたい) 抽出した不良項目に対応出来るようにするにはどうすればよいのでしょうか? 教えてください。 

  • ワードの複数の表を一括しsて縮小する方法

    ワードファイルに複数の表があります。その複数の表は行数は同じですが列数はそれぞれ異なっています。 これらの表を一括して縮小する方法をご存知の方がいらっしゃいましたらご教示願います。

  • EXCEL 複数シートにおけるマッチング処理

    悩んでいます、添付画像のような3つのEXCELファイルがあり、結果1のような表にマッチング処理したいのですがなかなか考えがまとまりません。おそらく関数では難しくVBAで処理するのだろうかと思いますが経験が浅く手詰まり状態です。恐れ入りますがご指南のほどよろしくお願いします。 1.A列がキー項目となります。 2.表1、2、3とも列数は固定です。 2.表1は行が一意です。(マスター) 3.表2、3は行が複数行存在します。(必ず1行以上は存在します) 4.キー項目に関して表2、3は行数がイコールの場合もありますし異なる場合もあります。 5.上記4の場合、結果1または結果2のように表示したいのです。 5番の要件で苦慮しています。どうかよろしくお願い致します。

  • マクロでマスタ表からフィルタ表と同じデータ抽出

    仕事で不定期ですが月に4~5回マスタ表が届きます。 その表から私の担当している部品のみ抽出するフィルタ表があり 素人ながら簡単な録画マクロで処理を行っています。 (マスタ表から抽出フィルタを使いフィルタオプションで抽出して新しいシートに出力) 但し、毎回マスタ表の最終セルの座標をマクロの編集で記載してから実行しており何とか自動で最終セルを認識してくれないかと色々調べましたが思うように動いてくれません。 マスタ表は毎データ行数列数はバラバラですが部品番号などの位置はフォーマットとして共通です。約18000行で列は8行~23行 抽出用の担当フィルタは私が担当している部品で約500点ほどで不定期メンテナンスしており増減します。 本来であれば現在のマクロのソースを記載したいのですが会社にファイルがあるので一旦書き込みだけいたします。

  • エクセル シートに表をまとめる

    良い方法を教えてください。 まず、ある専用のソフトからデータを抜きエクセルにおとします。 そのデータが小分けされていて、表の形式で、金額等が記載されているのですが、8列6行くらいの表でいくつもデータがあります。 しかも1シートに1つの表しかなく、何個もシートがある状態です。 それを、切り取りして張り付けして…と1シートにまとめているのですが、計算式やマクロなどを使用して、データを抜いたら1シートにまとまるようにしたいのです。 何か良い方法はないでしょうか?? データは、毎月抜きますが、データの表の行数、列数は毎月同じです。 宜しくお願いします。

  • VBAで、行数が変化する表の合計を求めたい。No2

    質問番号:4708445で回答頂きありがとうございます。引き続き申し訳ありません。 質問内容が文字数制限を意識する余り、舌足らずとなっておりました。  表構成(行見出し)は以下の通りです。   年度・お名前・ランク1・ランク2・金額 (ランクは1~4) このような複数の表をランク1、ランク2でフィルタ抽出(ランク1=1、ランク2=1等)し、抽出結果を集計シートに転機します。転記する際にラスト行を取得して合計を求めるのですが、抽出ランクにより、表毎に抽出先の数は変化(よって抽出行は可変する)します。抽出条件を変えるため、結果、集計シートは、上記行見出しは同じですが、行数は異なる表が複数貼付られます。貼付時、第1の表から3行下空白で第2の表以下を貼付します。その後、表毎の最終行に合計(SUM)したいのですが、表現が稚拙で申し訳ありませんでした。  SUBTOTAL関数ですと、第1の表の合計セルの式をコピペで行うようになると思いますが、ここ作業をVBAではできないのでしょうか?

  • excelのVBAを利用し検索抽出を行う方法

    検索というよりデータの抽出の方が正しいかもしれません。 現在、顧客情報を種類別でシートに分けて表で管理しています。 情報には名前などの文字列、日付、時間などが含まれます。 この表の形式を説明すると、 ・列 … B~AI まで項目があります。(A列は使用していません) ・行 … 1行で1つのデータとなります。 ・行数…シートにより行数は異なります。 この形式の表が全部で14シートあります。 このシートのB列に「未・済」のステータスがあるのですが、 すべてのシートの「未」である行のデータを"Sheet1"に抽出させたいと考えています。 さらに、抽出されたデータの"D"列の日付にソートされるようにしたいのですが、 説明がわかりづらかったら申し訳ありません。 VBA初心者のためご教授いただければと思います。 よろしくお願いします。

  • Excelで、列数が違う2つの表を上下に表示させるには?

    Excelで作成した、それぞれ行数、列数が違う2つの表があります。 同じシート上に、上下に表示させたいのですが、列数が違うため、貼り付けると、 その貼り付けた方の行幅が上の表の行幅になってしまうため、壊れてしまいます。 壊れないように2つの表を表示したいのですが、どのようにしたら良いでしょうか? 上の表の列数を増やし、増やした分の線を消し、セルを結合すればできるとは思いますが、 このやり方だと、かなり時間がかかってしまいます。 簡単にできる方法はありますか?

専門家に質問してみよう