ソニック事務職7年目が実体験で語る
「Excel関数は使えるけど、これ以上の効率化は難しい」
そう感じている事務職の方は、実はとても多いはずです。私自身、学校事務員として4年以上Excelを使い込んだ後、Pythonに移行した経験があります。
結論から言えば、Excel関数の知識は無駄になりません。むしろ、Excelを使い込んできた人ほど、Pythonの習得が圧倒的に速いのです。
この記事では、Excel関数からPythonへ移行するための最短ルートを、関数対応表・実例コード付きで完全解説します。読み終わる頃には、自分の業務でPythonに置き換えるべき作業が明確になっているはずです。
第1章|なぜExcelから卒業すべきか
Excelには「天井」がある
Excelは素晴らしいツールです。しかし、データ量が増え、業務が複雑になるにつれて、必ず「天井」にぶつかります。
- 数万行を超えると動作が重くなる
- 複雑な処理は関数のネストで読めなくなる
- 毎月同じ作業を手動で繰り返している
- ミスが起きてもどこで起きたか追えない
- 他の人に渡すと「どう使うか分からない」と言われる
私自身、学校事務員時代に就学支援金の判定でExcelを使い込みました。SUMIFやVLOOKUPを駆使し、IF関数を10階層ネストして……それでも、毎年同じ作業を半日かけて繰り返していたのです。
Pythonに移行した今、同じ作業が30秒で終わります。
Excel経験者ほどPythonの習得が速い
「プログラミング未経験だから不安」という方も多いと思います。しかし、Excelを使い込んできた方には、Pythonに必要な基礎が既に身についています。
| Excelで身についている力 | Pythonで活きる場面 |
|---|---|
| 関数の入れ子・条件分岐 | if文・関数定義の理解が早い |
| データの整理・集計 | pandasの操作がスムーズ |
| セル参照・範囲指定 | DataFrameの行・列指定が直感的 |
| VLOOKUPなどの結合処理 | merge / join がすぐ理解できる |
| ピボットテーブル | groupbyの感覚をすぐ掴める |
つまり、Excelの知識は捨てるのではなく、「Pythonの基礎」として活かせるのです。
第2章|Excel関数 vs pandas|完全対応表
Excelでよく使う関数は、pandasにほぼすべて対応する書き方があります。早見表として活用してください。
基本集計関数
| 用途 | Excel関数 | pandasの書き方 |
|---|---|---|
| 合計 | SUM | df[‘列名’].sum() |
| 平均 | AVERAGE | df[‘列名’].mean() |
| 件数 | COUNT | df[‘列名’].count() |
| 最大値 | MAX | df[‘列名’].max() |
| 最小値 | MIN | df[‘列名’].min() |
条件付き集計関数
| 用途 | Excel関数 | pandasの書き方 |
|---|---|---|
| 条件付き合計 | SUMIF | df.groupby(‘A’)[‘B’].sum() |
| 条件付き平均 | AVERAGEIF | df.groupby(‘A’)[‘B’].mean() |
| 条件付き件数 | COUNTIF | df.groupby(‘A’).size() |
| 複数条件合計 | SUMIFS | df.groupby([‘A’,’B’])[‘C’].sum() |
検索・参照関数
| 用途 | Excel関数 | pandasの書き方 |
|---|---|---|
| 値の検索 | VLOOKUP | pd.merge(df1, df2, on=’key’) |
| 値の検索(新) | XLOOKUP | pd.merge(df1, df2, on=’key’) |
| 条件分岐 | IF | df[‘列’].apply(lambda x: …) |
| 複数条件分岐 | IFS | np.select() または apply() |
文字列操作関数
| 用途 | Excel関数 | pandasの書き方 |
|---|---|---|
| 文字列結合 | CONCATENATE | df[‘A’] + df[‘B’] |
| 置換 | SUBSTITUTE | df[‘列’].str.replace() |
| 左から抽出 | LEFT | df[‘列’].str[:n] |
| 文字数 | LEN | df[‘列’].str.len() |
第3章|Excel→Python移行の3ステップ
Excelから一気に切り替える必要はありません。以下の3ステップで段階的に移行するのが、挫折しない最短ルートです。
Step 1:環境構築(1日)
- uvをインストールする
- VS Codeをインストールする
- 動作確認スクリプトを実行する
詳しい手順は別記事「【完全版】uv入門|Pythonの新標準・最速の環境管理ツール」をご覧ください。
Step 2:1つの業務をPython化(1〜2週間)
いきなり全業務をPython化するのは無謀です。まずは「最も時間がかかっている業務」を1つだけ選び、Python化を試みます。
- 月次の売上集計
- 複数ファイルのデータ統合
- 毎週のレポート作成
「全く同じ結果」が出るところまで追い込めば、それが小さな成功体験になります。
Step 3:徐々に範囲を拡大(数ヶ月)
最初の1業務がPython化できたら、似た業務を順次Pythonに移していきます。1ヶ月で1業務、3ヶ月で3業務、半年で5〜10業務をPython化できれば、十分すぎる成果です。
第4章|移行前に知っておくべき5つの違い
Excel経験者がPythonでつまずく代表的な「考え方の違い」を5つ紹介します。
違い1:「セル」ではなく「列・行」で考える
Excelは1つひとつのセル(A1、B5など)を中心に考えます。一方Pythonは、列ごと・行ごとの単位で処理します。
「A2:A100まで合計する」ではなく、「『売上』列をすべて合計する」と考えるのがPython流です。
違い2:「ドラッグ」ではなく「一括処理」
Excelで関数を入れたあと、下にドラッグして全行に適用するのが一般的です。Pythonでは、最初から全行に適用される書き方になります。
# Excelの感覚:1セルずつ計算
# A1に=B1*1.1、A2に=B2*1.1、A3に=B3*1.1...
# Pythonの感覚:一括で計算
df["税込価格"] = df["価格"] * 1.1違い3:「画面」ではなく「ファイル」で完結
Excelは画面上で結果を確認します。Pythonはコードを書いて実行し、ファイル(CSVやExcel)として結果を保存します。
最初は「何が起きているか分からない」と感じますが、慣れると「画面が固まらない」「ファイル管理がしやすい」というメリットを実感できます。
違い4:「やり直し」ではなく「再実行」
Excelで間違えたら、操作を取り消して入力し直します。Pythonの場合、コードを修正して**もう一度実行するだけ**です。
ミスをしても元データは壊れないので、安心して何度でも試行錯誤できます。
違い5:「人間が見る」ではなく「人間とPCで分担」
Excelは人が画面を見て確認するツールです。Pythonは「PCに作業をさせて、人間は結果を確認する」というスタンス。
この発想の転換ができると、業務時間が劇的に減ります。
第5章|実例1|SUMIF / VLOOKUP の置き換え
SUMIFをpandasで書き換える
Excelで「商品ごとの売上合計」を出すには SUMIF を使います。
Excelの場合:
=SUMIF(B:B, "商品A", C:C)pandasの場合:
import pandas as pd
df = pd.read_excel("売上データ.xlsx")
# 商品ごとの売上合計
result = df.groupby("商品名")["売上"].sum()
print(result)商品Aだけでなく、すべての商品の売上が一発で表示されます。
VLOOKUPをpandasで書き換える
Excelで「商品マスタから単価を取得して売上を計算」する場合、VLOOKUPを使います。
Excelの場合:
=VLOOKUP(B2, 商品マスタ!A:B, 2, FALSE) * C2pandasの場合:
import pandas as pd
# 売上データと商品マスタを読み込む
df_sales = pd.read_excel("売上データ.xlsx")
df_master = pd.read_excel("商品マスタ.xlsx")
# 商品マスタから単価を結合
df = pd.merge(df_sales, df_master, on="商品名", how="left")
# 売上を計算
df["売上金額"] = df["数量"] * df["単価"]
print(df)merge関数で「結合」、その後の計算は1行で全行に適用されます。
第6章|実例2|ピボットテーブルの置き換え
ピボットテーブルはExcelの花形機能。pandasではgroupbyやpivot_tableで再現できます。
基本のピボット
「商品×店舗のクロス集計」をpivot_tableで実現します。
import pandas as pd
df = pd.read_excel("売上データ.xlsx")
# 商品×店舗のクロス集計
result = df.pivot_table(
index="商品名",
columns="店舗",
values="売上",
aggfunc="sum"
)
print(result)Excelのピボットテーブルと全く同じ結果が、コード5行で得られます。
複数の集計を同時に
# 合計と平均を同時に
result = df.pivot_table(
index="商品名",
values="売上",
aggfunc=["sum", "mean", "count"]
)
print(result)月次集計の自動化
# 日付列を月単位に変換して集計
df["日付"] = pd.to_datetime(df["日付"])
df["月"] = df["日付"].dt.to_period("M")
result = df.pivot_table(
index="月",
columns="商品名",
values="売上",
aggfunc="sum"
)
print(result)毎月手動でピボットを作り直す必要がなくなります。コードを実行するだけで最新の集計が出ます。
第7章|実例3|複雑な条件分岐の置き換え
「IFをネストしたら関数が読めなくなった」――これは典型的な悩みです。Pythonなら、複雑な条件分岐もスッキリ書けます。
IFのネストをPythonで
Excelで「売上に応じてランク付け」する場合:
=IF(A2>=1000, "S", IF(A2>=500, "A", IF(A2>=100, "B", "C")))pandasではnp.selectを使うと格段に読みやすくなります:
import pandas as pd
import numpy as np
df = pd.read_excel("売上データ.xlsx")
# 条件と対応する値をリストで指定
conditions = [
df["売上"] >= 1000,
df["売上"] >= 500,
df["売上"] >= 100,
]
choices = ["S", "A", "B"]
# 該当しない場合は"C"
df["ランク"] = np.select(conditions, choices, default="C")
print(df)条件と結果が分離されているため、後から読み返したときに何をしているか一目瞭然です。
第8章|Excel共存戦略|全部置き換えなくていい
「Pythonに移行する」と決めたからといって、すべてをPython化する必要はありません。むしろ、ExcelとPythonの**得意分野を使い分ける**のが最も賢い戦略です。
Excelが得意な業務
- 少量データの可視化(数十行〜数百行)
- 即興の試算・シミュレーション
- 人と共有しやすいレポートの最終形
- 数式の見せ方が重要な計算書
Pythonが得意な業務
- 大量データの処理(数千行以上)
- 毎月・毎週繰り返す定型作業
- 複数ファイルの統合・集計
- 再現性が必要な処理
- 複雑な条件分岐・データクレンジング
CEO戦略:理想の使い分け方
私自身が実践している使い分けです。
- データの読み込み・整形・集計:Python(pandas)
- 結果の最終確認・微調整:Excel
- 人に見せるレポート:Excel または PowerPoint
- 複雑な分析・予測:Python
つまり、「裏側の処理はPython、表側のアウトプットはExcel」という分業体制が、もっとも生産性が高くなります。
第9章|移行で挫折しないコツ
Pythonへの移行で挫折する人と、続けられる人の違いは何か。私の経験から、5つのコツを紹介します。
コツ1:完璧を目指さない
最初は「動けばOK」で十分。コードが汚くても、実行できて結果が正しければ価値があります。後から少しずつ改善すればよいのです。
コツ2:1つの業務に絞る
「全業務をPython化したい」と意気込むと、必ず挫折します。まずは1つの業務だけ。それが完璧に動くようになってから、次の業務に進みましょう。
コツ3:エラーを怖がらない
Pythonで作業すると、必ずエラーが出ます。これは普通のことです。エラーメッセージをそのままGoogleにコピペすれば、ほとんどの解決策が見つかります。
コツ4:Excelとの違いを楽しむ
「Excelならこう書くのに、Pythonだとこう書くのか」と発見していく感覚が、学習を続ける原動力になります。
コツ5:成果を可視化する
「Excelで2時間かかっていた作業が、Pythonで1分になった」――この時間短縮を記録していきましょう。モチベーションが続きます。
第10章|まとめ&次のステップ
この記事のまとめ
- Excelには「天井」があり、Pythonに移行すれば突破できる
- Excel経験者ほど、Pythonの習得は早い
- 関数対応表を見れば、移行のイメージが具体化する
- 一気に全部置き換える必要はなく、共存させるのが最強
- 完璧を目指さず、1つの業務から少しずつ始めるのが鉄則
次に読むべき記事










FAQ
Excelの「次」へ、踏み出そう
Excelの知識は、Pythonに移行する上で最高の武器になります。これまで身につけてきた関数の知識、データ整理の感覚、ピボットテーブルの理解――すべてがPythonで活きるのです。
「Excelで何時間もかかっていた作業が、Pythonで数秒で終わる」――その瞬間の感動を、ぜひ体験してください。
最新の解説記事は、新着記事から順次公開しています。X(旧Twitter)でも更新情報を発信していますので、ぜひフォローしてください。
この記事を書いた人
ソニック|バックオフィス7年目の業務効率化ブロガー。学校事務職員時代の4年以上にわたるExcel業務経験から、現在のデータサイエンス業務まで、リアルな実体験をもとにしたノウハウを発信中。


コメント