¥ </> 簿記の仕訳を
「transfer関数」として理解する

簿記の仕訳を理解するには、「金銭的価値の転送」として捉えることがポイントです。

私自身、簿記を学び始めたとき「借方」「貸方」という用語に混乱しました。
お金を借りたのに「貸方」に記録する。
直感に反します。
でも、転送先・転送元という視点で見直したら、すべてが繋がりました。

関連記事

1. 仕訳は transfer 関数

仕訳は「お金の形が変わる様子」を記録するものです。

たとえば1万円で本を買ったら、
「現金」という入れ物から「本」という入れ物へ1万円分の価値が移動した、と記録する。

左側(借方)に「何に変わったか」、
右側(貸方)に「何から出たか」を書くルールになっています。

プログラミング風に書けば、こうなります1

transfer(amount: 金額, to: 借方, from: 貸方)
移動させる(金額分を、どこへ、どこから)Code language: HTTP (http)

コードのように書いたのは、順序が大事だからです。

仕訳 = transfer関数 transfer(amount, to: 借方, from: 貸方) 具体例:現金10万円で備品購入 従来の表記 借方:備品 10万円 貸方:現金 10万円 transfer表記 transfer(100000, to: “備品”, from: “現金”)

具体例で見てみましょう。
現金10万円で備品を購入した場合:

借方:備品 10万円 / 貸方:現金 10万円

これは次のように読み替えられます。

transfer(100000, to: "備品", from: "現金")
Code language: JavaScript (javascript)

現金という受け皿から
備品という受け皿へ、
・10万円分金銭的価値が移動した、
ということになります。

現金が備品に姿を変えたわけです。

この金額を記録する受け皿のことを、勘定科目(Account)といいます。

仕訳では、転送先・転送元という順番が大事で、
必ず、転送先←転送元 とお金が動いています。

つまり、仕訳は、左向きの矢印を意識すると、読み取りやすいです。

1.1. すべての取引は金銭的価値の流れ

商品を販売して現金を受け取った場合:

借方:現金 50万円 / 貸方:売上 50万円

コード風に書くなら、

transfer(500000, to: "現金", from: "売上")
Code language: JavaScript (javascript)

現金←売上(仕事の成果)

売上という受け皿(収益の源泉)から、現金へ金銭的価値が流れ込む。
実際には商品という物的価値が顧客に渡っていますが、仕訳では金銭的価値の移動だけを記録します。
商品がお金に変わったわけです。

給料を支払った場合:

借方:給料 30万円 / 貸方:現金 30万円
transfer(300000, to: "給料", from: "現金")
Code language: JavaScript (javascript)

給料(労働力)←現金

現金から、給料(費用の発生先)へ金銭的価値が出ていく。
つまり、お金を従業員の労働という価値に変えたわけです。

どの取引も、必ず「to(借方)←from(貸方)」の金銭的価値の流れになっています。

2. 借方と貸方は受け側と出す側

ここで、銀行から100万円借りた場合を見てみましょう。

借方:現金 100万円 / 貸方:借入金 100万円

「お金を借りたのに、なぜ借入金が貸方なの?」と思いますよね。
でも transfer で考えれば明快です。

transfer(1000000, to: "現金", from: "借入金")Code language: JavaScript (javascript)

現金←借入金

借入金アカウント(銀行からの資金源)から、現金アカウント(手元)へ金銭的価値が移動した。
このとき、信用的価値(返済義務)は逆方向に発生しています。
つまり、自分の信用をお金に変えたわけです。

借方・貸方 = 受け側・出す側 借方(Debit) 金銭的価値の 受け側 貸方(Credit) 金銭的価値の 出す側 語源:ラテン語 debere(負う) / credere(信用する) 日本語訳の混乱 「借方」「貸方」は福沢諭吉による翻訳 → 直感に反するため混乱しやすい

