【Excel業務効率化】複数ブックを1つにまとめる4つの方法

Excelでの作業効率を上げるため、今回は複数のブックを1つにまとめる方法をご紹介します。マクロを使わずに簡単に実現できる手法です。特に大量のデータを扱う場合に重宝する方法となっています。

目次

この記事のポイント

  • 作業時間:約5分
  • 難易度:初級
  • 対象バージョン:Excel 2019以降
  • マクロ知識:不要

前提条件

結合するブックには以下の条件が必要です:

  • 各ブックの構造(列の配置など)が同一であること
  • 突然異なるデータ(住所録の中に売上データなど)が含まれていないこと

今回は具体例として、株価データの結合を例に解説します。1日あたり4000銘柄以上のデータを1か月分まとめる作業を想定しています。この方法を使えば、大量のデータでも簡単に結合することができます。

必要な環境

  • Windows 10以降
  • Excel 2019、Microsoft 365、もしくはExcel 2021
  • 十分なメモリ容量(大量データを扱う場合)

ここからは具体的な手順を説明していきます。画像を交えながら、誰でも実践できるように丁寧に解説していきますので、ぜひ最後までお付き合いください。

サンプルファイルのご案内

サンプルデータの構造

各ファイルは以下の15項目(A列~O列)で構成されています:

  1. コード(A列):証券コード
  2. 現在日付(B列):取引日
  3. 現在値時刻(C列):データ取得時刻
  4. 銘柄名称(D列):会社名
  5. 現在値(E列):株価
  6. 出来高(F列):取引量
  7. 売買代金(G列):取引金額
  8. 時価総額(H列):企業価値
  9. 逆日歩(I列):信用取引指標
  10. 信用倍率(J列):信用取引指標
  11. 貸借倍率(K列):信用取引指標
  12. 権利落日(L列):権利確定日
  13. 決算発表日(M列):業績発表日
  14. PER(N列):株価収益率
  15. PBR(O列):株価純資産倍率

サンプルファイルについて

  • ファイル名:sample_stock_data_01.xlsx ~ sample_stock_data_10.xlsx
  • 各ファイル約4000行のデータ
  • 期間:2024年6月1日~6月10日(各ファイルで異なる日付)
  • ファイルサイズ:各約0.5MB

【ダウンロードリンク】
サンプルファイルをダウンロードして、実際に手順を試していただけます

複数ブックを1つにまとめる手順

1. 新規ブックの作成

まずは白紙のExcelブックを用意します。この新規ブックが、複数のデータを統合する場所となります。

2. データの取得

  1. メニューバーの「データ」タブをクリック
  2. 「データの取得」をクリック
  3. 「ファイルから」にマウスを合わせる
  4. 「フォルダーから」を選択

サンプルファイルの配置

ファイル構成

今回は以下のような環境で作業を進めます:

  • 保存場所:C:\test
  • ファイル形式:.xlsx(Excel 2007以降)
  • ファイル数:10個
  • 期間:2024年4月8日~4月19日(土日祝日を除く)
  • 各ファイル約4000行のデータ

ファイル一覧

C:\test\20240408.xlsx (4月8日:月曜日)
C:\test\20240409.xlsx (4月9日:火曜日)
C:\test\20240410.xlsx (4月10日:水曜日)
C:\test\20240411.xlsx (4月11日:木曜日)
C:\test\20240412.xlsx (4月12日:金曜日)
C:\test\20240415.xlsx (4月15日:月曜日)
C:\test\20240416.xlsx (4月16日:火曜日)
C:\test\20240417.xlsx (4月17日:水曜日)
C:\test\20240418.xlsx (4月18日:木曜日)
C:\test\20240419.xlsx (4月19日:金曜日)

注意点

  • ファイル名は日付形式(YYYYMMDD)で統一
  • 土日祝日のデータは含まれていません
  • すべてのファイルが同じ列構造(A列~O列)を持つ

フォルダー選択後の操作

フォルダーを選択して「開く」をクリックすると、「フォルダーの内容」ウィンドウが表示されます。ここで以下の操作を行います:

1. ファイル一覧の確認

表示されたウィンドウには、選択したフォルダー(C:\test)内のExcelファイルが一覧表示されています。

  • 10個のファイルが表示されていることを確認
  • すべてのファイルが.xlsx形式であることを確認

