初心者のための計算列:抽出と計算を一度に

ほとんどの文書抽出ツールは読み取りで止まります。ページに印刷されたもの——ある列に数量、別の列に単価——をそのまま返すだけです。しかし、実際に必要な数字——行合計、手取り額、原価率——は印刷されていません。データから暗に示されているだけです。そしてつい最近まで、抽出後に誰かがExcelを開いて計算する必要がありました。

初心者向け計算列による文書抽出を解説する、チャートと表計算ソフトのデータ分析ダッシュボード

重要ポイント

  1. どの抽出ツールも、数量=5を一つのセルに、単価=$12を別のセルに入れて「完了」とします。掛け算はあなた自身が行う必要があります。
  2. Excelの数式はセルの位置(B2×C2)を参照するため、「約5ユニット」とあると数式が壊れます。しかしAIは、数字の意味を理解するため、位置ではなく「5」として読み取ります。
  3. ImageToTable.aiの列名フィールドに「行合計(数量×単価)」と入力し、任意の文書をアップロードするだけで、計算結果が出力に表示されます。数式バーもセルのドラッグも不要です。

計算列とは

計算列とは、出力テーブル内の列のことで、その値はAIが抽出時に計算します。ドキュメントから単にコピーするのではありません。

標準的なドキュメント抽出では、「請求書番号」「日付」「取引先名」など、検索するフィールドをツールに指示します。ツールはドキュメントを読み取り、それらの値を見つけて出力に配置します。得られるのは、印刷された通りの値です。

計算列は、もう1つの指示を追加します。抽出した値を取得して、それらに対して何かを行うという指示です。

請求書の明細項目を考えてみましょう。ドキュメントには数量=5、単価=$12と表示されています。標準的な抽出では、5と12の2つのセルが得られます。計算列では、60が入った3つ目のセルが得られます。AIが抽出中に2つの数値を乗算し、数式を1つも書かなくても、答えがスプレッドシートに届きます。

重要な違いは、計算が行われるタイミングです。OCR、AI抽出、手動データ入力のいずれを使用する場合でも、従来のワークフローでは、計算は抽出後、別のツールで行われます。計算列は、計算を抽出自体に組み込みます。ダウンロードする出力は、すでに完成品です。

ドキュメント抽出全般が初めての方は、AIドキュメント抽出の初心者ガイドで、AIがどのようにドキュメントを読み取るかの基本を説明しています。この記事では、その基本概念を理解していることを前提とし、その上に位置する計算レイヤーに焦点を当てます。

なぜExcelでやらないのか?

ほとんどの人が最初に尋ねる質問は、エクスポート後に数式列を追加すればいいのではないか、というものです。答えは「はい」です。そして、それは人々が何年も行ってきたことです。本当の問題は、そうしないことで何が得られるかです。

規模が状況を変えます。 5つの明細項目がある1つの請求書は、5つの数式です。それぞれ10~40の明細項目がある30件の請求書バッチは、数百の数式になります。そのような大規模なバッチで数式の参照を1つ間違えると、間違った数値が生成され、財務における間違った数値は雪だるま式に増大する傾向があります。Excelが数式に不向きだというわけではありません。数式の作成はドキュメントの量に比例して増加し、検証の労力はそれ以上に増加するということです。

数式はスプレッドシート内にあり、ワークフロー内にはありません。 新しい請求書バッチを抽出するたびに、数式を再作成するか、テンプレートシートをコピーして範囲がまだ一致していることを願うことになります。計算列は抽出定義の一部です。一度定義すれば、その後はすべてのバッチのすべてのドキュメントに適用されます。

Excelでは認識できないコンテキストを必要とする計算もあります。 数式セルは、B2×C2のように、位置によって他のセルを参照します。B2が数量でC2が単価であることは認識しません。そこにあるものを単に乗算するだけです。同じ計算を実行するAIは、フィールド間の関係を理解します。ドキュメントで数量が「約5ユニット」とラベル付けされていたり、単価が列ではなく段落に記載されている場合でも、AIはそれを推論できます。数式にはそれはできません。

これらのいずれも、Excelの使用をやめるべきだという意味ではありません。抽出ステップで、計算がすでに完了したスプレッドシートを提供できるということです。そしてExcelは、算術演算の場ではなく、分析の場になります。

計算の定義方法は2つ

ImageToTable.aiでは、計算列の定義方法を2つ用意しています。どちらも同じ結果が得られますが、ワークフローの段階に応じて使い分けます。

