PythonでExcelの別シートからデータを集める方法
Pythonを使って、Excelの別シートからデータを集めることもできます。
※Pythonの画面 by FUJIFILM X-Pro3+90mmF2
Pythonの前提
PythonでExcelの操作をするには、
・Pythonのインストール、ダウンロード
・PowerShell(Windows)、ターミナル(Mac)で、openPyxlをインストール
という手順が必要です。
この記事や動画を参考にしていただければ。
PythonでExcelの別シートから転記
今回の事例は、こういったシートが4月から翌年3月まであり、その合計値を
シート「集計」に集めるというものです。
合計値のセルはシートごとに異なります。
同じ場所の場合はもっとシンプルです。
PythonでExcelの転記をするなら、こう書きます。
wbはファイルを意味し、wb['4月’]でシート「4月」、wb['4月’]['d38’]でシート「4月」のセルD38という意味です。
シート「4月」のセルD38をシート「集計」のセルB1に転記する場合、
・Excelを操作するライブラリ(アプリのようなもの)を開く
・Excelファイルにアクセスする(値のみ)
・転記する
・保存する
という手順になります。
Excelファイルの指定をするには、エクスプローラー(Windows)・Finder(Mac)でパス名をコピーしましょう。
Pythonは、Excelファイルを閉じた状態で実行する必要があり、最後に保存する必要があります。
これをすべてのシートで繰り返すように変えていきましょう。
PythonでExcelのすべてのシートから転記
Pythonで繰り返しをするときに使うのは、forです。
その下のインデントがついている部分(Tab)を繰り返します。
まずは、このように変えてみましょう。
wsというのは各シートを意味します。
wb['4月’]をwsに書き換えます。
これで各シートを指定できるのです。
このd38は、こう書くこともでき、さらに
38をws.max_rowに書き換えましょう。
各シートで、最終行(max_row)は違うのでこう指定するのです。
Pythonの場合、文字と数字をくっつける(+)ことはできないので、ws.max_rowをstr(string=文字)で文字にします。
このままだと、b1にずっと転記してしまうので、1行ずつずらします。
rowに1を入れて、まずはB1、次にB2、B3……と増やしていくようにこう変えましょう。
全体はこんな感じです。
Excelファイルも置いておきます。
EX-ITサンプル_複数Excelシート集計Python.xlsx
#ライブラリの読み込み import openpyxl #設定 file=r'/Users/yoichiinoue/Dropbox/EX-ITサンプル_複数Excelシート集計Python.xlsx' # Excelファイルの読み込み wb=openpyxl.load_workbook(file ,data_only=True) #転記先の行 row=1 #転記 for ws in wb.worksheets: wb['集計']['b'+str(row)].value = ws['d'+str(ws.max_row)].value row=row+1 # 保存 wb.save(file)
なお、Excelマクロ(VBA)だと、こう書きます。
比べていただくと同じようなことをしていることがわかるかと。
Excelマクロだと
・別途インストール、設定が必要ない(ほぼ)
・Excelファイルを開きながら実行できる
というメリットがあり、
Pythonだと、
・Excel以外の自動化にも使いやすい
・Excelと他のアプリの組み合わせの自動化もしやすい
という特徴があります。
Pythonのほうがシンプルで、最終行をmax_rowと入れて気軽に使えるのも便利です。
試してみていただければ。
5/26 YouTube入門セミナー
5/29 GAS入門セミナー
ひとりしごと専門 井ノ上陽一写真館
オンラインサロン『ひとりしごと研究会』
■個別コンサルティング
■税務顧問・ブログ・社長限定メルマガ
■動画音声オンラインショップ New!『経理入門』
■週刊メルマガ『雇われない雇わない生き方への道』
■YouTube『効率化コンサルタント・税理士の井ノ上陽一の仕事術』
■メールコンサルティング・顧問
■執筆の依頼
■メルマガ「税理士進化論」
Kindle新刊『odaiba』
■『雇われない・雇わない生き方』無料送付
Twitter『井ノ上 陽一 |独立後の効率化』
Facebook『井ノ上 陽一』→独立後の仕事日記
Instagram 『1日1新』
■編集後記
昨日は、メールコンサルティング、週刊メルマガ執筆、YouTube収録など。
カメラのレンズ試しも。
■1日1新→Kindle『1日1新』 ・Instagram『1日1新』
チョップドサラダデイズ
■娘(4歳8ヶ月)日記→Kindle『娘日記』
勤労感謝の日を保育園で教えてもらったようで、「パパとママにありがとうって言う」と楽しみにしています。
パパも一応含めてくれているようです。
ブログは仕事と認めてくれているので。
会社に行ってないけど。
■著書
ひとり税理士の自宅仕事術
リモート経理完全マニュアル――小さな会社にお金を残す87のノウハウ
ひとり税理士のセーフティネットとリスクマネジメント
税理士のためのRPA入門~一歩踏み出せば変えられる!業務効率化の方法~
やってはいけないExcel――「やってはいけない」がわかると「Excelの正解」がわかる
AI時代のひとり税理士
新版 そのまま使える 経理&会計のためのExcel入門
ひとり税理士のIT仕事術
フリーランスとひとり社長のための 経理をエクセルでトコトン楽にする本
新版 ひとり社長の経理の基本
毎日定時で帰っても給料が上がる時間のつかい方をお金のプロに聞いてみた!
『ひとり税理士の仕事術』
『フリーランスのための一生仕事に困らない本』
『社長!「経理」がわからないと、あなたの会社潰れますよ』
『そのまま使える経理&会計のためのExcel入門』
【監修】十人十色の「ひとり税理士」という生き方