Python×Excelで100個のファイルを1分で合体させる話。非エンジニアが職場で『魔法使い』に見られた瞬間

月末の悪夢、100ファイル経費精算

月末の金曜日、午後3時。私のPCのデスクトップは。各部署から送られてきた「経費精算_〇〇部.xlsx」という無数のファイルで完全に埋め尽くされていた。その数、ざっと100個。今日中にこれらを1つのマスターファイルに統合し。全社データを経理システムに流し込まなければならない。マウスを握る右手がじっとりと汗ばみ、画面を見つめ続ける目の奥が鈍く痛み始める。

共有フォルダから100個のファイルを一つずつ自分のローカルにダウンロードし。ZIPを解凍してフォルダに並べたときのこと。エクスプローラーのスクロールバーがミリ単位の極小サイズになっているのを見た瞬間。思わず「うわっ」と声が出た。上司は「サクッとまとめといて」と軽く言い残して会議に向かったが。取り残された私の胃は鉛を飲んだかのように重くなった。

まず、1ファイルを開いてコピペする作業を30秒と仮定した場合の。100ファイル分の単純所要時間(50分)。

単純作業の試算と現実の落とし穴

単純計算をしてみる。1つのファイルを開き、必要なデータ範囲を選択してコピーし。マスターファイルに貼り付けて閉じる。どれだけ急いでも、1ファイルにつき30秒はかかる。100ファイルなら最低でも50分だ。しかし。これはあくまで「一切の手戻りやパソコントラブルがない」という奇跡を前提とした机上の空論にすぎない。実際には、同時に複数のExcelを開くことでPCのメモリが悲鳴を上げ。動作が極端にもっさりしてくる。冷却ファンが唸り声を上げ。マウスポインターが砂時計になったまま数分間フリーズすることも珍しくない。そして何より、人間の集中力など。せいぜい最初の20ファイルで完全に尽きてしまうのです。

コピペが招く悲劇と絶望

コピペ作業を無言で黙々と続けることは、一見すると地道で誠実な努力のように思える。しかし、その本質はまったく違う。手動での単純作業の連続は、仕事ではなく。ただ致命的なミスが発生する瞬間を待っているだけの危険な時間帯です。

次に、人間は機械ではないため、必ず間違える。100回のコピペを無傷で乗り切ることなど、最初から不可能に近い。マウスのドラッグが1ミリずれて行の選択を間違えれば。それ以降のデータがすべてずれる。どこかで空白行が混じれば。VLOOKUP関数やSUM関数の集計結果が根底から狂ってしまう。

過去に同じ作業を手作業でやった際。途中の部署のExcelファイルに不要なヘッダー行が混ざっていた。気づかずにそのまま一番下に貼り付け続けた結果。最終集計の金額が数百万単位で合わなくなり。深夜2時まで原因のセルを目視で探し続ける羽目になった。誰もいないオフィスで一人。ディスプレイの眩しさに目を細めながら感じた絶望感は今でも忘れられありません。

退屈な単純作業の終わり

精神的な苦痛はそれだけではない。「自分は今、パソコンの代わりになっているのではないか」という強烈な虚無感。これが会社員の心を確実に削っていく。コピーして、シートを切り替えて、末尾を探して、貼り付ける。この無機質な反復運動は、本来人間の脳がやるべき仕事ではない。私たちは常にミスを恐れながら、息を詰めてマウスを操作し続けるしかないのだろうか。答えは明確に「否」です。

PandasでExcel自動結合

一方で、そんな無間地獄から私を救い出したのが。Pythonというプログラミング言語だった。特にデータ分析用ライブラリである「Pandas(パンダス)」の存在が大きい。非エンジニアにとって「プログラムを書く」という行為は。黒い画面に暗号を打ち込むような特別な才能が必要なものに聞こえるかもしれない。だが、その仕組みを紐解けば、やっていることは驚くほどシンプルで論理的です。

Pandasには。Excelの表データを「データフレーム」という四角い箱としてメモリ上に読み込む機能がある。Excelというソフトを実際に立ち上げるわけではない。データだけを裏側で直接吸い上げるため、画面の描画処理が一切発生せず。人間が手で開くよりも何百倍も速い。100個のファイルがあれば、100個の箱を用意する。そして、Pythonの標準機能である「glob(グロブ)」モジュールを使う。これが実に優秀な働きをするのです。

データの自動収集と結合

globは。指定したフォルダの中から条件に一致するファイルを芋づる式に見つけ出す仕組みだ。たとえば「*.xlsx」と指定すれば。フォルダの奥底に眠っているすべてのExcelファイルのパス(場所)を一瞬でリストアップしてくれる。人間がエクスプローラーを目で追いながら。一つずつクリックして探す必要などありません。

そのため、見つけてきた100個の箱をどうするか。ここで「pd.concat(コンキャット)」という結合専用の命令が登場する。これは、複数のデータフレームを縦にガチャンと連結する強力なコマンドだ。レゴブロックを下から上へ積み上げるように。100個の表が一切のズレなく綺麗に一列に整列する。手作業による行のズレや。コピペ漏れといったヒューマンエラーが入り込む隙は100%存在しない。機械は指示された通りに、ただ正確にブロックを連結するだけなのです。

ここで一度立ち止まって考えてみてください

Pythonや自動化スキルを体系的に習得して、ITエンジニアとしてのキャリアを切り開きたい方には「Enjoy Tech!(エンジョイテック)」が選択肢のひとつです。

プログラミングスクール Enjoy Tech!(エンジョイテック) →

泥臭いパスとExcel、初歩の壁を越えデータ結合

