Excel集計を自動化する前にやること|月次報告で見る3ステップ

産業インサイト・課題解決//

毎月の月次報告のために、部署や拠点から届く複数のExcelファイルをコピーして1つにまとめる業務は、管理部門で比較的よく見られます。作業に時間がかかるうえ、貼り付け位置のずれや転記ミスも気になるため、「まずマクロやツールで自動化できないか」という相談につながりやすくなります。

この発想自体は自然なものです。ただし、長く続いている手作業には、今は不要になっている確認作業、特定の部署だけに向けた例外対応、誰も参照していない集計項目が含まれている場合があります。それらを区別しないまま自動化すると、無駄な工程や例外処理までがプログラムの中に固定化されます。その結果、フォーマットが少し変わっただけで止まる、作成者以外には直せない、といった保守の問題が生じる可能性があります。

最初に決めたいのは、「どのツールで自動化するか」ではなく「何を自動化の対象にするか」です。その順序として、本記事では「不要工程の削除」「標準化」「自動化」の3つを取り上げます。これは自動化を控えるべきという意味ではなく、自動化の効果と保守性を高めるための準備の順序の話です。

本記事では、月次報告業務を例に、3つのステップの進め方、サンプルコードの考え方、手段選定の観点、自動化前に確認したい項目を整理します。例に登場する業務、ファイル、数値はすべて説明用の架空のものであり、特定の企業や顧客の事例ではありません。

なぜ手作業をそのまま自動化すると、保守しにくくなるのか

人が行うExcel作業は柔軟です。列名が「売上金額」でも「売上(円)」でも、担当者は意味を読み取って同じものとして扱います。この補正は目視で行われるため、手順書に書かれないまま暗黙の判断として残りやすい部分です。

一方、プログラムが処理できるのは明示されたルールだけです。暗黙の判断が整理されていない状態で自動化すると、次のどちらかになりやすくなります。

  • 人が行っていた補正をすべてコードに書き込み、例外の分岐が増え続ける
  • 補正を書かずに、想定外の表記に出会うたびに処理が止まる
  • 誰も使っていない集計項目まで、毎月正確に出力し続ける
  • 作成者が異動した後、修正できる人がいなくなる

「自動化できること」と「自動化すべきこと」は別です。また、「作業の自動化」と「業務の整理」も別の取り組みです。ただし、これは手作業の自動化に意味がないという話ではありません。変更が少なく、規模も小さい業務であれば、整理を最小限にして先に自動化する判断もあり得ます。

月次報告の例で見る現状の業務フロー

ここでは、説明用に次のような一般的な業務を想定します。部署・拠点から届く15個のExcelファイルを、担当者が毎月手作業でコピーして、1つの月次報告にまとめています。業務の流れと、手戻り(やり直しや修正の発生)が起きやすい箇所を以下に示します。

月次報告の現状業務フロー

説明用の概念図。強調色の項目は手戻りが起きやすい箇所の例

01

受領

部署・拠点から15個のファイルが届く

02

コピー

各ファイルの内容を1つのファイルへ貼り付ける

貼り付け位置のずれ、非表示行の見落とし

03

目視修正

列名、日付、コードの表記を人が読み取って直す

修正漏れ、判断の属人化

04

集計

合計や部署別の集計を行う

合計行の二重計上、範囲指定の漏れ

05

グラフ

集計結果を表やグラフに整える

06

報告

月次報告として提出する

この図は一例であり、すべての業務が同じ流れ・同じ問題を抱えることを意味しません。

この例では、問題が起きやすいのは集計そのものよりも、その前段のコピーと目視修正です。ここを自動化するにはまず、何が「正しい形」なのかを定義する必要があります。

自動化の前に整理する3つのステップ

整理の順序は「不要工程の削除」「標準化」「自動化」です。この順序には理由があります。削除しないまま標準化すると、使われない項目まで定義とルールの対象になります。標準化しないまま自動化すると、表記の違いを吸収する例外処理が増えます。以下に3つのステップを示します。

自動化の前に進める3つのステップ

ステップ1

不要工程の削除

集計項目と工程ごとに、誰のどの判断に使われているかを確認し、慣習で残っているものを見直す

