PythonでExcel作業をもっと楽に!複数のファイルをまとめて集計に挑戦しよう!

Python

Excel作業、手作業で「あぁ、大変…」って思っていませんか?

お仕事などでExcelを使う機会、結構ありますよね。

データ集計や資料作り、最初は手作業でも大丈夫でも、ファイルが増えてくると、なんだか大変になってきませんか?

  • 時間がどかかって、他の作業ができない
  • コピペでうっかりミスしちゃった
  • あのデータ、どこに入ってたっけ?
  • 同じ作業の繰り返しで、ちょっと飽きちゃう

こうした、時間のかかる、ミスの起こりやすい、そして何よりも単調な繰り返し作業に、うんざりしている方も少なくないでしょう。

しかし、ご安心ください。このようなExcelを使った定型的な作業は、実はプログラミングの力を借りることで、劇的に効率化し、手作業から解放されることができます。

こうした非効率な作業は、Pythonで自動化することで劇的に改善できます。

時間を大幅に短縮し、ヒューマンエラーも削減。定型業務から解放されれば、より創造的な仕事に時間を割けるようになり、あなたの生産性や職場での評価向上にも繋がるかもしれません。

この記事では、プログラミングは初めてという方でも大丈夫!

Pythonを使って、バラバラにあるExcelファイルを一つにまとめて集計し、新しいファイルを作る、そんな基本の流れを優しく解説します。

シンプルに進めるので、きっと分かりやすいはずです。最近話題のAIも味方につけて、一緒に自動化の世界を覗いてみましょう!

この記事を読めば、PythonでどんなExcel自動化ができるか複数のファイルを一つにする方法pandasで賢く集計する方法結果をファイルに出力する方法、そしてAIをどう使うかのヒントが得られますよ。

今回のゴール:いくつかの売上データを集計して、結果をパッと出そう!

さあ、今回はこんな作業の自動化を目指してみましょう。

皆さんの手元に、各支店から届いた「〇〇支店_売上.xlsx」
(日付、商品名、売上個数、売上金額が入っているとします)
というExcelファイルがいくつかあると想像してみてください。

サンプルデータ例

今回の集計で対象とするExcelファイルは、各支店から届くものがすべて同じ列構成になっていると想定しています。

例えば、「大阪支店_売上.xlsx」というファイルは、以下のような構造になっているとします。

日付商品名売上個数売上金額
2025/03/01商品A101000
2025/03/01商品B51500
2025/03/02商品A8800

このような形式のファイルが複数の支店から日々届き、それぞれにデータが記録されている状況をイメージしてください。

Pythonを使ってこれらの複数のファイルを読み込み、データを一つにまとめると、元のデータに加えて「支店名」の列が自動で追加され、全ての支店のデータが一つの大きな表(データフレーム)として統合されて扱えるようになります。

統合されたデータは、例えば以下のようなイメージになります。

日付商品名売上個数売上金額支店名
2025/03/01商品A101000東京支店
2025/03/02商品B51500東京支店
2025/03/01商品A8800東京支店
2025/03/01商品A121200大阪支店
2025/03/02商品C3900大阪支店

この合体したデータを使って、支店ごとの「売上金額」を合計するという処理を行います。

これらをまとめて、支店ごとの「売上金額」の合計を出して、その結果を新しいExcelファイルにまとめたい、というのが今回の目標です。

【できあがるファイルはこれ!】

Pythonコードを実行すると、集計結果が新しいExcelファイルとして作成されます。このファイルには、支店ごとの合計売上金額が以下のような形式でまとめられています。

支店名売上金額合計
東京支店400,000
大阪支店300,000
福岡支店200,000

このように、手作業だと一つずつファイルを開いて計算し、別の場所に記録するといった煩雑な手順が一切不要になり、Pythonコードを実行するだけであっという間に正確な集計結果が得られるイメージが湧いてきたのではないでしょうか。