列名方式 — アカウント不要でお試し

最も簡単な方法:計算式を列名に直接書き込みます。AIが列名全体(ラベル+指示)を読み取り、意図を理解します。

列名の例

行合計(数量×単価)
手取り額(総支給額から控除額をすべて差し引き)
税額(小計×0.20)

この方法はゲストデモですぐに使えます。ログインも設定も不要です。ただし、計算が複雑になると列見出しが長くなり、出力表が見づらくなるという欠点があります。

ルール形式 — 繰り返し使う本番ワークフロー向け

ログインユーザー向けの代替方法がルール形式です。列名は「行合計」のように簡潔に保ち、計算ロジックは別のJSONルールで定義します。これにより出力の見出しがすっきりし、書式ルールや小数点以下の桁数、フォールバック値など、より詳細な指示が可能になります。

ルール形式の例

{"行合計": "この明細の数量に単価を掛け、小数点以下2桁にする"}

まずは列名方式で数件の文書をテストするのがおすすめです。ロジックに自信がついたら、ルール形式に移行して定常ワークフローに組み込みましょう。どちらの方法も同じAI推論エンジンを使用しており、違いは指示を書く場所だけです。

計算列ができる5つのこと

以下は、最もシンプルなものから最も強力なものへと並べた、定義可能な5種類の計算です。各例には実際の列名が含まれており、この記事末尾のデモにコピーしてご利用いただけます。

1. 行単位の算術

同じ行または同じセクション内の値を乗算、除算、加算、減算します。これが最も一般的な使い方であり、多くのExcel数式を置き換えるものです。

実際の例

明細合計(数量 × 単価)

ドキュメントに個別の入力値は表示されるが、その組み合わせ結果が表示されていない場合に使用します。数量と単価は印刷されるが明細合計が省略されている請求書 — 抽出ワークフローをゼロから設定する完全なチュートリアルについては、請求書フィールドをExcelに抽出する方法のガイドをご覧ください。作業時間と時給は記載されているが労務費合計は自分で計算する必要がある作業シート。開始時と終了時の走行距離計の数値が記録されたマイレージログなどに最適です。

2. 行をまたいだ集計

同じグループまたはセクションに属する複数の行の値を合計、平均、またはその他の方法で結合します。ここで数式ベースのアプローチは破綻します。範囲を手動で定義する必要があり、範囲はドキュメントごとに変わるからです。

実際の例

セクション小計(同一セクションの全明細合計の合計)

AIはドキュメントの視覚的構造(見出し、スペーシング、表のグループ化)を読み取ってセクション境界を特定し、属する行のみを集計します。範囲を選択する必要はなく、何を合計するかを記述するだけで、AIがどの行が該当するかを判断します。

3. 条件ロジック

値を比較し、その比較結果に応じた結果を出力します。これにより、数値が合っているかを確認する手動照合作業が、単一の出力列に変わります。

実例

検証(小計+税=請求合計ならOK、それ以外は差額を出力)

条件列を使用して、請求書の不一致をフラグ付けしたり、給与明細の控除額が正しく手取り額と合計されるかを検証したり、発注書の合計が明細行の合計と一致するかを確認できます。この列は抽出するだけでなく、監査も行います。

4. 固定パラメータ参照

税率、メニュー価格、標準的なマークアップ率など、ドキュメントに含まれていない値を計算に埋め込みます。AIはそれを所与の定数として扱います。

実例

食材費率(原価 ÷ 28.00 × 100、28.00はメニュー価格)

これは、回答がドキュメント外の情報(価格表、税額参照カード、契約条件など)に依存する場合に便利です。列定義でパラメータを一度指定するだけで、AIがすべての行に適用します。

5. 未印刷データからの導出値

ドキュメントに必要な値が記載されていないものの、それを計算するための要素が含まれている場合、AIは不足している数値を導き出すことができます。

実例

走行距離(終了時オドメーター − 開始時オドメーター)

これは単なる算術計算とは異なる機能です。AIは抽出された2つの値から計算しているだけではありません。値が欠落していることに気づき、それを導き出すために必要なフィールドを特定し、それらを抽出して結果を計算しています。数式では最初のステップを実行できません。人間はギャップに気づき、数式を追加し、手動で入力する必要があります。

これらの5つのパターン(行をまたがる認識、曖昧さの処理、Precision+モードを有効にするタイミングを含む)の詳細な技術解説については、計算列の詳細ガイドをご覧ください。

計算列でできないこと

