経理×Python。請求・売上・仕入の仕訳をコマンド3つで自動化する
※背景画像は在宅勤務で自動化処理が走っているのをふむふむと見てしまう私のイメージです
こんにちは。自動化が好きなアライです。
エンジニアのバックグラウンドを活かした経理オペレーションの仕組化、自動化、効率化が得意です。
本noteではPythonとExcelを使って、私が仕事で担当している株式会社Aの請求・売上・仕入の仕訳計上作業及び、グループ会社Bの売上の仕訳計上作業を効率化したことについて書いていこうと思います。
前提として、株式会社Aは年間契約の前受モデルであり、グループ会社Bから製品を仕入れて販売する形となっています。商流としては
グループ会社B -> 株式会社A -> 顧客
という流れになります。
なので仕訳としては
株式会社Aの仕訳
請求仕訳 売掛金 - 対クライアント / 前受収益 - 対クライアント
売上仕訳 前受収益 - 対クライアント / 売上 - 対クライアント
仕入仕訳 仕入高 - 対グループ会社B / 買掛金 - 対グループ会社B
(仕入高の金額は契約により割合が決められておりそれを売上に掛ける)
グループ会社Bの仕訳
売上仕訳 売掛金 - 対株式会社A / 売上 - 対株式会社A
という、4本の仕訳を計上することになります。
請求仕訳が両建てになっているので四半期決算の際には整理仕訳を計上しますがそこは割愛し、四半期以外の決算作業について書いていきます。
ざっくり業務の流れ
販売管理システムから当月分の請求レポートをダウンロードする(レポートには顧客別に契約期間や金額が記載されている)
作業Excelに貼付し、請求レポートを元に請求仕訳が作成される
作業Excel内の別シートで前受収益の管理表が請求レポートを元に作られているので、その管理表の当月の列の金額で売上仕訳、グループ会社Bへの仕入仕訳、グループ会社Bの売上仕訳が作成される
諸々確認し、問題ないことをチェックする
Excel内の4つの仕訳シートを適切な範囲でコピーし、新しいExcelに貼付、CSVで保存する
会計システムにログインし、4つの仕訳をインポートする
↓請求レポートのイメージ↓
↓前受収益管理表のイメージ↓
意外と前受収益管理表作るのが大変でしたね。。
実際には請求別で償却月が違いますし、15日開始のものや初期費用を請求する場合もあったりして、それらを包含する数式が結構大変でしたがその話はまたどこかで(Excelの数式の話なので)
自動化前の状態と工数
Excelを作りこんでいるおかげで請求レポートを貼付すればあとは内容の確認と仕訳CSVの作成、会計システムへのインポートで終わりです。
内容確認含めて大体1時間あれば終わるなーという工数感です。
ただ販売管理システムにログインしてレポート落としたり、4つの仕訳シートを適切な範囲でコピーしてCSVにしたり、会計システムにログインして仕訳インポート作業を4回したりというのは地味に面倒くさいのと意外と時間食いますね。
自動化後の状態と工数
本題です。
上記の業務の流れの1~3と5~6を自動化しました。
4の内容確認は人間の目でするべきなので、ここは引き続き自分でしています。
内容確認のみが業務になったので1時間だった工数が30分あれば終わるなーという温度感に変わりました。(スバラシイ!!)
これがエンジニアの力ですね。パワー💪
自動化の方法については以前書いた記事を見てください。
大体200行ぐらいPythonコードを書きました。
業務の話なのでコードを公開することはできませんが、いつかサンプルコードを書いてその解説などもできたらしたいです。
モザイク処理していますが自動化前と後の作業画面を録画したものをのせるので良かったら見てください。
↓自動化前の手作業の状態(8倍速)
↓自動化後(速度調整なし)
4の工程の内容確認は省き、作業部分のみ録画しています。
動画見てもらえたらわかりますが退屈な手作業の部分が自動化されているのがわかると思います。
ブラウザには触れていません。プログラムが操作してくれています。
実際に実行しているのは以下のコマンドです。
自動化後の動画の黒い画面でコマンドを打っています。
プロジェクトフォルダにautomate.pyというファイルがありまして、コマンド実行時の引数によって動かす関数を分けているといった構成になっています。
1~3の工程を自動化するコマンド
販売管理システムにログインし請求レポートをダウンロード、それを作業Excelファイルの貼付シートに貼付する
python automate.py
5の工程を自動化するコマンド
Excelファイル内の4つの仕訳シートの適切な範囲をコピーし新しいExcelに貼付、それをCSVで保存する
# opはoutputの略
python automate.py op
6の工程を自動化するコマンド
会計システムにログインし、上記で出力されたCSVをインポートする
# jeはjournal entryの略
python automate.py je
今後取り組んでいきたいこと
細かな技術部分での改善点はまだまだありますね。。。
今回は色々な業務のあるなかの一例を自動化したので、他の業務もどんどん自動化していきたいです。
またコマンドベースだとコマンド打つのも面倒くさくなってきているので、簡易アプリを作ってGUIでスクリプト実行できるようにしたりとか、あとは例えば第一営業日の朝10時にスクリプトが実行されるようにスケジューラ組んで実行する手間さえもなくすようにしたりとか、チャレンジしたいです!
まとめ
読んでいただきありがとうございます!!
取り組んでいることを書いてみましたが、いかがだったでしょうか?
今後も経理に関すること、自動化に関すること、Pythonのこと、Excelのことなど、経理プロセスの効率化について取り組んだことを発信していきますので、少しでも良いなと思ったらスキお願いします!
励みになりますので!!
では次回の記事でお会いしましょう。