もちろん、pandasを使えばもっと複雑な条件での集計や、様々なデータ分析も可能ですが、今回は基本的な流れを理解するために、最もシンプルで応用しやすい「支店別の合計売上金額」を求める例を取り上げます。

手作業だと、こんなに大変

手作業でこれらのファイルを扱う場合、各支店のExcelファイルを一つずつ開き、必要な売上金額のデータをコピーし、集計用の別のシートに貼り付け、最後に合計値を計算する…
という、非常に時間と労力がかかる作業が必要になります。

ファイルの数が少し増えるだけでも、この繰り返し作業は大きな負担となり、手動でのデータ転記や計算にはミスが発生するリスクも常に伴います。

「どのファイルを処理したっけ?」「合計値は合っているかな?」といった確認作業も、さらに時間を費やす原因となります。

Pythonでスマートに自動化!

Pythonなら、この作業を驚くほどスマートに自動でやってくれます。

  1. 処理したいExcelファイルの名前を、特定のルール(パターン)を使って自動で見つける。例えば、「ファイル名に『_売上.xlsx』が含まれるもの」といった条件で一括検索できます。
  2. 見つけたファイルを順番に、かつ自動で読み込む。手動で一つずつ開く必要はありません。
  3. 読み込んだデータに、「これは〇〇支店のデータだよ」とファイル名から読み取った支店名を自動で追加。後で支店ごとに集計するために重要なステップです。
  4. 全部のファイルを読み込んだら、それぞれのデータを大きな一つの表に合体!これで、全ての支店の売上データが一箇所に集まります。
  5. 合体したデータを使って、支店ごとの「売上金額」合計を自動計算。ここで、データ分析に特化した強力なライブラリであるpandasが大活躍します!
  6. 計算した結果を、新しいExcelファイル(例: 支店別売上合計.xlsx)として自動で出力。手動での転記は不要です。

なぜExcel自動化にPythonがいいの?

Excelの自動化といえばVBAもありますが、Pythonにはこんなよいところがあるんです。

Excelの他にもいろいろ活用できる

PythonはExcelの操作やデータ処理だけでなく、Webサイトから情報を自動で収集する「Webスクレイピング」、収集したデータや集計結果をグラフや図で分かりやすく表現する「データ可視化」といった、非常に幅広い分野で活用できる汎用性の高いプログラミング言語です。

Excel自動化をきっかけにPythonに触れ始めた後、慣れてきたらこれらの様々な技術にも挑戦し、活用の幅を広げやすいのが大きな魅力です。

コードが分かりやすい

他のプログラミング言語と比べると、書かれていることがシンプルで、人間が読んで理解しやすいと言われています。

便利なライブラリが豊富

「ライブラリ」という、あらかじめ便利な機能が詰まった部品がたくさん用意されています。

Excelを操作したり、データを扱うための便利なライブラリ(pandasやopenpyxlなど)が充実しているので、複雑な処理も短いコードで書けちゃいます。

無料で使える

Pythonも、使う便利なライブラリも、ほとんどが無料で使えます。気軽に始められるのは嬉しいポイントですね。

情報が豊富

世界中にPythonを使っている人がたくさんいます。だから、困ったときにネットで調べたり、質問したりすると、情報が見つけやすいんです。

もし、Excel作業の効率化だけでなく、将来的に他の様々なタスクも自動化してみたい、データをもっと深く分析してみたい、あるいはプログラミングそのものをもっと学びたいという気持ちがあるなら、Pythonからその一歩を踏み出すことは、とてもよい選択と言えるでしょう。

PythonでExcel自動化を始める準備

実際にPythonを使ってExcelファイルを読み込み、処理するために、PCにPython環境と作業環境を準備しましょう。

PythonとVS Codeをパソコンに入れよう

まずは皆さんのPCでPythonを実行できるようにします。

