年間8万行、1枚のスプレッドシートSPEDレイアウトファイルをバッチ処理して複数年分析を行う方法

中堅ブラジル企業は、年間約8万~15万行のデジタル会計ブックキーピング(ECD)データを提出します。3年間の比較期間では、パイプ区切りのRegistroコードが3つの別々のテキストファイルにまたがって25万行にもなります。各ファイルはReceita Federalによる機械検証用に構成されており、人間による分析には向いていません。すべての行は、試算表エントリ、仕訳行、e-Lalur税務調整など、必要になる可能性のあるレコードです。しかし、複数年にわたって特定の勘定科目を抽出するには、各ファイルを開き、Registroコードでフィルタリングし、手動で列を揃え、結果を新しいスプレッドシートに結合する必要があります。この作業は、複数年に関する質問があるたびに繰り返されます。

手入力をやめよう — AIに読み取らせるだけ
画像やPDFをアップロード — 10秒で構造化データに
今すぐ試す
登録不要 · カード不要 · 10秒で結果
複数年のECDおよびECFファイルを組み合わせた、ブラジルSPED会計データの複数年バッチ分析スプレッドシート

この記事では、複数年にわたるSPEDファイルを単一のバッチとして扱い、出力列を一度だけ定義し、必要なデータだけを分析可能な1つのテーブルに抽出する代替アプローチについて説明します。ソースデータが2つのECDファイル、1つのECFファイル、または異なるLeiauteバージョンの3つの課税年度にまたがっていても問題ありません。このアプローチでは、すべてのRegistroタイプに対応するパーサーは必要ありません。異なる年度、異なるレイアウトバージョン、さらにはECD↔ECFの境界を越えて機能します。

「一度に1ファイルずつ開く」方法が複数年分析に適さない理由

Public Digital Bookkeeping System(Sistema Público de Escrituração Digital、通称SPED)は、Receita Federalが会計記録を受け取るための単一の標準化されたパイプラインとして設計されました。その目的は達成されています。しかし、ある年度のデータを別の年度のデータと比較するための組み込みメカニズムは提供されていません。各会計年度は、独自のECDファイルと独自のDigital Tax Bookkeeping(Escrituração Contábil Fiscal、ECF)ファイルを生成します。Programas Validadores e Assinadores(PVA)は個々のファイルを検証し送信します。2つのファイルを並べて開くことはできません。

つまり、すべての複数年分析は同じ手作業の手順を踏むことになります。PVAから1年目のECDをエクスポートし、2年目のECDもエクスポートし、それぞれをExcelでテキストインポートウィザード(区切り文字はパイプ)を使って開き、該当するRegistroコードでフィルタリングし、フィルタリングしたRegistroによって位置が変わる列のラベルを付け直し、比較テーブルをゼロから作成し、ECFの税調整データについても同じことを繰り返します。この作業は技術的に難しいわけではありませんが、機械的に繰り返しが多く、エラーが発生しやすく、毎回数時間を要します。

2つの税制(ある年はLucro Real、翌年は合併)にわたる3年分のECDデータを扱う経理チームは、たった1つの分析質問のための入力データを準備するだけで、丸一日を費やす可能性があります。

複数年SPED分析に実際に必要なもの

財務コントローラーや税務マネージャーが複数年の比較を依頼する場合、通常は以下のいずれかのビューを求めています。

「過去3年間の全勘定の期首残高、期末残高、純変動額を並べて表示してほしい。」

これを実現するには、各年度のECDからC155 Registro(試算表)を抽出し、C050勘定科目表から勘定コードを調整し、各行が参照勘定科目コード (Plano de Contas Referencial) に対応し、各年度の残高が隣接する列に表示される水平比較テーブルを構築する必要があります。

「e-Lalurの永久差異で、前年比で大きく変動したものはどれか?」

