Excelでの転記(コピー)は、もはや人がやってはいけない仕事です。
PythonでExcelでの転記を自動化する方法をまとめてみました。
※PythonとExcel by Leitz Phone 1
PythonでExcelを扱う設定
Pythonの初期設定はこちらを参考にしていただければ。
PythonでExcelを使うには、ライブラリといういわれるアプリのようなものをインストールする必要があります。
Excelを扱うライブラリには複数ありますが、転記(コピー)なら、openpyxlが便利です。
WindowsならWindows PowerShell、Macならターミナルで、
pip install openpyxl
と入れ、インストールしましょう。
これで準備完了です。
Excelの転記の基礎
今回の事例は、このようなファイルです。
人ごとに経費精算書があり、
このうち、「尾崎」さんの金額を、この集計表へ
に転記します。
人間なら、
・コピーして貼り付け
・数式を入れる
という方法を使うでしょうが、手間もかかりますし、めんどくさいですし、ミスの可能性もあります。
ここで、Excelの構造について改めて確認しておきましょう。
Excelは、ブック(ファイル)→シート(シート)→セルという構造です。
Excelの数式を使って、転記するなら、
=尾崎!E6
となります。
これはシート名・セル番地を表示したものです。
本来は、さらにブック名(ファイル名)がつき、
=[経費精算書.xlsx1]尾崎!E6
となります。
これをPythonでも使うのです。
自動化するには、Excelマクロ(VBA)という方法もありますが、今回はPythonでやってみます。
PythonによるExcel転記の基礎
Pythonでは次にように書きます。
#ライブラリの読み込み import openpyxl # ワークブックの読み込み wb=openpyxl.load_workbook(r'C:\Users\info0\Dropbox\0 INBOX\経費精算書.xlsx' ,data_only=True) # データの転記 wb['集計']['b2'].value = wb['尾崎']['e6'].value # 保存 wb.save(r'C:\Users\info0\Dropbox\0 INBOX\経費精算書.xlsx')
まず、ライブラリopenpyxlを読み込みます。
これでopenpyxlの機能が使えるようになるのです。
なお、1行目の#からはじまるものは、コメントで、自由に書くことができます。
Python側でも読み取りません。
次に、対象のExcelファイル(ワークブック)を読み込み、wbという変数(箱)に入れます。
wb = ○
で、wbという変数に○を入れるという意味です。
wb = openpyxl.load_workbook(△)
で、△というファイル名のワークブックを読み込みます。
△は、Windowsならエクスプローラー、MacならFinderからコピーしましょう。
頭に、rをつけておくと、問題なく読み込めます。
その後ろにある、data_only=Trueは、値のみ読み込むという意味です。
今回の転記では、値のみ転記すればいいので、こう指定します。
そうでないと、数式をそのまま転記してしまうからです。
次にデータを転記します。
○ = △
で、「○に△を入れる」という意味です。
ここでは、シート「集計」のセルB2にシート「尾崎」のセルE6を入れるので、
wb[‘集計’][‘b2’].value = wb[‘尾崎’][‘e6’].value
と書きます。
Excelの数式と同様、ブック・シート・セルという構造です。
最後に、Excelファイルを保存します。
Pythonの場合
・最後にExcelを保存
・対象のファイルを閉じた状態で実行しなければいけない
というルールがあるのです。
Excelマクロだと、このようなことはなく、プログラム実行後の経過や実行結果を目で見ることができます。
サンプルはこちらからダウンロードできます。
EX-ITサンプル_PythonExcel転記_経費精算書.xlsx
なお、ブック内のシートすべてのデータを転記するということも当然可能です。
こういうことを自動化するのがプログラミングの魅力ですので。
別途記事にする予定です。
Pythonを勉強するだけだとなかなか身につかないことが多いので、よく使うExcelで実践してみましょう。
■編集後記
昨日は、Kindle本を中心に。
ディズニープラス(動画配信)が10月27日から4Kになるとのこと。
うれしいかぎりです。
値段はちょっと上がりますが、ありかなと。
さらには、ドコモアカウント以外から契約できるのも大歓迎。
めちゃくちゃ使いにくいのでドコモアカウント……。
ドコモとかNTTとかJRとか、システム回りは古くさいです。
共通点があるので。
■1日1新→Kindle『1日1新』 ・Instagram『1日1新』
Switch 大逆転裁判1・2
■娘(4歳5ヶ月)日記→Kindle『娘日記』
お医者さんごっこでは、注射をすぐかつ、3本ほど打ってくれます。
自分は、注射嫌いなのに……。
「これが治りますから」と。
のども診てくれ、「赤くなってますね」と。
いろいろ覚えています。
■著書
『税理士のためのプログラミング -ChatGPTで知識ゼロから始める本-』
『すべてをがんばりすぎなくてもいい!顧問先の満足度を高める税理士業務の見極め方』
ひとり税理士のギモンに答える128問128答
【インボイス対応版】ひとり社長の経理の基本
「繁忙期」でもやりたいことを諦めない! 税理士のための業務効率化マニュアル
ひとり税理士の自宅仕事術
リモート経理完全マニュアル――小さな会社にお金を残す87のノウハウ
ひとり税理士のセーフティネットとリスクマネジメント
税理士のためのRPA入門~一歩踏み出せば変えられる!業務効率化の方法~
やってはいけないExcel――「やってはいけない」がわかると「Excelの正解」がわかる
AI時代のひとり税理士
新版 そのまま使える 経理&会計のためのExcel入門
フリーランスとひとり社長のための 経理をエクセルでトコトン楽にする本
新版 ひとり社長の経理の基本
『ひとり税理士の仕事術』
『フリーランスのための一生仕事に困らない本』
【監修】十人十色の「ひとり税理士」という生き方