今回はVS Codeという人気のコードエディターを使ってPythonプログラムを試していきます。PythonとVS Codeのインストールや基本的な使い方は、以下の別記事で詳しく解説していますので、参照してください。

作業用フォルダの作成

Pythonコードを記述し、実行するための作業フォルダを作成します。

PCのデスクトップなど、ご自身が分かりやすい場所に、例えば「simple_excel_project」のような名前で新しいフォルダを作成してください。

フォルダを作成したら、VS Codeを起動し、メニューバーから「ファイル」→「フォルダを開く」を選択して、作成したフォルダを選択してください。

今後、このフォルダ内で作業を進めていきます。

便利な「ライブラリ」を用意しよう

Pythonは標準でもいろいろなことができますが、Excelを操作したり、データを効率よく扱ったりするには、外部の便利な「ライブラリ」を使うのが一般的です。

ライブラリは、特定の目的に合わせた機能があらかじめ詰め込まれた「機能のセット」のようなものです。

今回使うのは、主にこの2つの強力なライブラリです!

pandas

Pythonでデータ分析やデータ加工を行う際に最もよく使われる、非常に強力なライブラリです。

Excelファイルを読み込んだり、複数のファイルを結合したり、データを集計したりと、今回の目的である「複数のExcelファイルをまとめて集計する」という作業の主役となります。

データを「DataFrame(データフレーム)」という、Excelのシートのような「行と列を持つ表形式」で扱うのが特徴です。

openpyxl

PythonからExcelファイル(.xlsx形式)を読み書きするためのライブラリです。

pandasがExcelファイルを扱う際にも、内部的にこのopenpyxlが使われることがあります。今回は、pandasで集計した結果を新しいExcelファイルとして保存する際に利用します。

これらのライブラリをPCのPython環境で使えるようにするには、インストールが必要です。

インストールは、Pythonと一緒に自動でインストールされるpip というツールを使うと非常に簡単に行えます。

pipは、Pythonの外部ライブラリを管理するための標準的なツールです。

ライブラリをインストールするために、VS Codeで作業フォルダを開いた状態でターミナルを表示します。VS Codeのメニューバーから「表示」→「ターミナル」を選択、または「CTRL + @」キーを押してターミナルを表示してください。

そして、以下のコマンドを入力してEnterキーを押してみてください。

このコマンドにより、pipがインターネット経由でpandasopenpyxlというライブラリを探し出し、皆さんのPython環境にインストールしてくれます。

インストールに少し時間がかかる場合がありますが、完了するまでそのまま待ちましょう。

pip install pandas openpyxl

もしインストール中にエラーが表示された場合は、慌てずに表示されたエラーメッセージを正確にコピーして、ChatGPTGoogle GeminiなどのAIに質問してみてください。

「このコマンドを実行したら、こういうエラーが出たんだけど、これはどういう意味?」「どうすればこのエラーを解決できますか?」のように具体的に聞けば、エラーの原因や解決のための具体的な手順を教えてくれるはずです。

インターネットでエラーメッセージをそのまま検索するのも有効な方法です。

作業フォルダにサンプルファイルを用意しよう

今回の題材とするようなExcelファイル(例: 東京支店\_売上.xlsx大阪支店\_売上.xlsx福岡支店\_売上.xlsxなど)をいくつか作成して、先ほどVS Codeで開いている作業フォルダの中に入れてみましょう。

これらのファイルは、先ほど「サンプルデータ例」で示したような、「日付」「商品名」「売上個数」「売上金額」といった同じ列構成を持つシンプルな表データにしてください。

ファイル名に「支店名」が入っていると、後でPythonで扱いやすくなります。

サンプルファイル作成を自動化

手作業で複数のサンプルExcelファイルを作成するのは少し手間ですよね。

そこで、Pythonコードを使ってサンプルファイルを自動で作成する方法をご紹介します。以下のリンクに、サンプルExcelファイルを作成するためのPythonスクリプトを用意しました。

