仕入先から届く請求書の明細を、kintoneのサブテーブルに登録して、納品書や発注データと照合したい。こうしたご相談を、仕入先の多い現場からいただきました。
課題になるのは、取引先ごとに明細の見出しが違うことです。この記事では、見出しの違う3社の請求書を「DataSyncer® for kintone(データシンカー®)」のAI-OCRで読み取り、kintoneのサブテーブル1つにまとめた結果をご紹介します。
請求書の明細は、取引先ごとに見出しが違う
食品メーカーが、仕入先3社から受け取る請求書を例にします(帳票はすべて架空のサンプルです)。

明細の部分を並べると、見出しの書き方の違いがわかります。

同じ「日付・品名・数量・金額」でも、3社で書き方が違います。
- 日付:A社は「日付(2026/10/02)」、B社は「月日(10/03)」、C社は「年月日(26.10.06)」
- 品名:A社は「品名」、B社は「品名容量:規格」、C社は「商品名」
- 数量:A社・B社は「数量」、C社は「数」
- 金額:A社は「金額」、B社は「税抜金額」、C社は「金 額」
列の並びや数も違います。B社には伝票No.と単位の列があり、C社には納入先の列があります。B社の請求書は、明細の上に「前月ご請求額〜当月ご請求額」の集計表もあり、1ページに表が2つあります。
取引先が10社、20社と増えれば、明細の書き方も同じ数だけ増えます。仕入先の多い製造業・卸売業の請求書処理は、このパターンが多くなります。
取引先ごとにサブテーブルを分けると、照合の前にまとめる作業が要る
通常、帳票の見出しの文字や列の位置と、kintoneのフィールドの対応を利用者が設定する方式では、見出しの書き方が違えば、対応も取引先ごとに作り分けることになります。
その結果、kintoneのアプリには「請求明細(A社)」「請求明細(B社)」「請求明細(C社)」のように、取引先の数だけサブテーブルが並びます。取引先が増えるたびに、サブテーブルと設定を足していく運用です。
明細が取引先ごとのサブテーブルに分かれていると、納品書との照合や取引先をまたいだ集計の前に、明細を1つにまとめる作業が要ります。
データシンカーの場合:見出しが違っても、同じサブテーブルの同じ列へ
データシンカーの場合、kintoneアプリに用意するサブテーブルは「請求明細」の1つだけです。3社の請求書PDFをそれぞれ添付すると、AIが明細の見出しを読み取り、サブテーブルの同じ列へ登録します。

- A社の「日付」、B社の「月日」、C社の「年月日」は、すべて「日付」の列へ
- A社の「品名」、B社の「品名容量:規格」、C社の「商品名」は、すべて「品名」の列へ
- A社の「金額」、B社の「税抜金額」、C社の「金 額」は、すべて「金額」の列へ
取引先ごとの設定や、AIへの指示文(プロンプト)は書いていません。kintoneアプリのフィールド名を、AIが帳票の見出しと照らし合わせて判定しています。取引先が増えても、サブテーブルも設定も1つのまま受けられるのが特長です。
明細の行数も、A社4行・B社5行・C社4行と、帳票どおりに登録されました。B社の上の集計表や、A社の空行・小計・合計の行は、明細に入っていません。
帳票にない列は、空欄のまま残ります。A社とC社には単位の列がないため「単位」は空欄、C社の納入先「本社2L」は、略記を書き換えずにそのまま「納品先」へ入りました。
B社の「月日」は「10/03」のように年が書かれていないため、日付の列は空欄で残りました。AIが年を推測で補わないためです。サブテーブルに入っている日付は、すべて帳票に書かれたとおりの日付です(2026年11月時点の検証結果)。
隣り合う列も、分けて登録する
A社の請求書は、「金額」と「備考」の列が詰まって並んでいます。帳票上では「15,200ただし10/1ご注文分」のように、数字と文字がつながって見えます。

通常、文字の位置で区切るOCRでは、近い文字列が1つの値にまとまり、「金額」に文字が混ざって数値として登録できないことがあります。
データシンカーでは、AIが金額と備考を別の列として判定し、「金額」に15200、「備考」に「ただし10/1ご注文分」を分けて登録しました。数値フィールドに数値だけが入るので、kintoneでそのまま合計や照合に使えます。
kintoneアプリの設計:サブテーブルは1つ、フィールド名は見出しの言葉に
今回の受け皿のアプリでは、サブテーブル「請求明細」に、次の9列を用意しました。
- 日付(日付)
- 伝票番号(文字列)
- 品名(文字列)
- 数量(数値)
- 単位(文字列)
- 単価(数値)
- 金額(数値)
- 備考(文字列)
- 納品先(文字列)
設計のポイントは2つです。
サブテーブルは1アプリにつき1つにします。 データシンカーのAI-OCRが書き込めるサブテーブルは、1アプリ(1設定)につき1つまでです。取引先ごとに分けず、1つで受ける前提の設計です。
フィールド名は、帳票の見出しで使われる言葉にします。 AIはフィールド名を手がかりに、帳票の項目と照らし合わせます。取引先ごとの書き方の違いはAIが吸収するので、フィールド名は代表的な言葉(「日付」「品名」「金額」)で足ります。
明細以外のフィールドも同じです。今回、請求書の発行元を入れるフィールドを最初「取引先名」としたところ、請求書の宛先(自社名)が入りました。請求書には宛先と発行元の2つの会社名があり、「取引先名」ではどちらか決まらないためです。フィールド名を「請求元」に変えると、3社とも発行元の社名が入りました。フィールド名は、帳票の上でどちらを指すかが決まる言葉にします。
アプリ設計の詳しい考え方は、帳票レイアウト別に見る、AI-OCRのkintone登録パターンでもご紹介しています。
サブテーブル1つにまとまると、照合と集計にそのまま使える
3社の明細が同じサブテーブルの同じ列に入っているので、取引先をまたいで同じ条件で扱えます。
- 納品書や発注データと、品名・数量・金額で照合する
- 品名や月ごとに、仕入金額を集計する
取引先ごとのサブテーブルを1つにまとめ直す作業はありません。取引先に請求書の書式をそろえてもらう必要もなく、受け取る側の運用を変えずに、届いた請求書をそのまま添付するだけです。
明細を1件ずつのレコードに展開して、別アプリで照合や集計をしたい場合は、「DataSyncer® アプリ to kintone」と組み合わせます。設計の例は注文書PDFから受注明細を自動作成|AI-OCRを組み込むkintone受注フロー設計をご覧ください。
まとめ
- 請求書の明細の見出しは、取引先ごとに違う(日付/月日/年月日、金額/税抜金額 など)
- 通常は、取引先ごとにサブテーブルと設定を作り分け、照合の前にまとめる作業が要る
- 「DataSyncer® AI-OCR to kintone」は、見出しが違っても、kintoneのサブテーブル1つの同じ列へ明細を登録する
- 隣り合う列も分けて登録し、帳票にない列・年のない日付は空欄で残す
- サブテーブルが1つにまとまるので、照合・集計にそのまま使える
お手元の請求書でどう登録されるかは、15日間の無料トライアルで、請求書のPDFをそのままお試しいただけます。
関連記事
当ブログのコンテンツについては、できる限り正確な情報を提供するように努めておりますが正確性や安全性を保証するものではありません。情報が古くなっていることもございます。当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。プライバシーポリシー

