• #連結会計
  • #連結精算表
  • #一部売却
  • #TypeScript
  • #テスト自動化
  • #eurekapu
開発eurekapuメモ

概要

連結精算表シミュレータの売却パターンに関するワークシートデータを生成し、ソースデータ(画像)との照合レビューを実施した。

対象パターン

パターン番号パターン名ファイル名
売却1-1一部売却(80→70%)支配継続worksheet-data-partial-sale-80-70.ts
売却1-2一部売却(税効果)worksheet-data-partial-sale-tax.ts
売却2一部売却(80→20%)連結除外→持分法worksheet-data-partial-sale-80-20.ts
売却3一部売却(80→10%)連結除外→原価法worksheet-data-partial-sale-80-10.ts
売却5一部売却(80→70→20%)2段階売却worksheet-data-partial-sale-80-70-20.ts

実装の流れ

1. 売却パターン1-1(80→70%)の実装

支配継続型の一部売却。S社株式を10%売却するが、70%の持分を維持するため連結は継続する。

仕訳の構成:

  • S社修正仕訳(土地の評価差額計上)
  • 開始仕訳(前期までの連結修正の引継ぎ)
  • NCI損益(非支配株主に帰属する当期純利益)
  • のれん償却
  • 株式売却損益の修正
  • 売却益の資本剰余金振替
const ajeAdjustments: Record<string, Record<string, number>> = {
  // 開始仕訳
  'aje-opening': {
    '510': -100000,  // 資本金の消去
    '520': -76020,   // 利益剰余金の消去
    '535': -10000,   // 評価差額の消去
    '540': 11880,    // のれんの計上
    '230': -160000,  // S社株式の消去
    '530': 37900,    // NCIの計上
  },
  // NCI帰属当期純利益
  'aje-nci': { '520': -800, '530': 800, '695': 800 },
  // のれん償却
  'aje-goodwill': { '540': -1320, '640': 1320, '520': -1320 },
  // 株式売却修正
  'aje-sale-adj': {
    '230': 20000,    // S社株式の戻入
    '530': 19350,    // NCI増額
    '670': 650,      // 売却益(修正分)
    '520': 650,      // P/L効果のB/S反映
    '532': 19350,    // NCI変動額トラック用
  },
  // 売却益の資本剰余金振替
  'aje-sale-cs': { '670': -5650, '525': 5650, '520': -5650 },
}

2. 売却パターン3(80→10%)の実装

連結除外パターン。70%の売却により支配を喪失し、残存10%は原価法適用となる。

パターン番号の修正: 当初「売却パターン2」としていたが、正しくは「売却パターン3」に修正。80→20%(持分法移行)が売却パターン2、80→10%(原価法移行)が売却パターン3。

const acquisitionPattern: AcquisitionPatternInfo = {
  patternNumber: 3,  // ← 修正: 2 → 3
  patternName: '子会社株式の一部売却(連結除外・原価法)',
  patternType: 'sale',
  steps: [
    { percent: 80, label: '支配獲得' },
    { percent: 10, label: '一部売却後' },
  ],
}

仕訳の構成(連結除外):

  1. 開始仕訳の振戻し
  2. S社貸借対照表の連結除外
  3. 売却前持分の評価およびNCI振戻し
  4. 株式売却損益の修正
  5. S社株式帳簿価額の修正

3. 売却パターン2(80→20%)の実装

連結除外後、持分法適用となるパターン。60%の売却により支配を喪失するが、20%の持分により関連会社として持分法を適用する。

仕訳の構成:

  • 前期までの処理(S社修正、開始仕訳、NCI損益、のれん償却)
  • 60%売却による持分減少
  • 連結除外(20%持分法移行)

4. 税効果を含む設例(partial-sale-tax)

支配継続型の一部売却に税効果を加えた設例。