制限を正直に伝えることは、機能を明確にすることと同じくらい重要です。計算列で扱えないものを以下に示します。

ドキュメント間の参照。 各抽出は1つのドキュメントを独立して処理します。計算列は、請求書の明細行の合計が印刷された合計と一致することを検証できます。しかし、請求書の合計が総勘定元帳の対応するエントリと一致するかどうかは確認できません。そのデータは別のシステムに存在するからです。

会計ソフトやERPソフトの代替。 計算列は抽出中に答えを生成します。仕訳を転記したり、在庫を更新したり、承認ワークフローをトリガーしたりすることはありません。計算列は、生のドキュメントを検証済みで計算が完了したデータに変換し、後続のシステムにインポートできる状態にするレイヤーと考えてください。

読み取れないソースドキュメントの回避。 AIが数量や単価を読み取れない場合(スキャンがぼやけている、手書きが判読できない、フィールドが単に欠落しているなど)、どんな計算もそれを補うことはできません。経験則として、人間がドキュメントを見て、ページに表示されている情報(および指定された固定パラメータ)から答えを計算できるなら、AIも計算できます。人間にできないなら、AIにもできません。

30秒で試す

列名方式はアカウント不要です。以下のデモに計算列名を入力し、ドキュメントをアップロードすると、出力に計算結果が表示されます。データを抽出したのと同じステップで計算も実行されます。

JPG/PNG/PDF 計算列

計算列を追加してみましょう。他の列名と一緒に 明細合計 (数量 × 単価) と入力してください。

よくある質問

計算列とは何ですか?

計算列とは、AIがドキュメントから読み取ったデータをもとに抽出時に値を計算する出力テーブルの列です。生の値(数量=5、単価=$12)をそのまま出力し、後で掛け算する必要があるのではなく、計算列は同じ抽出処理の中で答え(行合計=60)を生成します。

計算列を使うのにアカウントは必要ですか?

いいえ — 列名方式はアカウントなしで使えます。列名に直接計算式を入力するだけで(例:「行合計(数量×単価)」)、AIが抽出時に計算を実行します。列名をクリーンに保つために計算式をJSONルールに分離するルール形式方式はログインが必要です。まずはデモで列名方式を試して可能性を確認し、繰り返し使えるワークフローを構築する準備ができたらアカウントを作成してください。

どのような計算を定義できますか?

行レベルの算術演算(乗算、除算、加算、減算)、行をまたいだ集計(セクション内の全アイテムの合計)、条件付きロジック(値を比較してステータスを出力)、固定パラメータ参照(ドキュメントにない税率やメニュー価格を適用)、および派生値(ドキュメントに明示的に印刷されていない数値を計算)が可能です。やりたいことを平易な英語で記述するだけで、AIがドキュメントを解析して結果を生成します。

エクスポート後にExcelで数式列を追加するのとどう違いますか?

3つの違いがあります。第一に、計算は抽出中に行われるため、エクスポートされたファイルには既に答えが含まれており、数式の設定は不要です。第二に、計算列は抽出定義の一部であり、一度定義すればすべてのバッチのすべてのドキュメントに適用されます。第三に、AIは計算に使用するフィールドの意味を理解しているため、クリーンな数値を期待する数式では破綻するような曖昧な入力(「約5ユニット」など)も処理できます。

AIは常に正しく計算しますか?

明確にラベル付けされた数値フィールドに対する行レベルの算術演算では、精度は一貫して高いです。複雑またはフォーマットが不十分なドキュメントに対する行をまたいだ集計や条件付きロジックでは、AIは結果を出力する前にフィールド間の関係を検証するための追加の推論ステップ(Precision+モードとして知られる)を有効にできます。ソース値自体が誤って抽出された場合、いかなる計算も正確にはなり得ません — 基礎となるのは入力フィールドの信頼性の高い抽出です。精度要因の詳細については、詳細な計算列ガイドをご覧ください。

計算列は別のドキュメントの値を参照できますか?

いいえ。各抽出は1つのドキュメントを独立して処理します。計算列はそのドキュメント内のすべての明細行を合計したり、印刷された合計が部分の合計と一致することを確認したり、指定した税率を適用したりできます。別のドキュメントの値を相互参照することはできません — そのようなドキュメント間のロジックは、会計ソフトウェアまたはエクスポート後の統合ステップに委ねられます。

計算済み列を使えば、スプレッドシートに計算結果が最初から反映されます。実際の請求書でお試しください。

ドキュメントをアップロード
📮 contact email: [email protected]