Skip to content

Accounting Intelligence Blog

Talk about tax and corporate finance in Japan

  • Our profile
  • Pricing: 値段表
  • お問合せフォーム Contact Form
  • Career Oppotunities
  • Home
  • 2019
  • May
  • 21
  • 経理でPythonの使い方(1)

経理でPythonの使い方(1)

Posted on May 21, 2019 By user
プログラミングで効率化

世の中で経理に求められている役割には教科書的なものがあると思っています。経理の役目は
支払いや、
給与計算、
売上の集計と請求・入金の管理、
会計ソフトの入力、
などの現業的なものから、
予算の取りまとめ、
実績の集計、
予実の比較とフィードバックなどの
経営の要となる役割もあります。そう、経理は会社の経営にとってとても重要な役割を担っているのです。私は予算を立てて実績と比較することは会社が成長するうえで、必要不可欠なものだと考えています。会社は、成り行き任せにしても大きくならないのです。
そんな会社の成長をサポートするうえで、現業部分で時間を取られて付加価値の高い部分がおろそかになってしまうのはもったいないです。是非、プログラミングを覚えて、リーティンな業務を効率していただけたらと思います。
ここでご紹介するのは、売上のボリュームが多いお客様の資料を入力するうえで、弊事務所が実際に使っているPythonの例です。今回は売上が対象ですが、仕訳がめんどくさい給与の仕訳などにも威力を発揮すると思います。
売上ですが、通常は会社の販売管理のシステムに入っているか、急成長した中小企業ならもしかしてまだエクセルで管理しているかもしれません。こんな風に。

エクセルで毎月の売り上げをまとめて、これを経理が弥生会計などの会計ソフトに手で入力するのが典型的なパターンかと思います。
これをPythonで自動化すると、ボタン一つでCSVで仕訳データが作れます。Pythonなどのプログラミング言語のいいところは、条件分岐などの複雑な条件も対応できることです。エクセルだとIF関数が複数必要な場合など複雑になりがちですがプログラミング言語なら、プログラミング言語がそもそも条件分岐を処理するために出来てるようなものなので、そんなことにはなりません。
CSVを使った弥生ファイルはこんな感じになります。

実際に使ったコードはこんな感じになります。
#1ではエクセルのモジュールをインポートしています。Pythonではエクセルデータも簡単に扱う事が出来ます。
#2ではエクセルに個別の仕訳データを書き込んでいます。
#3でエクセルのファイルを開いています。
#4でエクセルのデータを実際にシートから読み込んでいます。データがなくなるところをifの関数を使って自動で判定しています。
やってみると意外と簡単なので、是非、挑戦してみたら良いと思います。
こちらのサンプルには実際にPythonをインストールするところを書いていませんが、それもそれほど難しくありません。こちらのリンク先からAnacondaをインストールして、AnacondaのメニューからJupyter Notebookを開き、下記のコードをコピペするだけです。ファイルの保存場所やシートの名前は各自皆様の環境に合わせて修正をお願いいたします。