追加される仕訳列:

  • 繰延税金負債取崩し(aje-dtl-reversal
  • 株式売却修正(aje-sale
  • 法人税等調整(aje-tax-adj
const sheets: WorksheetSheet[] = [
  {
    id: 'worksheet-sum',
    name: '連結精算表(全体)',
    columns: [
      // ... 省略 ...
      { id: 'aje-dtl-reversal', name: '繰延税金負債取崩し', journalLink: 'dtl-reversal' },
      { id: 'aje-sale', name: '株式売却修正', journalLink: 'sale' },
      { id: 'aje-tax-adj', name: '法人税等調整', journalLink: 'tax-adj' },
      // ... 省略 ...
    ],
  },
]

5. 売却パターン5(80→70→20%)の実装

2段階売却パターン。X5年3月期に10%売却(80→70%、支配継続)、X6年3月期に50%売却(70→20%、連結除外→持分法)。

このパターンは複数会計期間にまたがる売却を扱うため、実務上の複雑なケースをカバーする。

ソースデータとの照合レビュー

レビュー観点

  1. 個別F/S数値の整合性: P社・S社の各勘定科目が画像と一致するか
  2. 仕訳金額の整合性: 各連結修正仕訳の借方・貸方金額が正しいか
  3. B/Sバランス: 各列で資産合計 = 負債純資産合計となるか
  4. P/Lの整合性: 当期純利益 = 収益 - 費用 となるか
  5. S/Sの整合性: 期首残高 + 当期変動 = 期末残高 となるか

照合に使用した画像

  • partial-sale-worksheet-80-70.png: 80→70%パターンの精算表

発見した不整合と修正

80→10%パターンでのパターン番号誤り:

  • 誤: patternNumber: 2
  • 正: patternNumber: 3

連結除外後の適用方法(持分法 vs 原価法)によりパターン番号が異なる:

  • 80→20%: 持分法適用 → 売却パターン2
  • 80→10%: 原価法適用 → 売却パターン3

テストコードへのデータセット追加

dataset-registry.ts への登録

import { partialSale8070Dataset } from './worksheet-data-partial-sale-80-70'
import { partialSale8020Dataset } from './worksheet-data-partial-sale-80-20'
import { partialSaleTaxDataset } from './worksheet-data-partial-sale-tax'
import { partialSale8010Dataset } from './worksheet-data-partial-sale-80-10'
import { partialSale807020Dataset } from './worksheet-data-partial-sale-80-70-20'

const topicEntries: TopicEntry[] = [
  // ... 取得パターン省略 ...
  { id: 'partial-sale-80-70', name: '売却_1-1_一部売却(80→70%)', dataset: partialSale8070Dataset },
  { id: 'partial-sale-tax', name: '売却_1-2_一部売却(税効果)', dataset: partialSaleTaxDataset },
  { id: 'partial-sale-80-20', name: '売却_2_一部売却(80→20%)', dataset: partialSale8020Dataset },
  { id: 'partial-sale-80-10', name: '売却_3_一部売却(80→10%)', dataset: partialSale8010Dataset },
  { id: 'partial-sale-80-70-20', name: '売却_5_一部売却(80→70→20%)', dataset: partialSale807020Dataset },
]

テストファイルへのインポート追加

consolidated-worksheet.test.ts に各データセットをインポートし、B/Sバランス検証・仕訳貸借一致検証のテストケースに追加した。

import {
  sheets as sheetsPartialSale8070,
  journalCategories as journalCategoriesPartialSale8070,
  accountRows as accountRowsPartialSale8070,
  individualCompanies as individualCompaniesPartialSale8070,
  partialSale8070Dataset,
} from '../app/components/consolidated-worksheet/data/worksheet-data-partial-sale-80-70'

// 他のパターンも同様にインポート

売却パターン一覧(最終版)

パターン番号遷移適用特徴
売却1-180→70%連結継続支配継続、売却損益は資本剰余金へ
売却1-280→70%連結継続税効果あり
売却280→20%持分法連結除外、持分法への移行
売却380→10%原価法連結除外、原価法への移行
売却480→0%なし全部売却
売却580→70→20%持分法2段階売却

関連ファイル

データファイル

  • apps/web/app/components/consolidated-worksheet/data/worksheet-data-partial-sale-80-70.ts
  • apps/web/app/components/consolidated-worksheet/data/worksheet-data-partial-sale-80-20.ts
  • apps/web/app/components/consolidated-worksheet/data/worksheet-data-partial-sale-80-10.ts
  • apps/web/app/components/consolidated-worksheet/data/worksheet-data-partial-sale-tax.ts
  • apps/web/app/components/consolidated-worksheet/data/worksheet-data-partial-sale-80-70-20.ts
  • apps/web/app/components/consolidated-worksheet/data/dataset-registry.ts

テストファイル

  • apps/web/tests/consolidated-worksheet.test.ts
  • apps/web/tests/consolidation-engine.test.ts

ソースデータ

  • apps/web/content/2026-02-03/images/partial-sale-worksheet-80-70.png

次のステップ

  1. 全パターンのテスト実行と結果確認
  2. Codexによる会計的正確性レビュー
  3. 不整合があれば修正
  4. UIコンポーネントとの結合確認