集計用サンプルExcelファイル作成スクリプト

このリンクを開き、表示されるPythonコードをコピーしてください。

そして、VS Codeで開いている作業フォルダの中に、例えばcreate_sample_files.pyという名前で新しいPythonファイルを作成し、コピーしたコードを貼り付けて保存します。

保存したら、VS Codeのターミナルで以下のコマンドを実行してください。

python create_sample_files.py

このスクリプトを実行すると、作業フォルダ内に「東京支店_売上.xlsx」のようなサンプルExcelファイルがいくつか自動で作成されます。

【実践!】PythonでExcelファイルを集計して出力してみよう!

準備ができたので、いよいよコードを書いて、複数のExcelファイルを集計する自動化処理を実現してみましょう!

ここでは、先ほど例に挙げた「特定のルールに合うExcelファイルを自動で見つけて、データを集計し、新しいファイルとして保存する」という一連の作業をPythonコードで実装していきます。

コードを書こう – 準備と設定

VS Codeなどのテキストエディタを開いて、simple_collect.pyという新しいファイルを作り、さっき作った作業フォルダに保存します。

今回作成するコード全体は以下にあります。

支店別合計売上Excelファイル作成

まずは、使うライブラリを使えるようにするため「インポート」します。

# 必要なライブラリをインポートします
import pandas as pd # データを扱うための必須ライブラリ。Excelファイルの読み込み、データ結合、集計に使います。
import os # ファイルやディレクトリ(フォルダ)に関する操作を行うための標準ライブラリ。今回は主にファイル名の扱いに使います。
import glob # 指定したパターンに一致するファイル名を探すための標準ライブラリ。

次に、処理したいExcelファイルを自動で見つけるためのパターンと、結果を入れるファイルの名前を決めます。

# --- 設定 ---
# 集計したいExcelファイルを自動で見つけるためのパターンを指定します。
# このPythonスクリプトと同じフォルダにあるファイルのうち、
# ファイル名が「どんな文字でもいい(*)」の後に「_売上.xlsx」という形になっているものを探します。
# 例: '東京支店_売上.xlsx', '大阪支店_売上.xlsx' など
input_file_pattern = '*_売上.xlsx'

# 集計結果を保存する新しいExcelファイルの名前です。
# このファイルも、スクリプトと同じフォルダに作成されます。
output_file_name = '支店別売上合計.xlsx'
# -----------------

コードを書こう – ファイルを読んで、データを一つにまとめる

次に、指定したパターンに合うファイルを自動で見つけて、一つずつ読んで、データを大きな一つの表にまとめていく部分です!

# 読み込んだ各ExcelファイルのDataFrame(表形式データ)を一時的に保管しておくための
# 空っぽのリスト(箱)を用意します。
all_data = []

# glob.glob()関数を使って、指定したパターン(input_file_pattern)に合う全てのファイル名を
# 現在の作業フォルダの中から見つけ出します。(glob.globを使用)
input_files = glob.glob(input_file_pattern)

# globで見つかったファイルがあるかどうかを確認します。
# ファイルが一つも見つからなかった場合は、その旨を表示して処理を終了します。
if not input_files:
    print(f"警告:指定されたパターン '{input_file_pattern}' に合うファイルが作業フォルダに見つかりませんでした。")
    print("集計・出力処理は行われず、新しいファイルも作成されません。サンプルファイルが正しく配置されているか確認してください。") # メッセージを少し修正