2. 結合操作

  1. 画面下部にある「結合」ボタンをクリック
  2. 表示されたメニューから「データの変換と結合」を選択

3. パラメーターの設定

「Fileの結合」ダイアログが表示されます。ここでは:

  • 「サンプルファイルパラメーター」で最初のファイルのシートが表示されます
  • 右側のプレビュー画面でデータの内容を確認できます

この状態で、データの内容が正しく表示されていることを確認します。特に:

  • すべての列(A列~O列)が正しく認識されているか
  • データ型が適切か(数値、日付など)

を確認しましょう。

フォルダー内のファイル結合

データプレビューの確認

表示されているウィンドウで確認すべきポイント:

  • 左側:ファイル一覧(10ファイルすべてが表示されている)
  • 中央:データのプレビュー表示
  • 下部:「結合」ボタンの位置

結合の実行手順

  1. 画面下部の「結合」ボタンをクリック
  2. 「データの変換と結合」を選択
  3. 表示された「Fileの結合」ダイアログで以下を確認:
    • シート名が正しく選択されているか
    • プレビューにデータが正しく表示されているか
    • 列名(コード~PBR)が正しく認識されているか

Power Query エディタでのデータ確認

Power Query エディタの画面説明

Power Query エディタが開くと、以下の要素が表示されます:

  1. 左側:クエリの一覧
    • 「結合されたファイル」という名前で新しいクエリが作成されています
    • データの変換履歴も確認できます
  2. 中央:データのプレビュー
    • すべてのファイルのデータが結合された状態
    • A列~O列まですべての項目が表示されています
    • サンプルとなる数行分のデータが表示されます
  3. 右側:クエリの設定
    • 適用された手順の一覧
    • データ型などの情報

データの読み込み

この段階では特に加工の必要がないため:

  1. 左上の「閉じて読み込む」をクリック
    • データの読み込みが開始されます
    • 約4万行(4000行×10ファイル)のデータが結合されます
    • 読み込み中はプログレスバーが表示されます

データ結合の完了確認

結合されたデータの確認

新しいシートに約43,000行のデータが読み込まれました:

  • 行数:約43,000行(4,300行×10営業日分)
  • 列数:15列(A列~O列)
  • データ期間:2024年4月8日~4月19日(土日を除く10営業日)

結合データの確認ポイント

  1. すべての日付のデータが正しく結合されているか
    • 「現在日付」列で4月8日から4月19日までのデータを確認
    • 土日を除く10営業日分のデータが存在
  2. データの整合性チェック
    • 重複データがないか
    • 欠損値(空白セル)がないか
    • 数値や日付のフォーマットが統一されているか

データの活用方法

このように結合されたデータは以下のような分析に活用できます:

  • 10日間の株価推移の分析
  • 銘柄ごとの取引量の推移
  • PERやPBRの期間変化の確認
  • 時価総額の変動分析

データ活用のヒント

結合したデータは以下のような分析に活用できます:

  • ピボットテーブルでの期間分析
  • Power BIとの連携
  • 条件付き書式による重要データの可視化

その他の結合方法

では、別の方法もご紹介していきましょう。以下の手法を実践的に試してみましょうか:

  1. Power BIを使用した方法
    • より高度な分析が可能
    • データの自動更新にも対応
  2. VBAを使用する方法
    • マクロを使用しても比較的シンプルに実装可能
    • 定期的な更新作業の自動化に便利

1. Power BIを使用した方法

Power BIでのデータ取得手順

  1. Power BIデスクトップを起動します
  2. ホーム画面で「データを取得」をクリック
  3. 「エクセルブック」を選択
  4. ファイル選択ダイアログでC:\testフォルダーに移動

フォルダー内のファイル確認

表示されたダイアログでは:

  • 10個のExcelファイル(20240408.xlsx ~ 20240419.xlsx)が表示されています
  • 各ファイルのサイズと更新日時も確認できます

Power BIでのデータ結合手順(続き)

データソースの選択

  1. 最初のファイル(20240408.xlsx)を選択
  2. 左側のプレビューペインで「Sheet1」にチェックを入れる
    • これにより「読み込み」と「データの変換」ボタンが有効になります
    • データのプレビューが右側に表示されます