これは、各年度のECFからM300 Registro(e-Lalur Part A調整)を抽出し、調整タイプ(加算、減算、補償)でフィルタリングし、各年度の値を並べて比較することを意味します。特定の調整タイプで30%の変動があれば、ビジネスの変化か、調査が必要な分類エラーのシグナルです。

「実効税率が3年間でどのように推移し、どの調整がその変動を引き起こしたのか?」

これを実現するには、複数年度にわたって、ECDデータ(ECFのBloco Eからの会計上の利益ベース)とECFデータ(Bloco Mからのe-Lalur調整)を組み合わせる必要があります。つまり、2つの異なるファイルタイプ、2つの異なるRegistro構造、そして1つの分析質問があることになります。

共通点は明らかです。すべての質問は、複数のファイル、複数のRegistroタイプ、複数の年度にまたがっています。ボトルネックはデータが存在するかどうかではありません。データは詳細にわたって存在します。ボトルネックは、SPEDエコシステムのファイル指向のレイアウトから、質問指向のレイアウトへとデータを再構築することにあります。

バッチ処理戦略:ファイル形式ではなく出力列で考える

SPEDファイルをバッチ処理する上で重要なのは、Registroの構造は一見わかりにくいものの、内部的には一貫しているという点です。昨年の試算表を担っていた同じC155 Registroのレイアウトが、今年もそのまま使われています。昨年の永久差異を説明していたM300のフィールドが、今年の差異も説明します。レイアウトの変更は頻繁ではなく、フィールドレベルでの変更(ECDのLeiaute 8から9への移行、ECFの11から12への移行など)であり、Registroの種類とそれが表す会計概念との基本的な関係を変えるものではありません。

この一貫性により、出力構造を一度定義すれば、それを複数年にわたって適用できます。「2024年のECDを開いて、C155をフィルタリングし、フィールドをマッピングして、それを2025年にも繰り返す」と考える代わりに、「2024年と2025年の勘定残高を並べて取得したい」と考え、ファイルごとの再構成は抽出レイヤーに任せることができます。

カスタム列抽出は、まさにこのシナリオのために設計されています。「勘定コード」「勘定科目名」「期首残高」「期末残高」など、必要な列に名前を付けると、AIがSPEDファイルを読み取り、該当するRegistroレコードからそれらの値を特定して抽出します。どの年のファイルを指定しても同じように動作します。2023年のECDからきれいな試算表を生成した同じ列定義が、2024年や2025年のECDファイルからも同一の構造を生成します。これは、Registro C155と「試算表」という概念の間の意味的な関係が、年をまたいでも変わらないからです。

実際の効果:3年分のECDデータを処理するには、列を一度定義するだけでよく、3回定義する必要はありません。作業が「15万行を3回フィルタリングして位置合わせする」から、「1つの列定義で3つのファイルを指定する」に変わります。

ステップバイステップ:複数年のECDデータをバッチ処理して年度間試算表を作成する

ここでは、2年または3年分のECDファイルを、年度ごとの勘定比較表に変換するワークフローを説明します。同じロジックは、ECFデータやECD+ECFの混合分析にも適用できます。

1
比較したい年度のECDファイルを収集します。

ERP(Omie、Conta Azul、Senior、Domínio、SAP TDF、またはSPED生成に使用しているシステム)またはPVAアーカイブから、検証済みの.txtファイルをエクスポートします。必要なのは最終送信バージョンであり、下書きではありません。送信済みファイルはReceita Federalが受信したものと一致するからです。すべての年度のファイルを1つのフォルダに保存してください。

2
各.txtファイルを抽出ツールで読み取り可能な形式に変換します。

ImageToTable.aiはPDF、JPG、PNG、WebPの入力に対応しています。.txtファイルの場合は、各ECDをテキストビューアまたはPVAのファイルビューアで開き、PDFに印刷します。SPED形式の固定幅レイアウト(パイプ区切り、整列された列)は視覚的に一貫しているため、PDFはAIが読み取る構造を保持します。このステップはファイルあたり約30秒かかります。