else:
    # ファイルが見つかった場合の処理
    print(f"以下のファイルを処理対象として見つけました:{input_files}")

    # 見つかったファイルリスト(input_files)を一つずつ取り出して処理するための繰り返し(ループ)を開始します。
    # for ... in ...: は、リストの要素を順番に file_name という変数に取り出し、繰り返しの処理を行います。
    for file_name in input_files:
        print(f"\n'{file_name}' を読み込み中...")

        # ファイルの読み込みやデータ加工でエラーが発生する可能性があるので、
        # try...except ブロックを使ってエラーに備えます。
        try:
            # pandasのpd.read_excel()関数を使って、現在のExcelファイルを読み込みます。
            # 読み込んだデータはDataFrame(pandasの表形式データ構造)として df という変数に格納されます。
            # sheet_name=0 は、Excelファイルの一番左にある最初のシートを読み込む指定です。
            df = pd.read_excel(file_name, sheet_name=0)

            # ファイル名から支店名を取り出す処理を行います。(例: '東京支店_売上.xlsx' から '東京支店')
            # ファイル名から '_売上.xlsx' の部分を消すと、支店名だけが残ります。
            branch_name = file_name.replace('_売上.xlsx', '')

            # 読み込んだ表(DataFrameであるdf)に「支店名」という新しい列を追加します。
            # この列の全部の行に、さっき取り出した支店名(branch_name)を設定します。
            # これにより、後でどのデータがどの支店のものかを区別できるようになります。
            df['支店名'] = branch_name

            # 支店名列を追加した現在のDataFrame(df)を、最初に用意しておいた all_data リストに追加します。
            # これをループの度に繰り返すことで、all_data リストには各ファイルのDataFrameが順番に格納されていきます。
            all_data.append(df)
            print(f"'{file_name}' の読み込みと支店名 '{branch_name}' の追加が完了しました。")

        except Exception as e:
            # Excelファイルを読み込む際やデータ加工中に何らかの予期しないエラーが発生した場合、
            # そのエラーをキャッチして、エラーメッセージと詳細を表示します。
            # これにより、どのファイルでエラーが起きたのか、どのようなエラーなのかが分かりやすくなります。
            print(f"エラー: '{file_name}' を読むとき、または処理中に問題が発生しました。詳細: {e}")
            # エラーが発生したファイルは all_data リストに追加されないため、集計対象から自動的に除外されます。

    # 全てのファイルの読み込みと加工が終わったら、all_data リストに格納された複数のDataFrameを一つに合体させます。
    # all_data リストにデータが一つでも入っている(少なくとも一つのファイルが正常に処理できた)場合のみ合体処理を行います。
    if all_data:
        # pd.concat()関数を使うと、リストに含まれる複数のDataFrameを縦方向(行方向)に簡単につなげることができます。
        # ignore_index=True を指定すると、元のDataFrameの行番号(インデックス)を無視して、
        # 合体後の新しいDataFrameに0からの連番のインデックスを付け直してくれます。
        combined_df = pd.concat(all_data, ignore_index=True)
        print("\n全てのファイルを一つの大きなデータに合体しました!集計に進みます。")
        # 合体したデータがどのように見えるか確認したい場合は、 combined_df.head() と書くと最初の5行を見ることができます。
    else:
        # もし all_data リストが空っぽだった場合(指定パターンに合うファイルが全く見つからなかったなど)の処理です。
        print("\n集計できる有効なデータがありませんでした。集計・出力処理は行われません。")
        # 後続の処理でエラーが発生しないように、空っぽのDataFrameを作成しておきます。
        combined_df = pd.DataFrame()

# --- 注意点 ---
# 今回のコードではシンプルさを優先するため、globで見つかったファイルが処理中に削除されたり、
# ファイル名が予期しない形式であったりする場合の厳密なエラー処理は省略しています。
# 実際の業務で利用する際は、ファイルが存在するかどうかのチェック(os.path.exists()など)や、
# ファイル名の解析が失敗した場合の処理などを追加することを推奨します。
# -----------------

glob.glob(input_file_pattern)を使うことで、指定したパターン(*_売上.xlsx)に合うファイル名を自動でリストアップしています。

そして、そのリスト(input_files)を使って、見つかったファイルを一つずつ処理しています。

これで、ファイルが増えたり減ったりしても、コードを書き換えずに対応できるようになります!

