EXCEL 小技・テクニック集

EXCELで複数ファイルを集計するツール/マクロ(VBA)を使って作ってみました。

EXCELで複数ファイルを集計するツール/マクロ(VBA)を使って作ってみました。

EXCELで複数ファイルを集計する夢のようなツールが欲しい

EXCELで複数ファイルをかき集めて集計する作業にもう限界!ファイルを用意すればあとは自動で集計するとか一まとめにしてくれるようなツールってないの?

今回はそのようなニーズにお応えするために
マクロ(VBA)で複数ファイルを集計するツールを作成してみました!

各ファイルごとの月別データを集計してみる

今回の例は、ファイル名が各取引先企業になっているcsvファイルで月ごとの売上がデータとしてあるものを
一シートに一まとめにし、ピボットテーブルを使って集計するツールになります。

※今回例の前提条件
・読み込みたいフォルダには、
 結合したいExcelファイル以外は入れて
 いない状態
・結合するファイルはすべてA〜C列に2行〜データがある

EXCEL複数ファイル集計1

条件をいれる作業シートと、結合したデータを出力するシート(出力)
出力したデータを集計するピボットシートの3つを用意します。

作業シートには
・フォルダのパス(B2)
・結合するファイルの取得したいデータの開始行(C2)
 (1行目は項目名なので取得しないため2を入れています) ・読み込む列数(D2)
 (A,B,C列を読み込むため、3列の3を入れています)

EXCEL複数ファイル集計2

出力シートにはフォルダ内の各ファイルの1行目にある
月、受注、売上を入れています
また、A列会社名にはファイル名が入るようにします。

それではマクロコードを書きます