Power Query エディターの起動

  1. 「データの変換」をクリック
    • チェックを入れないとボタンが無効のままなので注意
    • Power Query エディターが起動します

Power Query エディターでのデータ結合

追加のファイル取得

  1. 「ホーム」タブの「新しいソース」をクリック
  2. 「Excel」を選択
  3. 次のファイル(20240409.xlsx)を選択
  4. 同様に「Sheet1」にチェックを入れて「OK」をクリック

データの結合

  1. 左側の「クエリ」ペインに2つのクエリが表示されます
  2. 1つ目のクエリを選択した状態で:
    • 「ホーム」タブの「結合」をクリック
    • 「クエリの追加」を選択

Power Query エディターでのデータ結合(続き)

クエリの追加設定

表示された「追加」ダイアログで:

  1. 「テーブルの追加」から2つ目のクエリ(20240409のデータ)を選択
  2. 「OK」をクリック
    • 2つのテーブルが自動的に結合されます
    • 列構造が同じため、自動的に整列されます

結合結果の確認

結合後のプレビュー画面で:

  • データが約8,600行(4,300行×2日分)になっていることを確認
  • すべての列(A列~O列)が正しく結合されているか確認

残りのファイルの追加

同じ手順を繰り返し、残りのファイルも追加します:

  1. 「新しいソース」→「Excel」で順次ファイルを追加
  2. 各ファイルの「Sheet1」を選択
  3. 「追加」機能で既存のデータに結合

最終確認

すべてのファイルを結合後:

  • 約43,000行のデータ(4,300行×10営業日分)
  • 15列すべてが正しく結合されているか確認
  • 日付順(4月8日~19日)に正しく並んでいるか確認

データの読み込み

  1. 「閉じて適用」をクリック
    • Power BIのメイン画面に戻ります
    • 結合されたデータがテーブルとして読み込まれます

2. VBAを使用した結合方法

VBAのメリット

  • 処理が高速
  • 一度作成すれば繰り返し利用可能
  • Excelから直接実行できる
  • メモリ効率が良い

準備作業

  1. 新規ブックを作成
  2. Alt + F11 でVBエディタを起動
  3. 「挿入」→「標準モジュール」を選択

VBAコード

Sub CombineExcelFiles()
    ' 変数の宣言
    Dim FolderPath As String
    Dim Filename As String
    Dim Sheet As Worksheet
    Dim TargetRow As Long
    Dim LastRow As Long
    
    ' 初期設定
    Application.ScreenUpdating = False
    FolderPath = "C:\test\"
    TargetRow = 2  ' 1行目はヘッダー用
    
    ' 最初のファイルからヘッダーをコピー
    Workbooks.Open FolderPath & "20240408.xlsx"
    Rows(1).Copy ThisWorkbook.Sheets(1).Rows(1)
    ActiveWorkbook.Close
    
    ' フォルダ内のファイルを順次処理
    Filename = Dir(FolderPath & "*.xlsx")
    
    Do While Filename <> ""
        ' ファイルを開く
        Workbooks.Open FolderPath & Filename
        
        ' データ行数を取得
        LastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
        
        ' データをコピー(ヘッダーを除く)
        Range("A2:O" & LastRow).Copy ThisWorkbook.Sheets(1).Cells(TargetRow, 1)
        
        ' 次の開始行を設定
        TargetRow = TargetRow + LastRow - 1
        
        ' ファイルを閉じる
        ActiveWorkbook.Close False
        
        ' 次のファイル名を取得
        Filename = Dir()
    Loop
    
    Application.ScreenUpdating = True
    MsgBox "完了しました。", vbInformation
End Sub

使用方法

  1. 上記のコードをVBエディタに貼り付け
  2. FolderPathの値を必要に応じて変更
  3. F5キーまたは実行ボタンでマクロを実行

注意点

  • マクロを有効にする必要があります
  • ファイルパスは必ず最後に「\」をつけてください
  • すべてのファイルが同じ構造である必要があります