3
試算表抽出のための出力列を定義します。

任意の年度のECDから試算表を取得するための列定義を1つ設定します。列は次の通りです:年度、勘定科目コード、勘定科目名、期首残高、借方発生額、貸方発生額、期末残高。「年度」列を追加することで、複数年度の結果を1つのテーブルにまとめられます。勘定科目コードは、年度間の標準化のためにC050の参照勘定科目表(Plano de Contas Referencial)にマッピングする必要があります。

4
同じ列定義を使用して、各年度のファイルを処理します。

1年目のPDFをアップロードし、列定義を使用して抽出を実行します。2年目、3年目についても繰り返します。列定義は意味論的なものであり、「勘定科目コード」「期末残高」などを意味で検索するようAIに指示するため、バイトオフセットではありません。そのため、PVAが年度ごとにレイアウトをわずかに異なる形式でエクスポートした場合でも、すべてのファイルで同一に機能します。各実行で、指定したヘッダーを持つクリーンなテーブルが生成されます。

5
結果を1つの年度間スプレッドシートに統合します。

各年度の結果を.xlsxとしてエクスポートし、「年度」列を使用して各行のソース期間を識別しながら、1つのファイルに積み重ねます。比較テーブルを作成します。勘定科目コードでフィルタリングし、各年度の期首残高と期末残高を隣接する列に配置します。前年比差異(絶対値およびパーセンテージ)の計算列を追加し、20%やR$100,000などのしきい値を超えた動きのある勘定科目にフラグを立てる条件付き書式を設定します。

.txtファイルから構造化された年度間テーブルまでの全サイクルは、列定義を保存した後、3年分のデータで約30分かかります。同じ作業をテキストインポートウィザードと手動調整でExcelのみで行った場合、推定3~4時間かかり、手動フィルタリングとフィールドマッピングによるエラー率も高くなります。

この分析を毎年繰り返す場合(ECF作成サイクルの一環として、新しい年と前年を比較する場合)、列定義をテンプレートとして保存します。翌年は、新しいファイルに対してのみステップ4を実行し、その結果を既存の複数年度スプレッドシートに追加するだけです。

バッチの拡張:ECF税調整データの追加

同じバッチロジックがECFファイルにも適用されます。ECFのBloco Mには、IRPJおよびCSLLの納税額を決定するe-Lalur調整が含まれており、これらの調整を年ごとに比較することで、税務計画や永久差異がどのように変化しているかが明らかになります。

ECFデータを複数年度分析に追加するには、ECFのM300(e-Lalur Part A)およびM350(e-Lacs Part A)Registroを対象とする2つ目の列定義を作成します。

年, Registro, 勘定科目コード, 調整タイプ(加算/除外/控除), 調整額, 参照プロセス番号

この定義を使用して各年度のECF PDFを処理し、エクスポートして、ECD試算表データとともに統合スプレッドシートにマージします。これで、ECD↔ECFの境界をまたぐ質問(例:「のれん償却の永久差異は2024年と2025年の間で変化したか、また対応する会計上の引当金は各年度のECDに正しく記録されたか?」)に回答できる単一のファイルが完成します。

重要なポイント: ECFのBloco E(E010、E015)には、ECDの会計残高をECFの税調整にリンクするマッピング勘定科目が含まれています。これらをバッチに含めることで、ECF調整を元のECD勘定科目まで遡って追跡するために必要な相互参照テーブルが得られます。これはPVAでは実行してくれないチェックです。

レイアウト変更時の対応

