お悩み女子毎月の集計とコピペに時間を取られているけれど、Pythonで何から手を付ければいいのか分からない……
Pythonで業務効率化するときは、大きな仕組みを作るより、繰り返している小さな作業を1つ、手元で動かすところから始める方が進めやすくなります。最初の1本が動けば、次に何を足せばよいかも見えてきます。
この記事では手作業をPythonで減らすまでの全体像を、5つのステップに分けて、動くコードつきで紹介します。載せているコードはWindows 11 で Python 3.12.10 と openpyxl 3.1.5 を使って動くことを確かめています。
- Pythonで効率化できる作業と、向かない作業の見分け方
- 手元で動かすまでの5ステップ
- CSVを集計してExcelに出す、動く小さな例
- 続けるための準備(スクリプト化・失敗対策・定期実行)
- 元データを壊さないための安全面
Pythonで業務効率化できる作業の選び方
Python は便利ですが、すべての作業に合うわけではありません。最初に自動化する作業を選ぶことが、全体でいちばん大事です。
向いている作業の特徴
向いているのは、手順が決まっていて、同じことを繰り返す作業です。入力と出力がファイル(CSV・Excel・PDFなど)になっていると、さらに作りやすくなります。
- 部署ごとに届くCSVを1つの表にまとめる(複数CSVをまとめる記事)
- 毎月の売上や経費を集計して、Excelの表にする(月次レポートの設計の記事)
- フォルダ内のファイル名をそろえて直す(ファイル名の一括整理の記事)
向かない作業
逆に、毎回やり方が変わる作業は向きません。年に数回しかない作業も、作る手間の方が大きくなりがちです。社内システムの画面を人が操作するだけの作業は、ファイルやAPIで取り出せるかを先に確かめます。個人情報を含む作業は扱ってよいかを会社に確認してからです。
迷ったときの3つの確認
- どのくらいの頻度で行うか(毎月・毎週なら候補)
- 手順を紙に書き出せるか(書けないなら、まだ早い)
- 結果が間違っていたら、誰がどう困るか(影響が大きいなら慎重に)
見積もりの考え方は自動化の費用対効果の記事にまとめています。
Pythonで手元の作業を動かす5ステップ
進め方は5つのステップです。最初から定期実行や共有まで作らず、手元で1回動くところまでを最初のゴールにします。
5ステップの流れ
表の「できた目安」を満たしてから、次のステップへ進みます。目安を満たす前に先へ進まないことが、手戻りを防ぎます。
最初の1本の大きさ
最初に選ぶのは、入力が1種類、出力が1つで、毎月くり返している作業です。この記事のサンプルはCSVを読んでExcelを1つ作るだけの20行ほどのコードです。小さく作って、結果を人が確かめてから、少しずつ広げます。
作業の選定とPythonの準備
ステップ1と2は、コードを書く前の準備です。ここを丁寧にすると、あとの手戻りが減ります。
①作業を選んで手順を書き出す
選んだ作業はコードを書く前に4行のメモにします。この4行がそのまま、あとでAIにコードを頼むときの説明にもなります。
- 入力:部署ごとのCSV(売上_月.csv)が、dataフォルダに入っている
- 処理:店舗ごとに売上を合計する
- 出力:店舗と売上合計を並べたExcelの表
- 確認:売上の合計が元のCSVの合計と一致する
②Pythonを手元に入れる
Python のインストール手順はPythonのインストール手順の記事にまとめています。Windows では、2026年10月時点で公式サイトの案内が変わっているので、そちらを見てください。
インストールせずに始めたい場合は、インストールとColabの選び方の記事で判断のしかたを紹介しています。会社のExcelやCSVを毎月扱うなら、手元に入れる方が向いています。
CSVを集計してExcelへ出力する例
ステップ3として、複数のCSVを店舗ごとに合計し、Excelに出すコードを動かします。Excelの操作には openpyxl を使うので、入っていなければコマンドプロンプトで pip install openpyxl を実行します。
材料のCSV
作業用のフォルダに data フォルダを作り、次の2つのCSVを UTF-8 で保存します。見出しは「店舗」と「売上」です。
売上_2026-01.csv
店舗,売上
東京,1200
大阪,980
東京,300
売上_2026-02.csv
店舗,売上
東京,1100
大阪,1050
名古屋,700
これらは動作を確かめるための作り物のデータです。実際の作業では、会社のファイルのコピーを使います。
集計して出力するコード
同じフォルダに summarize.py という名前で、次のコードを保存します。
import csv
from collections import defaultdict
from pathlib import Path
from openpyxl import Workbook
data_dir = Path("data")
totals = defaultdict(int)
row_count = 0
for csv_path in sorted(data_dir.glob("売上_*.csv")):
with open(csv_path, encoding="utf-8", newline="") as f:
for row in csv.DictReader(f):
totals[row["店舗"]] += int(row["売上"])
row_count += 1
wb = Workbook()
ws = wb.active
ws.append(["店舗", "売上合計"])
for store, total in totals.items():
ws.append([store, total])
wb.save("売上集計.xlsx")
print(f"{row_count}行を読み込み、{len(totals)}店舗を集計しました")
print(f"売上の合計: {sum(totals.values()):,}")
流れは3つです。data フォルダの「売上_」で始まるCSVを順に開き、見出しを列名にして店舗ごとに合計します。それを Excel の新しいブックに書き出して、売上集計.xlsx として保存します。
実行結果と確かめ方
PowerShell で作業用のフォルダに移動し、次のコマンドで実行します。
python summarize.py
実行すると、次のように表示されます。
6行を読み込み、3店舗を集計しました
売上の合計: 5,330
売上集計.xlsx には、東京2600・大阪2030・名古屋700の3行が入りました。合計の5,330が元のCSVの売上を足した数と合っているかは、人が確かめます。Excel で2つのCSVの売上列を足して比べれば、ずれに気づけます。
スクリプト化・失敗対策・定期実行
1回動いたら、ステップ4と5で「毎月使える形」に整えます。ただし、一度にすべて足さず、動きを確かめながら進めます。
④1本のスクリプトにまとめる
フォルダ名やファイル名のように、月ごとに変わる部分はコードの上の方にまとめて書きます。サンプルでは data や売上集計.xlsx の部分です。変更の場所が決まっていると、人に渡すときも説明しやすくなります。
毎回コマンドの最後に値を付けて動かしたい場合は、コマンド化の記事とargparseの記事が参考になります。
⑤失敗に備えて定期的に動かす
動かすうちに、ファイルがない・列名が違うといった失敗が出ます。止まった原因を後から追えるように、エラー処理とログを足します。詳しくは例外処理の記事とログの記事にあります。
決まった時間に動かすなら、Windowsタスクスケジューラの記事の手順が使えます。最初から定期実行にしないことが大切で、手動で何回か動かして結果を確かめてから設定します。
元データ・個人情報・AIのコードの確認
自動化は間違えると一度にたくさんのファイルを壊せます。始める前に、次の3点を決めておきます。
元のファイルを壊さない
サンプルでは、元のCSVには書き込まず、結果を別のファイルに保存しています。実際の作業でも、最初はコピーしたファイルで試します。
同じ名前の読み取り専用ファイルがあるまま実行すると、次のエラーで止まります。Excel で開いたままのときも、保存に失敗することがあります。
PermissionError: [Errno 13] Permission denied: '売上集計.xlsx'
個人情報と会社の規則
顧客名や従業員の情報を含むファイルは、扱ってよいかを会社に確認してから使います。確認する項目は個人情報を扱う前のチェックリストの記事にまとめました。テスト用には実際のデータではなく作り物のデータを使います。
AIに書かせたコードの確認
お悩み女子AIに頼めば、そのまま使えるコードが出てくるんじゃないの?
コードの下書きはAIに頼めますが、動かす前に人が確かめる点があります。読み込むフォルダと、書き込むファイルの名前が合っているか。ファイルを消したり、上書きしたりする処理が入っていないか。結果の合計が元のデータと合うか。コードを渡すときは、手順メモの4行も一緒に伝えると、意図に沿ったコードが出やすくなります。
Pythonの業務効率化に関するよくある質問
PythonとGASの選び方、未経験からの始め方、同僚への渡し方を確認します。
- Pythonと GAS はどちらから始めればよいですか?
-
目安として、データが Google スプレッドシートの中で完結するなら GAS、手元の CSV や Excel をまとめるなら Python が向いています。選び方はExcel作業の自動化でPythonとGASを比べた記事でも扱っています。
- プログラミング未経験でも始められますか?
-
手順を書き出せて、短いコードを1行ずつ読めれば、小さな作業から始められます。最初は、この記事のようなサンプルを動かし、読み込むフォルダ名を変えて試すところまでを目標にします。分からない箇所はAIにコードの意味を聞く方法もあります。
- 作ったスクリプトを同僚に渡すには、何が必要ですか?
-
同僚のPCにも Python が必要です。使い方を書いたメモ(入力するファイルの場所、実行のしかた、出力される場所)を添えて渡します。
Pythonで小さな作業を動かすための要点
Python で業務効率化を進めるポイントを整理します。
向く作業:手順が決まっていて、ファイルが入力と出力になる、繰り返しの作業。
5ステップ:作業を選ぶ、Pythonを入れる、ファイルを読み書きする、1本にまとめる、失敗に備えて続ける。
最初の1本:入力1種類・出力1つの作業で、手元で1回動かして、結果を人が確かめる。
安全面:元のファイルは別名で保存し、個人情報は会社に確認し、AIのコードは動かす前に確かめる。
最初のゴールは、1つの作業が手元で動いて、結果が合っていることです。定期実行や共有は、そのあとで足せます。
次に読むとよい記事をまとめました。
参考資料
csv(CSVファイルの読み書き) | Python 3 ドキュメント
pathlib(オブジェクト指向のファイルシステムパス) | Python 3 ドキュメント
openpyxl ドキュメント