実行結果の確認

  1. マクロ実行後:
    • 自動的に約43,000行のデータが結合されます
    • 処理速度は数秒~十数秒程度
    • 「完了しました。」というメッセージが表示
  2. データの確認ポイント:
    • ヘッダー行(1行目)が正しくコピーされているか
    • すべてのデータが連続して結合されているか
    • A列~O列まですべての列が正しく結合されているか

VBA方式のメリット

  • Power Queryと比べて処理が高速
  • メモリ使用量が少ない
  • エラー発生時にメッセージで通知
  • コードの修正で柔軟な対応が可能

補足:Pythonを使用した結合方法

Pythonを使用する利点

  • 大容量データの高速処理
  • 柔軟なデータ加工が可能
  • 自動化が容易
  • 無料で利用可能

必要な環境

  • Python 3.x
  • pandas ライブラリ
  • openpyxl ライブラリ

準備作業(初心者向け詳細手順)

  1. Pythonのインストール
    • Python公式サイト(python.org)からダウンロード
    • インストール時に「Add Python to PATH」にチェック
  2. 必要なライブラリのインストール
    • コマンドプロンプトを開く以下のコマンドを実行:
    pip install pandas openpyxl
  3. コードの保存手順
    • メモ帳を開く(スタートメニュー→メモ帳)
    • 下記のコードをコピー&ペースト
    • 「ファイル」→「名前を付けて保存」を選択
    • 保存先:C:\test
    • ファイル名:test.py
    • 「ファイルの種類」で「すべてのファイル(.)」を選択
    • 文字コード:UTF-8
    • 「保存」をクリック
  4. 実行方法
    • コマンドプロンプトを開く以下のコマンドを順に実行:
    cd C:\test
    python test.py

注意点

  • 初めてPythonを使用する場合は環境構築から必要
  • コマンドプロンプトの操作に慣れが必要
  • ファイル保存時の拡張子(.py)の設定に注意
import pandas as pd
import os

def combine_excel_files(folder_path):
    # 結合用の空のDataFrame
    combined_df = pd.DataFrame()
    
    # フォルダ内のExcelファイルを処理
    for filename in os.listdir(folder_path):
        if filename.endswith('.xlsx'):
            # ファイルパスを作成
            file_path = os.path.join(folder_path, filename)
            
            # Excelファイルを読み込み
            df = pd.read_excel(file_path)
            
            # データを結合
            combined_df = pd.concat([combined_df, df], ignore_index=True)
    
    # 結果を新しいExcelファイルに保存
    combined_df.to_excel('combined_data.xlsx', index=False)
    
    return combined_df

# 実行例
folder_path = r'C:\test'
result_df = combine_excel_files(folder_path)
print(f"合計行数: {len(result_df)}")

補足:開発ツールを使用する方法

より効率的にPythonコードを作成・実行するには、統合開発環境(IDE)の使用をお勧めします。

Visual Studio Code(VSCode)を使用する場合:

  1. VSCodeのインストール
    • Microsoft公式サイトからVSCodeをダウンロード・インストール
  2. 拡張機能のインストール
    • Python拡張機能をインストール(VSCode内で「Python」を検索)
    • Excel Viewer拡張機能(オプション:Excelファイルのプレビューに便利)
  3. 使用方法
    • C:\testフォルダーをVSCodeで開く
    • 新規ファイル作成(Ctrl + N)
    • Pythonファイルとして保存(.py)
    • コードを書いて実行(F5キー)
  4. VSCodeのメリット
    • コードの色分け表示
    • 入力補完機能
    • デバッグが容易
    • Git連携が可能

このように、開発ツールを使用することで、より快適にコード作成・実行が可能になります。

まとめ:各手法の比較と選び方

Power Query

  • 難易度:初級
  • 処理速度:中程度
  • 自動化:可能
  • 特徴:
    • 視覚的で操作が簡単
    • 手順が分かりやすい
    • Excel標準機能で利用可能

VBA

  • 難易度:中級
  • 処理速度:速い
  • 自動化:簡単
  • 特徴:
    • 処理が高速
    • カスタマイズ性が高い
    • マクロとして保存可能

Power BI

  • 難易度:初級
  • 処理速度:中程度
  • 自動化:可能
  • 特徴:
    • 分析機能が充実
    • ビジュアル化が容易
    • レポート作成に最適