ブラジルのSPEDレイアウトは進化します。ECDは2020年にLeiaute 9に移行しました(その後は安定しており、ADE Cofisの裁定によるフィールドレベルの更新があります)。ECFは、2026年に提出される2025暦年分からLeiaute 12を採用しています。レイアウトが変更されると、スクリプトベースのパーサーはコードの更新が必要になります。セマンティック抽出アプローチでは、この移行を異なる方法で処理します。AIが絶対的なバイト位置ではなく意味(「この固定幅ブロックは試算表エントリを記述している」)で読み取るため、Registroコードとレコードの概念構造が維持されている限り、同じ列定義がレイアウトバージョン間で頻繁に機能します。実際、ECDのLeiaute 8から9、ECFのLeiaute 11から12への移行では、コアとなるRegistro構造(C155、M300)が安定していたため、試算表やe-Lalur抽出のための列定義の変更は必要ありませんでした。

よくある質問

Q: ECDとECFを一括で処理できますか?

それぞれのファイルはRegistroの構造が異なるため、個別に抽出処理が必要です。ただし、一度作成した列定義はテンプレートとして保存し、毎年再利用できます。ECDの処理に1回、ECFの処理に1回のパスが必要で、両方をエクスポートした後、Excelで統合作業を行います。

Q: ECDに部門別元帳(Bloco K)がある会社の場合はどうなりますか?

ECDにBloco Kのレコードが含まれている場合、定義に「コストセンター」または「部門」列を追加できます。AIがECDのC100およびK固有のRegistroからKレベルのコストセンタータグを読み取り、出力テーブルに含めます。これは、事業部門別の年度をまたがる収益性分析に特に役立ちます。

Q: 合併や組織再編により、年度間で勘定科目コードが変わった場合はどうなりますか?

これはデータ抽出の問題ではなく、データマッチングの問題です。各年度のECDから、試算表データと一緒にC050の勘定科目一覧を抽出してください。会社内部の勘定科目番号(変更されている可能性があります)ではなく、Receita Federalによって標準化された参照勘定科目表(Plano de Contas Referencial)の参照勘定科目コードを、年度間のマッチングキーとして使用します。

Q: バッチ処理にファイルサイズの制限はありますか?

ImageToTable.aiは、ECDファイルをPDFまたは一連のページ画像として処理します。一般的なECDファイル(80,000〜150,000行)の場合、PDF版は約200〜400ページになります。ツールはページごとに処理します。非常に大きなファイルの場合は、ページ範囲を指定したPDF分割を使用して、Blocoごとにセクションに分割できます(例:Bloco Cを1回のパスで、Bloco Iを別のパスで処理する)。

Q: この方法はLucro Presumidoの会社でも使えますか?

はい、使えます。Lucro Presumidoの会社も同じRegistro構造でECDを提出し、年度間の勘定科目比較が同様に必要です。ECFの範囲は狭くなりますが(恒久的差異のあるe-Lalurはありません)、ECDの抽出と年度間の試算表分析は全く同じように機能します。

コンプライアンスの負担から分析資産へ

SPEDの提出は、ある意味で分析の可能性を無駄にしています。会計システムが1年かけて生成したデータ — すべての仕訳、すべての勘定残高、すべての税調整 — は、一人の読者(Receita Federalの検証システム)に最適化された形式に再構成され、多大な手作業なしには他の目的に事実上使用できません。皮肉なことに、これは御社の会計年度の最も完全な財務記録であり、ERPがエクスポートするどの管理レポートよりも詳細です。

バッチ処理がこの状況を変えます。複数年度の試算表、税調整、コストセンターデータをたった1回の午後で抽出できるようになれば、SPEDファイルは「提出して忘れる」コンプライアンス成果物から、積極的に活用する分析データセットへと変わります。前年比の差異分析、実効税率のトレンド追跡、部門別収益性のトレンドライン。これらすべてが、同じ抽出ワークフローの出力になります — 別々のデータ準備サイクルを必要とする別々のプロジェクトではありません。

今年作成する列定義は、再利用可能な資産です。来年、新しいECDファイルが届いたら、同じ定義に対して実行するだけです。比較結果は数分で、数時間ではなく、すぐに得られます。

📮 contact email: [email protected]