つまり、「借方」は受け取る、「貸方」は出す、という「物の貸し借り」の方向を表すと思うとわかりやすいです。

  • 借方(Debit):金銭的価値の受け側
  • 貸方(Credit):金銭的価値の出す側

2.1. 結果←原因の順序

もう一つ気づいたことがあります。
仕訳は「結果←原因」の順で記述されています。

仕訳は「結果 ← 原因」の順序 借方(結果) 何が起きたか 貸方(原因) なぜそうなったか 具体例:備品購入 結果:備品が増えた (借方) 原因:現金を使った (貸方)
借方(結果)/ 貸方(原因)

結果←原因

備品を購入した例なら:

  • 結果(借方):備品という金銭的価値が増えた
  • 原因(貸方):そのために現金という金銭的価値を使った

日常会話では「現金を使って備品を買った」と「原因→結果」の順で話しますが、簿記は逆なんですね。
そこがわかりにくさの原因です。

ただし、プログラミングの代入文は同じ左向きの構造です。
左辺に結果(新しい状態)、右辺に原因(計算元)を書く。

y := f(x)  
結果 ← 計算

簿記はこちらの思想だったわけです。

3. 実は借金の記録から

とはいえ、日本語の「借方」「貸方」という訳語や左右の順序はわかりにくく、混乱の元凶に見えます2
どうして、こんな直感に反する順序になったのでしょう。
それは、簿記で最初に記録していたのは、金銭的価値の移動ではなかったからだと思います。

複式簿記の歴史 – 600年前から 15世紀 ベネチア商人 債権債務の 記録開始 1494年 ルカ・パチョーリ 『スムマ』出版 体系化 現代 世界中で 使用される 標準システム デビット(debere)・クレジット(credere) → 取引相手との信用関係を記録 → 抽象的なアカウント概念へ進化

むしろ、お金の反対の目に見えないものを記録していました。
それは、「借金」

この複式簿記は、15世紀のベネチア商人が使い始めたシステムです3
当時の商人は、取引相手への債権(と債務)を記録するために、Debit(debere = 負っている)と Credit(credere = 信用する)という概念を使いました45
というのも、お金はすでに自分の手元にありますが、特に相手に貸しているお金は、しっかり記録に残しておかないと、回収しそこなってしまいます。

15世紀:債権・債務の記録 Debit(債権の記録) 相手が私に負っている 100 debit_record( 100, “客”) Credit(債務の記録) 私が相手に負っている 500 銀行 credit_record( 500, “銀行”)

これを関数で書くなら、

credit_record(amount: 金額, debtor: "債務者(相手)", creditor: "(自分の)債権の理由")
debit_record(amount: 金額, debtor: "(私の)債務の理由", creditor: "債権者(相手)")Code language: JavaScript (javascript)

たとえば、商品を掛けで販売した場合(支払いが未精算)。
商人の視点:「ジョバンニに絹を販売し、私に100ドゥカート負っている」

credit_record(100,  debtor: "ジョバンニ",  creditor: "(私の)絹の在庫" )
Code language: JavaScript (javascript)

委託販売の清算なら、
代理商人マルコが売上金を持っている

credit_record(200,  debtor: "マルコ(代理人)",   creditor: "(私の)香辛料の売上" )
Code language: JavaScript (javascript)

貿易船への出資も、
航海が終わるまでの債権は

credit_record(1000,   debtor: "東方貿易航海",   creditor: "(私の)現金" )
Code language: JavaScript (javascript)

もちろん、同じように自分の借金も記録しておきます。
たとえば、資金を借り入れた場合は、
商人の視点:「私がメディチ銀行に500ドゥカート負っている」

debit_record(500,  debtor: "(私の)借入への返済義務",   creditor: "メディチ銀行" )
Code language: JavaScript (javascript)

借り手が貸し手に債務を負う」という方向で見ると、矢印は自然な右向きです。

3.1. 一つの書き方にまとめられた

画期的なのは、このcredit_recordも debit_recordも、一つの transfer で表現できること。