成果物:集計項目の棚卸し表

ステップ2

標準化

テンプレート、列定義、表記ルール、ファイル名、提出期限、提出場所、例外の扱いをそろえる

成果物:データ定義書と提出ルール

ステップ3

自動化

標準化した形式を前提に、処理を段階に分けて自動化し、人による確認を残す

取り込み検証集計出力

一度で一方向に進むとは限りません。標準化の途中で項目の見直しが必要になる場合もあります。

ステップ1:集計項目の棚卸しで、不要な工程を見直す

最初に行うのは、集計項目と工程の棚卸しです。項目ごとに「誰のどの判断に使われているか」を確認します。あわせて、転記や加工といった工程が、今も必要な理由を説明できるかを確認します。次の表は、説明用に作成した棚卸し表の例です。

項目名利用者利用目的判断への影響継続・廃止・統合
部署別の売上合計部門長、経営企画月次の実績確認予算との差の確認に使用継続
売上の全件明細経理の確認者集計値の突合突合時のみ参照統合(集計表から参照できる形にする)
旧区分コード別の内訳確認できていない過去の慣習確認できていない保留(利用者に確認のうえ廃止を検討)
前月比の手入力コメント部門長状況の把握判断材料になる場合がある継続(記入ルールを定める)

利用者が確認できない項目は、ただちに不要と断定せず「保留」として扱うのが現実的です。利用者への確認後に廃止する、一定期間は参考情報として併記する、簡略化する、といった条件付きの選択肢もあります。

すぐ試せる確認作業:直近の月次報告に載っている項目を上から10件ほど書き出し、「利用者」「利用目的」「なくなった場合に困る人」の3列だけを埋めてみてください。空欄になる項目が、見直しの候補です。

ステップ2:ファイルと表記のルールを標準化する

残す項目が決まったら、それらをどの形式で提出してもらうかを統一します。標準化は、テンプレートを配ることだけではありません。列の定義、表記ルール、ファイル名、提出期限、提出場所、例外の扱いまでを含みます。

表記のばらつきを洗い出す

提出されたファイルから3つほどを選び、列名や日付の形式を並べて比較してみます。次の表は、よく見られるばらつきと標準化後の姿を、説明用に示したものです。

観点標準化前の例標準化後の例
列名「売上金額」と「売上(円)」が混在「金額」に統一
日付「2026/9/1」「9月1日」「20260901」が混在対象月を「2026-09」の形式で1列に統一
部署コード「A01」と全角の「A01」が混在半角英数字に統一
行の構成合計行、空白行、セル結合が混在1行1レコードとし、合計行・空白行・セル結合を使わない

人が見れば同じ意味だと分かる違いでも、プログラムにとっては別の値です。たとえば全角と半角の部署コードは、別の部署として集計されてしまいます。

データ定義書で列と表記を決める

列名、型、必須かどうか、許容値を一覧にしたものがデータ定義書です。表計算の見た目ではなく、データとしての構造(1行が1件の記録になる形)を基準に決めます。

列名型必須許容値備考
年月文字列必須「2026-09」の形式日付ではなく対象月を表す
部署コード文字列必須半角英数字先頭のゼロを保持する
部署名文字列任意部署マスタの名称集計時はコードで結合する
項目文字列必須項目マスタに定義した名称新規項目は事前に申請する
金額数値必須整数、負数可、空欄不可単位は円。「円」やカンマを含めない

この定義に沿って提出されたデータは、次のような統一テーブルになります。

年月部署コード部署名項目金額
2026-09A01第一営業部売上1250000
2026-09A01第一営業部経費480000
2026-09B02管理部経費310000

提出ルールと例外の扱いを決める

形式だけでなく、運用のルールも決めます。ファイル名の付け方、提出期限、提出場所を統一し、共有フォルダであれば閲覧・編集できる人の範囲も整理します。

例外についても同様です。例外をゼロにすることを目指すのではなく、「どのような場合に例外を認めるか」「誰が承認するか」「暫定対応をいつまで続けるか」を決めておきます。例外が見える状態であれば、自動化の際に例外処理をどこまで作り込むかを判断しやすくなります。

ステップ3:取り込み、検証、集計、出力に分けて自動化する