Sub フォルダ内のファイルを出力()  read_folder = Range("B2")  read_row = Range("C2")  read_col = Range("D2")  read_file = Dir(read_folder & "\")  Do While read_file <> ""   output_end_row = Sheets("出力").Range("A65536").End(xlUp).Row   Workbooks.Open read_folder & "\" & read_file   input_end_row = Range("A65536").End(xlUp).Row   Range(Cells(read_row, 1), Cells(input_end_row, read_col)).Copy   ThisWorkbook.Sheets("出力").Activate   Range("B" & output_end_row + 1).Select   ActiveSheet.Paste   Range("A" & output_end_row + 1).Select   Selection = read_file   Selection.Copy   Range("A" & output_end_row + 1 & ":A" & Range("B65536").End(xlUp).Row).Select   ActiveSheet.Paste   Workbooks(read_file).Close   read_file = Dir()   Loop End Sub

EXCEL複数ファイル集計3

あとはこのコードを発動するボタンを作れば準備完了です。

EXCEL複数ファイル集計4

ポチット押すと…

EXCEL複数ファイル集計5

こんな感じで各ファイルのデータを全て一まとめに出力できます。
あとはこのシートをピボットテーブルで集計すると…

こんな感じで各ファイルのデータを全て一まとめに出力できます。
あとはこのシートをピボットテーブルで集計すると…

EXCEL複数ファイル集計6

良い感じに集計出来ました。

今回はEXCELで複数ファイルを集計するツールの為のマクロVBAコードの共有がメインでしたので VBAの使い方やピボットテーブルの使い方は省いています。

ご質問などありましたらお気軽にメールでご相談ください。

罫線

関連コンテンツ

罫線

文字列抽出・変更・置換系トピック

SUBSTITUTEで複数置換を一気に行う方法

EXCEL Find関数で複数条件指定したい

EXCEL 置換関数にワイルドカードが使えない!代わりの方法を考えました。

EXCEL findを右から(後ろから)検索する方法

EXCEL 文字列の分割(区切り位置)を関数で行う方法

EXCELで文字列の記号を全て削除!記号を一覧にしてSUBSTITUTE関数で一括置換しよう

EXCELで改行を削除(置換)して消す方法/実はSUBSTITUTE関数でも出来るんです!

EXCELで不要な空白(文字列前後の空白や連続した空白)はtrim関数で削除!

EXCELで特定の文字列を含む行を抽出する関数

検索系トピック

VLOOKUPあるのに#N/A!エラーになるのはなぜ?

VLOOKUPで複数範囲の検索を行う方法/VLOOKUPを繋げるしかない?

VLOOKUPエラーの原因!N/A,REF,VALUE,NAMEになるのはなぜ?

VLOOKUPでのエラー(#N/A)の対処はIFやIFERRORを使って解決しよう!

VLOOKUPの近似一致(近似値)・あいまい検索って何に使うの?

EXCELで条件に一致したデータを検索&抽出するならVLOOKUP関数

VLOOKUPを"文字列を含む"で行う方法

VLOOKUP 検索範囲にワイルドカード

VLOOKUPを横にコピー!複数列をまとめて抽出するために列番号をずらす方法

VLOOKUPで左側(右から左に)の値を取得する方法はあるのか

VLOOKUPを複数条件/2つの条件を検索値にする方法

VLOOKUPで複数結果を全て抽出・表示する方法/重複したときに2番目以降も抽出できる?

SUMPRODUCT関数では文字列を抽出出来ない/条件に合致した文字列を抽出するならVLOOKUP

集計・ピボット系トピック

SUMIFSで合計範囲を可変にするならOFFSET関数を使いこなそう

SUMIFの条件でワイルドカード(アスタリスク)を使う方法

COUNTIFを含む条件でカウントする方法/ワイルドカード(アスタリスク)を使って含む条件を行おう

SUMIFを複数条件で集計/2つ以上の条件で集計したいときはSUMIFS関数で!

COUNTIFで空白以外(空白ではないセル)のカウントを行う方法

AVERAGEで0以外を集計するならAVERAGEIFで!エクセル平均集計を自在に

AVERAGEIFを複数条件で平均値を算出したいならAVERAGEIFSで

エクセル集計関数を極める!データ集計(合計)、個数カウント、条件付き集計などまとめて紹介!

EXCELで条件付きの合計を算出する時はSUMではなくSUMIFまたはSUMFISで

EXCELで期間集計(日付や範囲指定での抽出合計)ならSUMIFS関数

COUNTIF,COUNTIFSの使い方を徹底解説!条件の個数カウントを極めよう

エクセル 掛け算の関数PRODUCT関数/SUM関数の掛け算版があった!

EXCELの月別集計(日別データを月別に集計する方法)はSUMIFS関数で

SUMIF(SUMIFS)の計算が重い・遅いときは集計の鉄板ピボットテーブル?

ピボットテーブルの初期設定(デフォルト)が変えられない!私なりの解決策

ピボット更新で書式がもとに戻る時の対応

ピボットの空白部分を埋める方法

EXCEL ピボットテーブルで重い・遅いときの改善方法

EXCELで行ずつ・行おきの集計方法を紹介

VLOOKUPで合計(集計)は出せない!VLOOKUPの代わりにあの関数で条件付き合計を出そう!

EXCELで時間帯別に集計する方法/日時データから時間を抽出

マクロで自動化!簡易ツールの作成やVBAの活用例を紹介

エクセル シート名の一括変更や置換はVBAマクロじゃなきゃ無理なの?

複数のCSVファイルを結合(マージ)!エクセルVBAを使用したCSV結合ツールの作り方

EXCEL フォルダ内のブック(ファイル)を結合(統合)/VBAマクロで複数ファイルをまとめる!

EXCELで複数画像を一括挿入貼り付け!VBA(マクロ)で作っちゃいました。

エクセル マクロ(VBA)で複数のグラフを自動作成!コード教えます。

EXCEL 全シート名を取得し一覧に!VBAを利用して一瞬で解決

EXCEL シート毎にファイル分割保存する方法/マクロ(VBA)で解決!

EXCELで複数ファイルを集計するツール/マクロ(VBA)を使って作ってみました。

EXCELマクロ(VBA)って何?とりあえず試しに使ってみよう

その他EXCELテクニック

エクセル表の簡単な作り方/罫線や色もつけてシンプルかつ鮮やかに!

エクセル計算で参照セルを固定!コピーする際にズレない【絶対参照】

エクセルチェックボックスの作り方/チェック数を集計する方法

エクセル シート移動のショートカットはCtl+PageDownまたはCtl+PageUp

エクセル 一番下まで移動はスクロールだと大変?キーボードでの瞬間移動方法を紹介!

エクセルで以上・以下の条件を指定し、判定や集計を行う方法

エクセルでユニークなリスト(重複をなくしたリスト)をちゃちゃっと作る方法

エクセルで1から10まで連番を入力する方法/オートフィル機能を使ってみよう

エクセルプルダウンリストを極める!設定・作成方法から応用技まで紹介

EXCEL プルダウン(リスト)を連動させる二つの方法/入力規則を使いこなせ!

エクセルでエラーを表示しない方法/ISERROR関数とIFERROR関数で解決

EXCEL 文字の繰り返し関数(REPT関数)

EXCEL リンクでシート間を楽々移動!ハイパーリンクで別シートへ移動

EXCEL業務効率化!私が行っている4つの効率化テクニック

IF関数でワイルドカード(アスタリスク)は使えない?IF関数で含むを条件にする方法

EXCEL 時間の足し算(計算)ってどうやるの?時・分・秒の計算方法まとめました

EXCEL アルファベットでオートフィルは無理?

1行おきに行挿入する方法

EXCEL よく使うショートカット

EXCELフィルタをショートカットで行う方法

EXCEL 空白セルを一括で埋める方法

EXCELで2列以上の複数列を一列にまとめる方法

EXCEL 大量シートの管理/indirect関数の活用

EXCELで重複したデータをカウント!連番をつけ重複データを見つける方法

エクセルで行または列を固定し、スクロールさせずに常に見える状態にする方法

EXCELファイルサイズが大きい!重い!容量を軽く小さくする方法はある?

EXCEL 列の数字(番号)取得はCOLUMN関数で/英語アルファベットの取得方法は?

EXCELでフィルタした行を削除するのが重い(遅い)時の解決方法

EXCELでシート名の参照なんて出来たの!?indirect関数の使い方

エクセル家計簿を自作してみました(無料でダウンロードもできます)

エクセル練習問題(テスト)VLOOKUPや集計関数使えますか?

コラム

あなたのエクセルスキルはどのくらい?エクセルが使える人、出来る人のレベルとは

罫線

★管理人おすすめ(無料です!エクセルファイルをダウンロードしてやってみよー)

エクセル練習問題(テスト)VLOOKUPや集計関数使えますか?

★人気記事 TOP10

エクセルプルダウンリストを極める!設定・作成方法から応用技まで紹介

VLOOKUP 検索範囲にワイルドカード

EXCEL Find関数で複数条件指定したい

EXCELで期間集計(日付や範囲指定での抽出合計)ならSUMIFS関数

VLOOKUPを複数条件/2つの条件を検索値にする方法

EXCEL 置換関数にワイルドカードが使えない!代わりの方法を考えました。

VLOOKUPを"文字列を含む"で行う方法

EXCEL findを右から(後ろから)検索する方法

VLOOKUPの近似一致(近似値)・あいまい検索って何に使うの?

EXCELファイルサイズが大きい!重い!容量を軽く小さくする方法はある?

★新着記事

エクセル表の簡単な作り方/罫線や色もつけてシンプルかつ鮮やかに!

VLOOKUPあるのに#N/A!エラーになるのはなぜ?

VLOOKUPで複数範囲の検索を行う方法/VLOOKUPを繋げるしかない?

エクセル計算で参照セルを固定!コピーする際にズレない【絶対参照】

エクセルチェックボックスの作り方/チェック数を集計する方法

エクセル練習問題(テスト)VLOOKUPや集計関数使えますか?

エクセル シート移動のショートカットはCtl+PageDownまたはCtl+PageUp

VLOOKUPエラーの原因!N/A,REF,VALUE,NAMEになるのはなぜ?

エクセル シート名の一括変更や置換はVBAマクロじゃなきゃ無理なの?

エクセル 一番下まで移動はスクロールだと大変?キーボードでの瞬間移動方法を紹介!

EXCELでお困りの方へ

EXCEL効率化したい仕事人

当サイトでは皆さまがEXCEL作業で行き詰った問題を解決するべく王道のテクニックからちょっと特殊なテクニックまで 様々な中〜上級技・プチテクニックを公開し、少しでも皆様の業務効率改善に役立てていただければと思い、ネタをまとめています。

EXCELの作業で悩み・お困りごとはありませんか?
集計に時間がかかり過ぎ。効率化をしたい。などなど日頃から奮闘しているあなたに少しでも参考になる情報を与えることが出来れば幸いです。

質問・相談なども受け付けておりますが、最近忙しくて返事が遅れてしまいます。。。
サイト内の内容についてのご質問は優先的に受け付けておりますが、それ以外のご相談などはお断りすることもありますのでご了承ください。
※サンプルのエクセルファイルなど添付していただくと回答もスムーズに行える場合が多いです。

お問い合わせはコチラ

リンク

ウェブマーケッターOKBのウェブマーケティングスキル集