コードを書こう – データを集計する

次に、このまとまったデータ(combined_df)を使って、今回の目標である「支店ごとの合計売上金額」を計算する部分のコードを記述します。

ここでは、pandasの強力な集計機能であるgroupby()メソッドを使用します。

# --- データ集計 ---
# 合体した表 (combined_df) が空っぽではない(集計対象のデータがある)場合のみ集計処理を行います。
if not combined_df.empty: # combined_df.empty は、DataFrameが空かどうかを判定するプロパティです。
    # pandasの groupby() メソッドを使って、「支店名」の列を基準にデータをグループ分けします。
    # 次に、そのグループ分けされたデータの中から「売上金額」の列を選択し、
    # 最後に .sum() メソッドを使って、各グループ(支店)ごとに「売上金額」の合計値を計算します。
    # この結果は、支店名をインデックスとする新しいSeries(pandasの一次元データ構造)として branch_sales_summary に格納されます。
    branch_sales_summary = combined_df.groupby('支店名')['売上金額'].sum()

    print("\n--- 支店別の売上金額合計です ---")
    # 計算して得られた支店別の合計売上金額を画面(コンソール)に表示してみましょう。
    print(branch_sales_summary)
else:
    # 集計対象のデータがなかった場合(combined_dfが空だった場合)のメッセージを表示します。
    print("\n集計するデータがありませんでした。集計結果は生成されません。")
    # 後続の処理でエラーにならないように、空っぽのSeriesまたはDataFrameを作成しておきます。
    branch_sales_summary = pd.DataFrame() # 集計結果がないため、空のDataFrameとします。

この部分のコードは非常に短くシンプルですが、pandasのgroupby()メソッドの強力さを示しています。

combined_df.groupby('支店名')['売上金額'].sum()という一行で、「combined_dfという表を支店名ごとに分け、それぞれのグループの売上金額の合計を計算する」という複雑な集計処理が実現できています。

手作業で支店ごとにデータを並べ替えたり、サブ合計を計算したりする手間が一切不要になります。計算結果はbranch_sales_summaryという変数に格納され、画面にも表示されるようにしています。

コードを書こう – 結果を新しいExcelファイルに保存する

最後に、計算して得られた支店別の合計売上金額(branch_sales_summary)を、新しいExcelファイルとして作業フォルダに保存する部分のコードを記述します。

# --- 集計結果を新しいExcelファイルに保存 ---
# 集計結果 (branch_sales_summary) が空っぽではない(集計が成功している)場合のみ保存処理を行います。
if not branch_sales_summary.empty:
    # ファイルを保存する際にエラーが発生する可能性があるので、try...except ブロックで囲みます。
    try:
        # pandasの to_excel() メソッドを使って、集計結果(branch_sales_summary)をExcelファイルとして保存します。
        # 最初の引数 output_file_name で、保存するファイルの名前(例: '支店別売上合計.xlsx')を指定します。
        # sheet_name='支店別合計売上' で、Excelファイル内のシート名を指定できます。
        # index=True(デフォルト値)なので、集計結果のインデックス(この場合は支店名)も
        # Excelファイルの最初の列として一緒に出力されます。
        branch_sales_summary.to_excel(output_file_name, sheet_name='支店別合計売上')

        print(f"\n--- 集計結果を '{output_file_name}' として作業フォルダに保存しました! ---")
        print(f"'{output_file_name}' を開いて、「支店別合計売上」シートを見てみてくださいね。集計結果が確認できるはずです。")

    except Exception as e:
        # ファイルを保存する際に何らかのエラーが発生した場合(例: 同じ名前のファイルが別のアプリケーションで開かれているなど)、
        # そのエラーをキャッチしてメッセージを表示します。
        print(f"\nエラー:集計結果の保存中に問題が発生しました。詳細: {e}")
        print(f"'{output_file_name}' ファイルがうまく作られなかったか、アクセスできない状態かもしれません。")