標準化した形式を前提に、処理を「取り込み」「検証」「集計」「出力」の4段階に分けます。分けておくと、フォーマットが変わったときに修正する箇所を特定しやすくなります。特に「検証」を独立させると、問題のあるファイルを一覧にして修正を依頼できます。

次のサンプルは、Python(パイソン:汎用のプログラミング言語)のpandas(パンダス:表形式データを扱うライブラリ)で、フォルダ内のExcelを読み込み、必須列と金額の形式を確認して、問題のあるファイルを一覧にする例です。公開可能な汎用サンプルであり、考え方を示すものです。そのまま本番運用するものではありません。Excelの読み書きにはopenpyxlなどの追加ライブラリが必要な場合があります。

# 説明用のサンプルです。考え方を示すもので、そのまま本番運用するものではありません。
from pathlib import Path

import pandas as pd

REQUIRED_COLUMNS = ["年月", "部署コード", "部署名", "項目", "金額"]


def load_and_validate(folder):
    """フォルダ内のExcelを読み込み、検証を通ったものだけを返す。"""
    valid_frames = []
    problems = []

    for path in sorted(Path(folder).glob("*.xlsx")):
        try:
            df = pd.read_excel(path, dtype={"部署コード": str})
        except Exception as exc:  # 読み込めないファイルも一覧に残す
            problems.append({"ファイル": path.name, "内容": f"読み込みエラー: {exc}"})
            continue

        # 列定義が統一されていないと、このチェックで多くのファイルが弾かれる。
        # 先に標準化を進めておく理由のひとつがここにある。
        missing = [c for c in REQUIRED_COLUMNS if c not in df.columns]
        if missing:
            problems.append({"ファイル": path.name, "内容": "必須列なし: " + "、".join(missing)})
            continue

        df = df[REQUIRED_COLUMNS].copy()
        amount = pd.to_numeric(df["金額"], errors="coerce")
        if amount.isna().any():
            problems.append({"ファイル": path.name, "内容": "金額に数値以外または空欄あり"})
            continue

        df["金額"] = amount
        df["ファイル"] = path.name
        valid_frames.append(df)

    return valid_frames, pd.DataFrame(problems)
Python

検証を通ったファイルだけを結合して集計し、結果を出力する部分は次のようになります。

frames, problems = load_and_validate("./monthly_inputs")

if not problems.empty:
    # 修正依頼のための一覧。ここに出たファイルは提出元に確認する
    print(problems.to_string(index=False))

if frames:
    combined = pd.concat(frames, ignore_index=True)
    summary = combined.groupby(["年月", "部署コード", "項目"], as_index=False)["金額"].sum()

    # 件数と合計値は、提出元の申告値などと人が突合する
    print("取り込み件数:", len(combined))
    print("金額合計:", combined["金額"].sum())

    summary.to_excel("monthly_summary.xlsx", index=False)
Python

Excelだけで完結させたい場合は、Power Query(パワークエリ:Excelに搭載されたデータの取り込み・整形機能)の「フォルダーから取り込み」で、同様の考え方で処理を組み立てられます。この場合も、列定義がそろっているほど、取り込み後の整形手順を単純にできます。

自動化後も人が確認すべきこと

自動化は確認を無くすものではなく、確認する場所を絞るものです。次のような確認は、自動化後も人の手に残しておくことをおすすめします。

  • 取り込んだ件数と、提出元の申告件数の突合
  • 金額の合計値と、別の資料や前月の数値との比較
  • 検証エラーとなったファイルの連絡と再提出の確認
  • フォーマット変更の事前連絡と、変更履歴の記録

あわせて、処理の内容と実行手順を文書化し、担当者が交代しても引き継げる状態にしておきます。標準化の目的の一つは、この属人化の解消です。

マクロ、Power Query、Python、BIツールはどう選ぶか

自動化の手段は複数あります。規模や保守体制によって適切な手段は異なり、特定のツールが常に優れているとは言えません。次の表は、判断の観点を整理したものです。

