開発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: '一部売却後' },
],
}
仕訳の構成(連結除外):
- 開始仕訳の振戻し
- S社貸借対照表の連結除外
- 売却前持分の評価およびNCI振戻し
- 株式売却損益の修正
- 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%、連結除外→持分法)。
このパターンは複数会計期間にまたがる売却を扱うため、実務上の複雑なケースをカバーする。
ソースデータとの照合レビュー
レビュー観点
- 個別F/S数値の整合性: P社・S社の各勘定科目が画像と一致するか
- 仕訳金額の整合性: 各連結修正仕訳の借方・貸方金額が正しいか
- B/Sバランス: 各列で資産合計 = 負債純資産合計となるか
- P/Lの整合性: 当期純利益 = 収益 - 費用 となるか
- 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-1 | 80→70% | 連結継続 | 支配継続、売却損益は資本剰余金へ |
| 売却1-2 | 80→70% | 連結継続 | 税効果あり |
| 売却2 | 80→20% | 持分法 | 連結除外、持分法への移行 |
| 売却3 | 80→10% | 原価法 | 連結除外、原価法への移行 |
| 売却4 | 80→0% | なし | 全部売却 |
| 売却5 | 80→70→20% | 持分法 | 2段階売却 |
関連ファイル
データファイル
apps/web/app/components/consolidated-worksheet/data/worksheet-data-partial-sale-80-70.tsapps/web/app/components/consolidated-worksheet/data/worksheet-data-partial-sale-80-20.tsapps/web/app/components/consolidated-worksheet/data/worksheet-data-partial-sale-80-10.tsapps/web/app/components/consolidated-worksheet/data/worksheet-data-partial-sale-tax.tsapps/web/app/components/consolidated-worksheet/data/worksheet-data-partial-sale-80-70-20.tsapps/web/app/components/consolidated-worksheet/data/dataset-registry.ts
テストファイル
apps/web/tests/consolidated-worksheet.test.tsapps/web/tests/consolidation-engine.test.ts
ソースデータ
apps/web/content/2026-02-03/images/partial-sale-worksheet-80-70.png
次のステップ
- 全パターンのテスト実行と結果確認
- Codexによる会計的正確性レビュー
- 不整合があれば修正
- UIコンポーネントとの結合確認