else:
    # 集計結果が空だった場合(集計対象データがなかったなど)は、ファイルは作られないことをメッセージで伝えます。
    print("\n集計結果がありませんでした。そのため、新しいExcelファイルは作成されません。")

ここでは、pandasのto_excel()メソッド一つで、集計結果を簡単にExcelファイルとして出力しています。

output_file_nameで指定した名前でファイルが作成され、sheet_nameで指定したシート名で集計結果が書き込まれます。index=True(省略可能ですが、デフォルトで有効です)のおかげで、集計の基準となった支店名も忘れずにファイルに含めることができます。

ここでもtry...exceptブロックを使って、ファイル保存時のエラーに備えています。

コードを実行してみよう!

さあ、いよいよこれまで書いてきたPythonコードを実際に動かして、自動化の成果を確認する時間です!きっと、手作業では考えられない速さで集計が終わるはずですよ。

まず、VS Codeで作業フォルダを開いた状態でターミナルを表示してください。

VS Codeのターミナルが表示されたら、以下のコマンドを入力してEnterキーを押しましょう。

python simple_collect.py

おそらく数秒で実行が終了したのではないでしょうか。

コードが最後まで無事に実行されれば、作業フォルダの中に支店別売上合計.xlsxという名前の新しいExcelファイルができているはずです!

このファイルを開いてみて、ちゃんと支店名とそれぞれの合計売上金額が記載された表が作成されているか確認してみてください。

もしコードに間違いがあったり、ファイルに問題があったりした場合は、エラーメッセージが表示されることもあります。

その場合でも慌てずに、表示されたメッセージをよく読んでみてください

AI(ChatGPTやGemini)をプログラミング学習の強い味方にしよう!

プログラミングを学ぶ過程では、分からないことやエラーに遭遇することが必ずあります。

そんなとき、最近のAI(ChatGPTやGeminiなど)は、皆さんの強力な学習アシスタントになってくれます。

AIを上手に活用することで、学習効率を劇的に高めることができますよ。

エラーが出たとき: コードを実行してエラーメッセージが表示されたら、そのエラーメッセージをそのままAIにコピー&ペーストして、「このエラーはどういう意味ですか?」「どうすればこのエラーを修正できますか?」と質問してみましょう。AIはエラーの原因を分析し、具体的な解決策や修正すべきコードの場所を教えてくれます。

コードの書き方を知りたいとき: 「PythonでExcelファイルを読み込むにはどうすればいいですか?」「pandasを使って特定の列の合計を計算するコードを教えてください」のように、やりたいことを具体的に質問すれば、AIは目的に合ったPythonコードの例を生成してくれます。生成されたコードを参考に、自分のコードを書いてみましょう。

解説が難しいとき: プログラミングの解説記事や書籍を読んでいて、特定の概念やコードの意味がどうしても理解できない場合、その部分をAIに提示して「ここが理解できません。もっと簡単な言葉で説明してもらえませんか?」「別の例えを使って説明してもらえませんか?」と質問してみてください。AIは様々な角度から説明を試みてくれるため、理解の助けになることが多いです。

アイデアを相談したいとき: 「こんなExcel作業を自動化したいんだけど、Pythonで実現可能ですか?」「どんな機能を追加すればもっと便利になりますか?」といった、より高次のアイデアや設計に関する相談にも、AIは役立つヒントや方向性を示してくれることがあります。

ただし、AIが生成する情報が常に100%正しいとは限らないという点には注意が必要です。AIの回答を鵜呑みにせず、必ずご自身の目で生成されたコードを確認したり、実際に動かしてみたり、Pythonの公式ドキュメントや信頼できる情報源と照らし合わせてみたりすることが大切です。

もう少しステップアップしたいな、と思ったら