// 例1(掛け販売)
transfer(100, to: "ジョバンニ(売掛金)", from: "(私の)売上")

// 例2(借入)
transfer(500, to: "(私の)現金", from: "メディチ銀行(借入金)")
Code language: JavaScript (javascript)

これを、表の形に書きやすくしたものが「仕訳」だったわけです。

最初は人と人との信用関係を記録していたのが、やがて「現金」や「商品」といった抽象的な勘定科目(アカウント)にも同じ論理を適用するようになった。

古風な debit_record / credit_record は:

  • 人間関係中心:誰に対する債権/債務か
  • 視点が明確:常に「私」を基準
  • 具体的:実在する人物や物品

現代の transfer は:

  • 勘定科目中心:あらゆる取引に適用可能
  • 視点が中立:取引を基準
  • 汎用的:売上や仕入れなどの業績を集計できる

興味深いのは、当時から金銭的価値の移動と、物的価値や信用的価値の移動が表裏一体だったという点です。
商品を掛けで売れば、物的価値は顧客へ、信用的価値(債権)は商人へ移動する。
この二面性を同時に記録する仕組みが、600年前に完成したんです6

この進化が、簿記を「個人の記憶」から「企業の情報システム」へ変えたんですね。
まるで、電流の向きと電子の移動の向きが反対なようです。

4. わかってしまえばシンプル

結局、簿記の仕訳とは:

transfer 金額 to 受け側(結果) from 出す側(原因)
Code language: JavaScript (javascript)

これだけです。
どんな複雑な取引も、この構造に分解できます。

「借方」「貸方」という言葉に惑わされず、「金銭的価値の受け側」「金銭的価値の出す側」と読み替える。
そうすれば、簿記はただのデータ転送システムに見えてきます。

そして、その裏側では必ず何らかの価値(物的、労働的、信用的)が逆方向に移動している。
この二面性こそが、複式簿記が「複式」と呼ばれる理由なのかもしれません。

  1. 複式簿記では、すべての取引を「どこからお金が出て、それが何に使われたか」という形で記録します。この考え方は、プログラミングにおけるデータ転送の概念と本質的に同じです。 – 借方 – Wikipedia
  2. 「debit」「credit」をそれぞれ「借方」「貸方」と翻訳したのは福沢諭吉です。明治時代に複式簿記を日本に紹介した際、彼の著書『帳合之法』でこの訳語が使われました。初期の簿記は債権・債務を記載する目的が主で、相手方から見た視点で記録していたため、この訳語になったとされています。 – 借方 – Wikipedia
  3. 複式簿記の起源については諸説ありますが、1494年にルカ・パチョーリ(Luca Pacioli)が著した『スムマ(算術、幾何、比および比例全書)』で、ヴェネツィア式簿記として複式簿記が初めて体系的に説明されました。パチョーリは「近代会計学の父」と呼ばれています。 – ルカ・パチョーリ – Wikipedia
  4. Debitの語源はラテン語の”debere”(負う、借りている)で、Creditの語源は”credere”(信用する、信じる)です。これらの言葉は、もともと商人間の債権債務関係を記録するために使われていました。 – 【借方・貸方】は英語でなんて言う?米国公認会計士がやさしく解説!
  5. ルネサンス期のヴェネツィアでは、東方貿易で栄えた商人たちが帳簿記入によって業績を把握していました。複式簿記は財産状況と損益を計算するために不可欠なシステムでした。パチョーリの『スムマ』では、財産目録、日記帳、仕訳帳、元帳、決算など、現代の簿記にも通じる知識と理論が詳細に説明されています。 – 近代会計学の父「ルカ・パチョーリ」
  6. パチョーリの『スムマ』は1494年に出版され、その簿記論の部分は各国語に翻訳されて普及し、複式簿記の知識がヨーロッパ中に広まりました。現在世界各国で使用されている複式簿記は、500年以上前にパチョーリによって記されたものが基礎となっています。 – レオナルド・ダ・ヴィンチと複式簿記の意外な関係