#(1) Pythonでエクセルを読み込むモジュール
import openpyxl
#(2) エクセルの
def renderJournalCSV(journal, sheet, rowNum):
sheet[“A” + str(rowNum)] = 2000
sheet[“D” + str(rowNum)] = journal.Date
sheet[“E” + str(rowNum)] = journal.DrAcc
sheet[“F” + str(rowNum)] = journal.DrSubAcc
sheet[“G” + str(rowNum)] = journal.DrCostCenter
sheet[“H” + str(rowNum)] = journal.DrCTaxCode
sheet[“I” + str(rowNum)] = journal.Amount
sheet[“J” + str(rowNum)] = journal.DrCTaxAmount
sheet[“K” + str(rowNum)] = journal.CrAcc
sheet[“L” + str(rowNum)] = journal.CrSubAcc
sheet[“M” + str(rowNum)] = journal.CrCostCenter
sheet[“N” + str(rowNum)] = journal.CrCTaxCode
sheet[“O” + str(rowNum)] = journal.Amount
sheet[“P” + str(rowNum)] = 0
sheet[“Q” + str(rowNum)] = journal.Description
sheet[“T” + str(rowNum)] = 0
sheet[“Y” + str(rowNum)] = “no”
def makeJournal_Sales(bookDate, name, amount, desc):
journal = Journal()
journal.Date = bookDate
journal.DrAcc = “売掛金”
journal.DrSubAcc = name
journal.DrCostCenter = “”
journal.DrCTaxCode = “対象外”
journal.Amount = amount
journal.DrCTaxAmount = 0
journal.CrAcc = “売上高”
journal.CrSubAcc = name
journal.CrCostCenter = “”
journal.CrCTaxCode = “課税売上8”
journal.CrCTaxAmount = 0
journal.Description = desc
return journal
class Journal:
def __init__(self):# コンストラクタ
self.Date = “”
self.DrAcc = “”
self.DrSubAcc = “”
self.DrCostCenter = “”
self.DrCTaxCode = “”
self.Amount = 100
self.DrCTaxAmount = 0
self.CrAcc = “”
self.CrSubAcc = “”
self.CrCostCenter = “”
self.CrCTaxCode = “”
self.CrCTaxAmount = 0
self.Description = “”
#3
wb = openpyxl.load_workbook(“C:/Users/ichir/onedrive/デスクトップ/SalesReport.xlsx”)
sheet1 = wb[‘report’]
sheet_result = wb[‘result’]
journals = []
#4
for rowCount in range(3, 105): # rangeの範囲の終わりは含まれないので、1行多くする。
if sheet1.cell(row=rowCount,column=1).value is not None:
transactionDate = sheet1.cell(row=rowCount,column=1).value
clientName = sheet1.cell(row=rowCount,column=2).value
amount = sheet1.cell(row=rowCount,column=3).value
description = sheet1.cell(row=rowCount, column=7).value
journal = makeJournal_Sales(transactionDate, clientName, amount, description)
journals.append(journal)
print(len(journals))
cnt = 1
for journal in journals:
sheet_result = wb[‘result’]
renderJournalCSV(journal, sheet_result, cnt)
cnt += 1
wb.save(“C:/Users/ichir/onedrive/デスクトップ/result.xlsx”)
print(“work completed”)

Post navigation

❮ Previous Post: 事業計画PDCA
Next Post: 弥生給与の出力データをPythonで仕訳データにする ❯

Recent Posts

  • Japan’s Consumption Tax Refund System
  • Dependent Deduction for Non-Resident Dependents in Japanese Income Tax
  • Accountify開発報告
  • New Angel Taxation from 2024
  • What are the differences and the common characteristics between a company (KK or GK) and a branch?

Recent Comments

No comments to show.

Archives

  • April 2025
  • May 2024
  • April 2024
  • April 2023
  • January 2023
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • January 2021
  • November 2020
  • July 2020
  • April 2020
  • March 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • February 2016
  • December 2015
  • October 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015

Categories

  • About our firm
  • Accounting and DX
  • Consumption Tax
  • Corporate Tax
  • cross border related tax
  • Estate Tax
  • Investing in Japan
  • M&A
  • Personal Tax
  • routine tax practices
  • Setting up organization
  • Starting a business in Japan
  • Tax
  • Tax saving
  • TK
  • Uncategorized
  • Valuation of stock in private company
  • Withholding Tax
  • キャリア
  • システム開発
  • スタートアップの経理と税金
  • プログラミングで効率化
  • ブロックチェーンと仮想通貨
  • ランニング
  • 中国語
  • 中文税金
  • 事業の成長・経営
  • 事業承継
  • 企業再編
  • 会社・支店の設立関係
  • 会社の解散・清算
  • 会社節税
  • 会計事務所独立・経営
  • 会計基準関係
  • 国際税務
  • 小さな会社の経理と税金
  • 山
  • 投資スキームと税金
  • 未分類
  • 本
  • 法人税関係
  • 洋書の読書ガイド
  • 消費税(日本語)
  • 監査など
  • 相続
  • 英語学習
  • Our profile
  • Pricing: 値段表
  • お問合せフォーム Contact Form
  • Career Oppotunities

Copyright © 2025 Accounting Intelligence Blog.

Theme: Oceanly by ScriptsTown