趣味

プログラミング挑戦してみた!エクセルの転記作業を自動化しよう その1

更新日:

ディスプレイ広告1

うえぴです!

最近プログラミングのお勉強をしていなかったので、ちょこっと始めました。
理由は、転記作業を自動化したかったから!

プロジェクト毎の予算管理ファイルなどを1つにまとめたい!

会社毎によっては、例えば予算などプロジェクト毎にエクセルファイルで管理しているところもあると思います。
具体的に言うと

プロジェクト1-予算ファイル1
プロジェクト2-予算ファイル2
プロジェクト3-予算ファイル3
みたいな感じ。

でも、期末とか年度末になると、各T、各G、各事業毎に実際の予算の使用状況を1つのファイルにまとめて提出!
なんてことないでしょうか!?

そうなると、予算まとめファイルを作って、予算ファイル1~3の内容を予算まとめファイルに一つずつ開いてコピーして、貼り付けての繰り返し…

こんな誰にでもできる作業やけど、人によってはGのリーダーだからしなきゃいけなかったり…。ただの単純な作業で規模によってはめっちゃ数ある…orzみたいな。

簡単な転記作業はpythonで自動化しちゃおう!

ということで、本当にそんなことできるのか挑戦してみました。
内容がよくわからない方、取り合ずコピペして動かしてみてください!
私も既存のコードのつぎはぎで作ったので、100%理解してはいません。
とはいえ、それでもできてしまうライブラリの豊富さには感動ですね。
環境はjupyterを使用しているので、まだ環境設定していない方は、まずanacondaで環境構築から始めましょう!
今回のサンプルコードは一番下にまとめてあります。

用意したファイルは以下のファイルはこんな感じ
1枚目のシートには固財のまとめ、2枚目のシートには予算No.とその工事内容となっているエクセルファイルを3つ用意
名前は、sample1、sample2、sample3

シート1
シート2

pythonで3つのファイルを1つに統合する

まずは、3つファイルの1枚目のシートをすべて読み込みます。

----------------------------------------
import pandas as pd

#1つめのシートを読み込む
df1 = pd.read_excel('data/sample1.xlsx')
df2 = pd.read_excel('data/sample2.xlsx')
df3 = pd.read_excel('data/sample3.xlsx')
----------------------------------------

シート番号を指定しなければ、1枚目のシートが読み込まれます。
読み込まれたデータを出力してみると

----------------------------------------
print(df1)
print(df2)
print(df3)
----------------------------------------

ちゃんとsample1~3のファイルの1枚目のシートが読み込まれていることがわかりました。
続いて、読み込んだ3つのデータを統合してみます。
出力すると

----------------------------------------
df1_concat = pd.concat([df1,df2,df3])
print(df1_concat)
----------------------------------------

おー、どうやら結合できてるみたい。
さらにこれを新たにエクセルファイルとして出力。
ファイル名は予算まとめ1

----------------------------------------
df1_concat.to_excel('予算まとめ1.xlsx',sheet_name="sample1-3",index=False)
----------------------------------------

確かにフォルダ内に新しく予算まとめ1のエクセルファイルができています。

開いてみるとsample1~3の1枚目のシートのデータが統合されていることが確認できました。

大量のエクセルファイルを統合する場合

大量のエクセルファイルを統合するとなると、現状のコードだとファイル名を一つずつ打ち込む必要がでてきます。
それってめっちゃ非効率…。
転記作業を効率化しようとしてるのに、ファイル名全部手打ちは本末転倒!
ということで、

次回、1つのフォルダ内にあるたくさんのエクセルファイルの名前を打ち込まなくても一気に統合できる方法を記載したいと思います!
あと、2枚目のシートの統合方法も!

お楽しみにー!(している人がいれば…)

サンプルコードまとめ

----------------------------------------
#ライブラリインポート
import pandas as pd

#1つめのシートを読み込む
df1 = pd.read_excel('data/sample1.xlsx')
df2 = pd.read_excel('data/sample2.xlsx')
df3 = pd.read_excel('data/sample3.xlsx')

#読み込んだデータを出力
print(df1)
print(df2)
print(df3)

#読み込んだデータを統合
df1_concat = pd.concat([df1,df2,df3])
print(df1_concat)

#統合したデータをエクセルに出力保存
df1_concat.to_excel('予算まとめ1.xlsx',sheet_name="sample1-3",index=False)
----------------------------------------

jupyter Notebookで操作するとこんな感じ

最後まで読んでいただきありがとうございます!

いいね!

ディスプレイ広告1

A8netSBIネオモバイル

-趣味

Copyright© 機械エンジニアパパの徒然なるブログ , 2022 All Rights Reserved Powered by STINGER.