今回のシンプルな「複数のExcelファイルをまとめて合計売上金額を集計する」という自動化に成功し、Pythonの面白さを感じられたら、ぜひ次のステップとして以下のようなことにも挑戦してみませんか?

グラフを表示してみる

集計結果をただ数値で見るだけでなく、グラフとして視覚化すると、データの傾向や支店間の比較などがより分かりやすくなります。

Pythonにはmatplotlibseabornといったグラフ描画に特化したライブラリがあります。

pandasで集計した結果をこれらのライブラリに渡すことで、棒グラフや円グラフなどを簡単に作成し、画像ファイルとして保存することも可能です。

集計する項目を変えてみる

今回は「売上金額」の合計を求めましたが、例えば「売上個数」の合計を計算したり、「商品名」ごとに売上金額や売上個数を集計したりと、集計したい項目やグループ分けの条件を変えてみましょう。pandasのgroupby()メソッドは非常に柔軟で、複数の列を組み合わせてグループ分けしたり、合計(.sum())以外の様々な統計量(平均値.mean()、最大値.max()、最小値.min()、個数.count()など)を計算したりすることもできます。

# 例: 支店ごと、さらに商品名ごとの売上金額合計を集計
# groupby()に列名のリスト ['支店名', '商品名'] を渡すことで、複数の条件でデータをグループ分けできます。
branch_product_sales_summary = combined_df.groupby(['支店名', '商品名'])['売上金額'].sum()
print("\n--- 支店別・商品名別の売上金額合計です ---")
# 支店名と商品名の組み合わせごとに集計結果が表示されます。
print(branch_product_sales_summary)

groupby()列名のリストを渡すと、複数の条件でグループ分けできます。

Excelファイルの複数のシートを処理する

Excelファイルにシートが複数ある場合、全部のシートのデータを読み込んで集計したいこともあるかもしれません。pd.read_excel()は、シート名をリストで指定すると、複数のシートを読み込めます。

読み込んだシートのデータを一つにまとめて集計する方法を調べてみましょう。

集計結果をExcel以外の形にする

集計結果をExcelファイルにするだけでなく、CSVファイルにしたり、画面にもっと分かりやすく表示したりする方法も考えてみましょう。

pandasはCSVファイルへの出力も簡単にできます。

エラーが起きても大丈夫なコードにする

現実のデータ処理では、想定外のことが起こり得ます。

例えば、処理対象のファイルが見つからなかったり、Excelファイルの中身が壊れていたり、予期しない形式のデータが含まれていたり、計算中にゼロ割り算のようなエラーが発生したり… こうしたエラーが発生した場合でも、プログラムが突然停止してしまうのではなく、「エラーが発生したよ」とユーザーに知らせて処理を続けたり、エラーの原因をログに記録したり、別の方法を試したりするような、より頑丈なコードに改善していくことは非常に重要です。

Pythonのtry...exceptという機能を使うことで、エラーが発生しそうな処理を囲み、エラーが発生した場合の処理を記述することができます。

まとめ

本記事では、プログラミング初心者の方を対象に、Pythonとデータ分析ライブラリであるpandasを使って、特定のパターンに合う複数のExcelファイルを自動で見つけて読み込み、データを一つにまとめて集計し、その結果を新しいExcelファイルに保存するという一連の自動化プロセスを、シンプルに解説しました。

手作業では非常に手間と時間のかかる繰り返し作業も、Pythonを使うことで効率よく、正確に、そして自動で実行できることを実感していただけたのではないでしょうか。

今回は比較的シンプルな集計の例を題材にしまています。

Pythonプログラムを使えば、アイデア次第でもっと高度な自動化が可能です。

この記事をきっかけに、ご自身のExcel作業でPythonを使った自動化に挑戦してみてください。

そして、今回の例を応用したり、さらにステップアップして様々な機能を取り入れたりすることで、日々の定型作業をもっと楽に、もっと快適にしていきましょう!

コメント

タイトルとURLをコピーしました