Python

  • 難易度:上級
  • 処理速度:速い
  • 自動化:簡単
  • 特徴:
    • 大量データに強い
    • 柔軟な処理が可能
    • 無料で利用可能

よくある質問(FAQ)

Q1. どの方法を選べばいいですか?

  • 日常的な作業の場合:Power Queryがおすすめです
    • 視覚的に操作できる
    • 手順が分かりやすい
    • 次回も同じ手順で実行可能
  • 大量のデータを定期的に処理する場合:VBAがおすすめです
    • 処理が高速
    • ボタン1つで実行可能
    • カスタマイズが容易

Q2. 処理中にエラーが出た場合は?

  • メモリ不足エラーの場合
    • 32bit版から64bit版Excelへの移行を検討
    • 不要なアプリケーションを終了
    • 一度に処理するファイル数を減らす
  • ファイルが開けない場合
    • ファイルが他のプログラムで開かれていないか確認
    • ファイル名やパスに日本語が含まれていないか確認
    • ファイルが破損していないか確認

Q3. データ量が多い場合の注意点は?

  • 十分なメモリ容量を確保する
  • 64bit版Excelの使用を推奨
  • 不要な列は事前に削除
  • 処理前にデータのバックアップを作成

Q4. 結合したデータの更新方法は?

  • Power Query:「データ」タブから「更新」
  • VBA:マクロを再実行
  • Power BI:「更新」ボタンをクリック
  • Python:スクリプトを再実行

トラブルシューティング:よくある問題と解決方法

メモリ関連の問題

  1. メモリ不足エラーが発生する場合
  • 原因:大量のデータを一度に処理しようとしている
  • 解決策:
    • Excelを64bit版に変更
    • 不要なアプリケーションを終了
    • データを分割して処理
  1. 処理が極端に遅くなる場合
  • 原因:ファイルサイズが大きすぎる
  • 解決策:
    • 不要な列を削除
    • 数式を値に変換
    • フィルターを活用して必要なデータのみ結合

データの整合性の問題

  1. データの型が混在する場合
  • 原因:ファイルごとに列の形式が異なる
  • 解決策:
    • Power Queryで列の型を統一
    • VBAで型変換を追加
    • 元データの形式を統一
  1. 文字化けが発生する場合
  • 原因:文字コードの不一致
  • 解決策:
    • ファイルの文字コードをUTF-8に統一
    • 日本語を含むパスを避ける
    • 半角・全角を統一

実行時のエラー

  1. 「ファイルが見つかりません」エラー
  • 原因:パスの指定が間違っている
  • 解決策:
    • パスの最後に「\」があるか確認
    • ファイル名が正確か確認
    • フォルダ権限を確認
  1. 「実行時エラー」が表示される
  • 原因:VBAのコードに問題がある
  • 解決策:
    • エラー処理を追加
    • デバッグモードで確認
    • 変数の初期化を確認

応用例:データ結合の活用方法

1. 定期的なデータ更新の自動化

Power Queryの場合

  • 「データ」タブの「更新」を設定
  • 「プロパティ」で更新時間を指定
  • OneDriveと連携して自動更新

VBAの場合

' タスクスケジューラーから呼び出し可能な形に修正
Sub AutoUpdateDaily()
    ' 実行時のログを残す
    Dim logFile As String
    logFile = "C:\test\log.txt"
    
    ' 処理実行
    CombineExcelFiles
    
    ' 完了時刻を記録
    Open logFile For Append As #1
    Print #1, "更新完了: " & Now
    Close #1
End Sub

2. データの加工例

結合後のデータ整理

  • 重複データの削除
  • 日付順での並べ替え
  • 条件付き書式の適用
    • 株価の上昇:緑
    • 株価の下落:赤
    • 出来高の増加:太字

ピボットテーブルの活用

  • 日付ごとの集計
  • 銘柄別の分析
  • 時価総額による分類

3. レポート作成への展開

日次レポート

  • 前日比較の自動計算
  • グラフの自動更新
  • サマリーページの作成

月次レポート

  • 月間推移の可視化
  • 業種別の集計
  • パフォーマンス分析

4. データのクリーニング自動化

  • 異常値の検出
  • 欠損値の補完
  • フォーマットの統一

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次