理屈はわかっても、いざ自分でコードを書くとなると手が止まる。非エンジニアが最初にぶつかる壁は、複雑なアルゴリズムではなく。もっと些細で泥臭いところにある。

例えば、ファイルの場所を示すパスの指定だ。Windows環境でフォルダのパスをコピーすると「\(バックスラッシュ。または円マーク)」が使われる。しかし。Pythonではこれが特別な意味を持つエスケープ文字として解釈されてしまい。容赦なくエラーを吐き出す。これを「/(スラッシュ)」に書き換えるか。パスの文字列の前に「r」をつけるというルールを知らないだけで。平気で数時間溶かすことになる。

エラーとの格闘、泥臭い調整、完璧なExcel結合

しかし、「FileNotFoundError: [Errno 2] No such file or directory」という真っ赤なエラーメッセージが画面を埋め尽くした。パスの指定にバックスラッシュが混じっていたのが原因だ。フォルダのプロパティからコピペしただけなのになぜ、と泣きそうになった。ネットで検索して「r”C:\Users…”」と書く解決法を見つけたとき。あまりの単純さに全身の力が抜けた。

泥臭い調整、Excelデータ結合の完璧な成果

拡張子の落とし穴もある。古い社内システムから出力された「.xls」と。新しい「.xlsx」が混在していると、読み込み処理で引っかかる。さらには。現場のExcelファイルは「A1セルから綺麗にデータが始まっている」ことなど稀だ。上部に「タイトル」や「作成日」「承認者印の枠」といった無駄な情報が陣取っている。Pandasで読み込む際、引数に「skiprows=3」などと指定し。不要な行を読み飛ばす処理を加えなければならない。そういった泥臭い調整を経て、コードを完成させた。行数にしてわずか10行足らず。

実行ボタンを押す。画面がほんの一瞬だけ瞬き、処理完了のマークが点灯した。出力先のフォルダを開くと。そこには「結合完了.xlsx」という新しいファイルが鎮座している。恐る恐るファイルを開いて末尾の行を確認する。完璧だった。100個のファイル、数万行に及ぶデータが、1分の狂いもなく1つにまとまっている。オフィスの喧騒の中で、私の心の中だけが奇妙なほど静かだった。

Pythonで業務自動化、信頼獲得

さらに、「え、もう終わったの?」
提出先である経理担当の先輩は、時計を見て目を丸くした。いつもなら夕方から夜にかけて。私が死んだような顔でマウスをカチカチ言わせている時間帯だ。それが、ファイルの回収を締め切ってからわずか数分で提出されたのだから。無理もありません。

「どうやったの?」と聞かれ、Pythonで自動化したことを説明した。周囲の見る目が明らかに変わるのを感じた。これまで「真面目に手作業をこなす事務員」だった私が。一瞬にして「業務を劇的に効率化できる魔法使い」になった瞬間だった。

隣の席の同僚が「私のもやってほしい」と。毎月手作業で集計している勤怠データの入ったUSBメモリを持ってきた。コードのファイルパスとシート名を書き換えて実行するだけで。彼女が毎月3時間かけていた作業が10秒で終わった。彼女の「嘘でしょ…」という呟きと、その後の異常な感謝のされ方に。なんだか少し照れくさくなった。

まず、Python導入前後のミス修正にかかる月間の手戻り時間(平均120分から0分へと激減)

Pythonで得る信頼、キャリアの盾

職場でPythonを使えるようになると、ポジショニングが根本から変わる。ただ作業が早くなるだけではない。「絶対に間違えない仕組み」を持っている人間として。周囲からの信頼度が跳ね上がるのだ。手作業のミスを疑って。印刷した紙と画面を照らし合わせながら何度も見直しをする必要がない。その精神的な余裕は、何物にも代えがたい価値がある。プログラミングは、単なる効率化ツールではなく、自分の身を守るための盾にもなる。

Pythonで業務効率化、時間と誇りの回復

毎日、終わりの見えない単純作業に消耗している人は多い。画面と睨めっこしながら。Ctrl+CとCtrl+Vを延々と繰り返す日々に疑問を感じていないだろうか。その作業は、決してあなたの能力が低いから時間がかかっているわけではない。単に「適した道具」を使っていないだけだ。木を切るのに、チェーンソーがあるのに素手で挑んでいるようなものです。

次に、プログラムを書くことは、決して一部の才能あるエンジニアだけの特権ではない。特にPythonは、私たちのような現場の人間が日常の雑務を蹴散らすために存在する。最強のツールだ。たった数行のコードが、数時間の苦役を跡形もなく消し去ってくれる。最初は環境構築やエラーに悩まされるかもしれない。パスの指定でつまずき、シート名が違うと怒られ、思い通りに動かないこともある。それでも、一度動く仕組みを作ってしまえば。それは半永久的にあなたの代わりに働き続ける。文句も言わず、ミスもせず。一瞬で仕事を終わらせる優秀な部下を手に入れたも同然です。

Pythonで取り戻す時間と誇り

もう、意味のない手作業で夜遅くまで会社に残る必要はない。Pythonという武器を手にし、本来人間がやるべき考える仕事に時間を使おう。それは単なる業務効率化を超えて、会社員としての「時間」と「誇り」を取り戻すための。確実な第一歩になる。

関連リンクとチェックリスト

学習サービスとアンケート

このスキルを活かしてさらに前へ進むなら

Pythonや自動化スキルを体系的に習得して、ITエンジニアとしてのキャリアを切り開きたい方には「Enjoy Tech!(エンジョイテック)」が選択肢のひとつです。

プログラミングスクール Enjoy Tech!(エンジョイテック) →