手段導入しやすさ保守性向いている規模必要スキル
マクロ(VBA:Excelに組み込まれたマクロ言語)Excelだけで始めやすい作成者に依存しやすく、引き継ぎ資料が必要少人数・少数ファイルの定型作業Excelの操作、VBAの基礎
Power QueryExcel標準機能で、フォルダー単位の取り込みに対応処理手順が画面上で確認でき、引き継ぎやすい場合がある取り込みと整形が中心の定型業務Power Queryの基本操作
Python実行環境の準備が必要コード管理の体制次第。検証処理を細かく書けるファイル数やルールが多く、検証を丁寧に行いたい業務Pythonとpandas、環境の管理
BIツール(Business Intelligence:データの可視化・分析ツール)ライセンスや環境の検討が必要データが整っていれば、同じ指標の再利用がしやすい複数部門が同じ指標を継続的に参照する業務データモデルの理解、ツール固有の知識

判断の軸としては、保守を担える人がいるか、ファイル数やルールの複雑さ、利用者のスキル、情報の取り扱いに関する社内要件が挙げられます。手段は一つに絞る必要はなく、取り込みはPower Query、可視化はBIツールといった組み合わせも考えられます。

小さく始めるための4週間の進め方例

すべてを整えてから始める必要はありません。まず一部の業務や部署から小さく確認する進め方が現実的です。以下は一例であり、期間は組織や業務によって異なります。

  1. 第1週:集計項目と工程を棚卸しし、利用者と目的を確認する
  2. 第2週:残す項目についてデータ定義書の案を作り、関係部署と確認する
  3. 第3週:一部の部署でテンプレートを試し、提出ルールの不足を洗い出す
  4. 第4週:取り込みと検証だけを先に自動化し、集計と出力は従来どおり人が確認する

このように、検証までを先に自動化すると、標準化が不十分な箇所が具体的に見えてきます。その結果を次の月の改善に反映していく進め方です。

この順序が当てはまりにくい場合と限界

「不要工程の削除、標準化、自動化」の順序は、あらゆる業務に当てはまるわけではありません。たとえば次のような場合は、別の進め方が適することがあります。

  • 元データが基幹システムなどの固定形式の出力で、既に表記が一定している場合
  • 取引先や制度で形式が指定されており、こちらで標準化できない場合
  • 項目の廃止に社内合意が必要で時間がかかる場合。合意形成と並行して、検証部分だけを先に自動化する選択肢もあります

ただし、これは自動化を後回しにすべきという意味ではありません。標準化できない部分がある場合は、その違いを取り込み処理で吸収していること、およびその前提を文書に残しておくことが、保守の負担を抑えるうえで有効です。また、ここで示した手順は一般的な考え方であり、実際の業務では組織の体制や既存システムに合わせた調整が必要です。

まとめ:自動化の前に確認したいことのチェックリスト

毎月のExcel集計を自動化する前に、不要工程の削除、標準化、自動化の順で整理すると、自動化の対象が明確になり、フォーマット変更への対応も行いやすくなります。自動化後も、件数や合計値の確認、変更時の連絡、手順の文書化は人の役割として残ります。次のチェックリストで、現在の状況を確認してみてください。

段階確認項目確認の観点
不要工程の削除集計項目ごとの利用者と目的を記録した誰のどの判断に使われているかを説明できる
不要工程の削除利用者が不明な項目の扱いを決めた廃止、統合、保留のいずれかを選んでいる
標準化データ定義書を作成した列名、型、必須、許容値が決まっている
標準化日付、コード、単位の表記を統一した全角・半角や日付形式が定義されている
標準化ファイル名、期限、提出場所、例外の扱いを決めた例外の承認者と暫定対応の期限がある
自動化処理を取り込み、検証、集計、出力に分けた変更時に修正する箇所を特定できる
自動化検証エラー時の連絡手順を決めた修正依頼の宛先と再提出の流れがある
自動化件数・合計値を人が突合する手順を残した確認の担当者と基準が明確である
自動化変更連絡と引き継ぎの手順を文書化した担当者が交代しても運用を続けられる

「何を残し、何を標準化すべきか」といった業務や報告項目の整理から相談したい場合は、意思決定に必要なデータの観点から整理するRASHINRAをご案内します。

自動化手段の選定や、社内での進め方など技術的な相談をしたい場合は、KAMUSHIRUBE(技術・DX相談)をご案内します。