AppSheetでPDFから情報を自動抽出する方法|AIを使ったデータ登録を解説

AppSheet

請求書や申込書、点検報告書を受け取るたびに、会社名・日付・金額・管理番号を手入力していないでしょうか。PDFの件数が増えるほど、入力時間だけでなく転記ミスや確認漏れも増えてしまいます。AppSheetでは、Geminiを利用したAIタスクをAutomationに組み込み、アップロードされたPDFから必要な情報を抽出してテーブルへ登録できます。ただし、AIの結果をそのまま確定データにする設計は危険です。ここでは、初心者でも試せる設定手順に加え、列設計、重複実行の防止、精度を上げる指示文、人が確認すべき項目まで実務目線で解説します。

蒼宮 ルシア
蒼宮 ルシア

👑PDFを見ながら取引先名や金額を入力する作業、件数が多い日は本当に大変ですわ。

AI執事
AI執事

🤖AppSheetのAIタスクを使えば、PDFのアップロードをきっかけに必要項目を抽出できます。

蒼宮 ルシア
蒼宮 ルシア

👑では、入力担当者はPDFを選ぶだけでよろしいの?

AI執事
AI執事

🤖基本操作は簡単ですが、誤抽出に備えた確認画面と処理状態の管理が成功の鍵になります。

AppSheetでPDFから情報を自動抽出できる仕組み

AppSheetでは、AutomationのプロセスにAI taskを追加し、Extractを選択することで、File列に保存されたPDFから指定項目を抽出できます。抽出結果は元のテーブルへ直接保存するほか、後続ステップで利用する一時的な戻り値として受け取ることも可能です。

Google公式ヘルプでは、Geminiを利用したAppSheetのAI自動化により、画像、PDF、テキストからの情報抽出に対応すると案内されています。現時点ではAppSheet Enterprise Plusアカウント向けの機能であるため、利用前に契約プランと管理者側の設定を確認してください。AppSheetのAI自動化に関する公式情報

基本的な処理の流れ
  1. 利用者がAppSheetのフォームからPDFをアップロードする
  2. 新規登録または更新をAutomationのBotが検知する
  3. Extract AIタスクがPDFを読み取る
  4. 取引先名、書類番号、発行日、合計金額などを抽出する
  5. 抽出結果をAppSheetのテーブルへ保存する
  6. 担当者が内容を確認して確定する

従来のOCRは、画像内の文字をテキストとして読み取ることが中心でした。一方、AIによるExtractでは、「請求先の会社名」「支払期限」「問い合わせ内容」のように、項目の意味を考慮した抽出を設定できます。

ExtractとExtract rowsの違い
項目ExtractExtract rows
主な用途PDFから決まった項目を抽出するPDF内の明細を複数行として登録する
登録先主に処理対象と同じレコード既存テーブルの複数レコード
適した書類申込書、報告書、見積書のヘッダー情報請求明細、注文商品、経費一覧
抽出例書類番号、会社名、日付、合計金額商品名、数量、単価、明細金額
設計難易度比較的始めやすい親子テーブルの理解が必要

たとえば、請求書の「請求書番号」「発行日」「請求元」「合計金額」はExtractで管理し、商品別の「品名」「数量」「単価」はExtract rowsで明細テーブルへ追加する設計が考えられます。

蒼宮ルシア
蒼宮ルシア

👑最初からすべての明細を自動化せず、まずは会社名・日付・金額など、確認しやすい項目から始めると失敗を減らせますわ。

導入前に確認しておきたい条件

設定を始める前に、利用プラン、PDFの形式、保存したい項目、確認担当者を整理します。機能が使えるかどうかだけでなく、処理件数に対して運用コストが見合うかも確認しておきましょう。

Enterprise Plusの利用環境が必要

AI taskのExtractとExtract rowsは、公式ヘルプ上ではAppSheet Enterprise Plus向け機能です。個人向けや小規模向けの契約で利用している場合、Automationのタスク一覧にAI taskが表示されないことがあります。

契約内容や提供条件は変更される可能性があるため、導入前にはAppSheetの公式料金ページと管理コンソールで最新情報を確認してください。

PDFのページ数と利用量を確認する

AIタスクは実行回数や処理内容に応じてクレジットを消費します。公式ヘルプでは、PDFのExtractおよびExtract rowsは1ページにつき10クレジットを消費すると案内されています。試作アプリやAutomationのステップテストでも消費対象になるため、長いPDFを何度も試すと利用量が増えます。Gemini利用クレジットの公式情報

抽出する項目を先に決める

「PDFの内容をすべて読み取る」という曖昧な設計ではなく、業務で必要な項目を列として定義します。請求書受付アプリなら、次のような構成が実務で扱いやすくなります。

列名AppSheetの型用途
受付IDTextレコードを一意に識別するKey
PDFファイルFile抽出対象のPDFを保存する
取引先名Text請求元や申請元の名称
書類番号Text請求書番号や申込番号
発行日DatePDFに記載された発行日
合計金額PriceまたはDecimal税込み合計などの対象金額
摘要LongText書類内容の要約や補足
処理状態Enum未処理、処理中、要確認、確定を管理する
確認済Yes/No人による確認の完了を記録する
AI処理日時DateTimeAIタスクの実行日時を保存する
AIの結果を直接確定しない

金額や支払期限、銀行口座、契約条件などは、誤りが業務上の問題につながります。AIが抽出した直後は処理状態を「要確認」にし、担当者がPDF原本と照合してから「確定」へ変更する運用が安全です。

AppSheetでPDF抽出アプリを作る手順

ここでは、PDFをアップロードすると、取引先名、書類番号、発行日、合計金額、摘要を同じレコードへ保存する構成を例にします。

手順1:データソースに必要な列を作る

GoogleスプレッドシートまたはAppSheet Databaseに、先ほどの列構成を作成します。Googleスプレッドシートを使う場合は、1行目を列名にし、途中に空白列や結合セルを入れないようにしてください。

受付IDにはUNIQUEID()を初期値として設定し、Key列にします。処理状態の初期値は「未処理」にすると、Botの実行条件を管理しやすくなります。

手順2:PDFファイル列をFile型に設定する
  1. AppSheetエディタでDataを開く
  2. 対象テーブルを選択する
  3. PDFファイル列のTypeをFileに設定する
  4. 取引先名や書類番号をText型にする
  5. 発行日をDate型にする
  6. 合計金額をPriceまたはDecimal型にする
  7. 処理状態をEnum型にする

公式クイックスタートでも、PDFのアップロード列をFile型に設定し、その列をAIタスクのInput columnとして利用しています。

手順3:PDF登録を検知するBotを作る
  1. AppSheetエディタのAutomationを開く
  2. Botsから新しいBotを作成する
  3. Eventに対象テーブルのデータ変更を設定する
  4. 新規追加または更新時に実行するよう設定する
  5. PDFが登録され、処理状態が未処理の場合だけ動く条件を設定する

イベント条件の例は、AND(ISNOTBLANK([PDFファイル]),[処理状態]=”未処理”)です。

ISNOTBLANK([PDFファイル])だけでもPDFの有無は判定できますが、AIが抽出結果を書き戻した更新をBotが再び検知し、同じ処理が繰り返される可能性があります。処理状態を条件に加えることで、重複実行を防ぎやすくなります。

手順4:処理状態を処理中へ変更する

AIタスクの前に、データ変更ステップを追加し、処理状態を「処理中」へ更新します。この更新によって再びイベントが検知されても、処理状態が「未処理」ではないため、同じAI処理は開始されません。

手順5:Extract AIタスクを追加する
  1. Processに新しいステップを追加する
  2. Task typeでAI taskを選択する
  3. AI taskでExtractを選択する
  4. Input columnにPDFファイル列を指定する
  5. OutputでSave to tableを選択する
  6. 取引先名、書類番号、発行日、合計金額、摘要を出力先に追加する
  7. Additional instructionsへ抽出条件を入力する

Extractでは、保存する出力項目を最大12列まで選択でき、テキスト、数値、日付・時刻、Yes・Noなどの型がサポートされています。列の型とAIへの指示が一致していないと、空欄や不自然な値になりやすいため注意してください。Extract AIタスクの公式設定方法

Additional instructionsの設定例

PDFから請求元の正式な会社名を取引先名として抽出してください。請求書番号または書類番号を書類番号へ保存してください。発行日を日付形式で保存してください。合計金額は税込合計を優先し、数字のみを保存してください。摘要には請求内容を100文字以内で要約してください。項目を確認できない場合は推測せず空欄にしてください。

実務では、「見つからない場合にどうするか」を明記することが大切です。AIに推測させると、存在しない書類番号や誤った金額を登録する可能性があります。管理番号や金額は空欄を許容し、担当者が確認できる設計のほうが安全です。

手順6:処理状態を要確認へ変更する

Extractタスクの後にデータ変更ステップを追加し、処理状態を「要確認」、AI処理日時を現在日時へ更新します。担当者は「要確認」のSliceだけを表示する専用ビューから、抽出結果とPDF原本を照合できます。

手順7:テスト用PDFで動作確認する

最初から本番の請求書を大量に処理するのではなく、形式の異なるPDFを10件程度用意してテストします。取引先ごとにレイアウトが違う場合は、各形式を最低1件ずつ含めてください。

  • 文字データを含む通常のPDF
  • 紙をスキャンして作成したPDF
  • 2ページ以上のPDF
  • 会社名や金額の位置が異なるPDF
  • 合計、小計、税額が同時に記載されたPDF
  • 対象項目が存在しないPDF
蒼宮ルシア
蒼宮ルシア

👑正常なPDFだけでなく、項目が欠けた書類や読みづらい書類も試しておくと、本番運用で慌てずに済みますわ。

明細を複数行へ登録するExtract rowsの使い方

1枚のPDFから1件のデータを作るだけならExtractで対応できます。しかし、請求書や注文書の商品明細を1商品ずつ登録したい場合は、Extract rowsを検討します。

親テーブルと明細テーブルを分ける

請求書の場合、PDFファイルや取引先名、合計金額は請求書テーブルに保存し、商品名、数量、単価、明細金額は請求明細テーブルに保存します。

テーブル主な列
請求書受付ID、PDFファイル、取引先名、請求書番号、合計金額、処理状態
請求明細明細ID、受付ID、商品名、数量、単価、明細金額

請求明細の受付IDをRef型にして請求書テーブルと関連付けると、請求書の詳細画面から抽出された明細を一覧表示できます。

Extract rowsで指定する内容
  1. AI taskでExtract rowsを選択する
  2. Input columnにPDFファイル列を指定する
  3. 保存先として請求明細テーブルを選択する
  4. 商品名、数量、単価、明細金額を抽出対象にする
  5. 受付IDを親レコードと関連付ける
  6. 対象にする行の条件をAdditional instructionsへ記載する

PDF内の商品明細だけを抽出してください。見出し行、小計行、消費税行、合計行は明細として登録しないでください。数量を確認できない場合は空欄にしてください。単価と明細金額は通貨記号とカンマを除いた数値として保存してください。

公式情報では、Extract rowsで取得できるレコード数は最大50行とされています。明細が50行を超える可能性がある帳票では、PDFを分割する、対象行を絞る、別のDocument AI連携を検討するといった対応が必要です。

PDF抽出の精度を上げる5つのポイント

1.抽出先の列名を具体的にする

「番号」「日付」「金額」のような短い列名は、何を抽出するのか曖昧です。「請求書番号」「請求書発行日」「税込合計金額」のように、業務上の意味がわかる名前にします。

2.Column descriptionを設定する

AIの出力先にする列には、列の説明を追加します。たとえば、税込合計金額には「請求書の最終支払額。小計や消費税額ではなく、税込みの合計を保存する」と記載します。

AppSheet公式でも、AIタスクの出力に使用する列へ説明を追加し、Geminiが項目の意味を判断できる情報を与える方法が案内されています。列の説明には、評価されることを期待したAppSheet式を記載しないよう注意してください。

3.不明な場合の処理を決める

確認できない項目をAIが推測すると、もっともらしい誤データが登録される場合があります。Additional instructionsには、項目ごとに次のいずれかを指定します。

  • 確認できない場合は空欄にする
  • 確認できない場合は「不明」とする
  • Enumの「その他」を設定する
  • 候補が複数ある場合は最終合計を優先する
4.PDFを読み取りやすい状態にする

文字を直接選択できるPDFは、スキャン画像だけで構成されたPDFよりも安定しやすい傾向があります。公式のベストプラクティスでも、長いPDFの分割、文字を画像ではなくテキストとして保持したPDFの利用、低解像度の小さな画像を避ける方法が案内されています。

  • 不要なページを削除する
  • 上下が逆になっているページを修正する
  • 長いPDFは業務単位で分割する
  • 文字が極端に小さい帳票を避ける
  • 薄い印字や影があるスキャンを撮り直す
  • パスワード保護されたPDFの扱いを事前確認する
5.正解データと比較して改善する

テストでは「成功したか」だけでなく、項目別に正解率を記録します。会社名は正しくても、合計金額だけ間違う場合は、金額に関する指示文や列説明を重点的に修正できます。

テスト項目正解AI結果判定改善内容
取引先名森山商事株式会社森山商事株式会社成功変更なし
発行日2026年7月1日2026年7月1日成功変更なし
合計金額110,000円100,000円失敗税込合計を優先する指示を追加
蒼宮ルシア
蒼宮ルシア

👑精度改善では、長い指示文を闇雲に追加するより、間違えた項目の条件だけを具体的に書き直すほうが効果を確認しやすいですわ。

よくある失敗例と改善方法

失敗例主な原因改善方法
Botが何度も実行されるPDFの有無だけで実行条件を設定している未処理、処理中、要確認の状態管理を追加する
合計ではなく小計が登録される複数の金額から優先順位を判断できない税込み合計、最終支払額を優先すると指示する
日付が空欄になる出力列の型とPDFの表記が合っていないDate型に合わせ、発行日を抽出すると明記する
Enum列に想定外の値が入る選択肢とAIへの指示が一致していない利用できる選択肢を指示文に列挙する
スキャンPDFを読み取れない解像度が低い、傾いている、文字が小さい高解像度で再スキャンし、向きや余白を調整する
抽出結果が別レコードへ上書きされるKeyが一意でない、更新対象の指定が曖昧UNIQUEID()を利用し、対象レコードを明確にする
利用量が想定より増える長いPDFや繰り返しテストが多いテスト用PDFを短くし、実行履歴とクレジットを監視する
PDF内の画像や図表は過信しない

PDF内に埋め込まれた小さな画像や複雑な図表は、期待どおりに処理されない場合があります。公式ヘルプでも、PDF内の画像は正しく処理できない場合があり、PDF全体に対して小さい画像ほど問題が発生しやすいとされています。

帳票内の写真から数量を数える、図面上の記号を識別する、手書きの細かい注記を判断するといった処理は、確認作業を残してください。

エラー時の処理状態も用意する

処理状態には「未処理」「処理中」「要確認」「確定」だけでなく、「エラー」を追加すると管理しやすくなります。エラーになったレコードを専用Sliceで表示し、PDFの再登録や手入力へ切り替えられる運用にします。

実務で使いやすい活用シーン

請求書の受付管理

請求書番号、取引先名、請求日、支払期限、合計金額を抽出し、経理担当者の確認待ち一覧へ追加します。金額と支払期限は誤りの影響が大きいため、確認済になるまで会計処理へ連携しない設計が適しています。

注文書や発注書の登録

注文番号、納品先、希望納期、商品名、数量を抽出します。商品コードを商品マスタと照合し、一致しない場合だけ担当者へ確認を求める流れにすると、確認対象を絞れます。

点検報告書の管理

設備名、点検日、担当者名、判定、指摘事項を抽出します。異常や要修理などの判定を検知した場合に、担当部署へ通知するAutomationを後続ステップとして追加できます。

申込書や問い合わせ票の受付

氏名、会社名、連絡先、希望内容を抽出し、受付管理テーブルへ登録します。個人情報を扱うため、アプリの利用者制限、ファイルの閲覧権限、保存期間を事前に決めてください。

納品書と入庫記録の照合

納品書番号、商品名、数量を抽出し、AppSheetの在庫データと照合します。ただし、AIの抽出値だけで在庫数を確定させず、現物確認または担当者の承認を挟む設計が安全です。

向いている業務と向いていない業務

向いている業務向いていない業務
同じ種類のPDFを繰り返し登録する月に数件しかなく手入力の負担が小さい
抽出したい項目が明確に決まっているPDFごとに必要項目が大きく異なる
入力後に担当者が確認できる人の確認なしで即時確定する必要がある
転記ミスや入力時間を減らしたい画像や図面の高度な専門判断が中心
Enterprise Plusを利用している利用プランやクレジットの条件が合わない
蒼宮ルシア
蒼宮ルシア

👑AIに任せるのは読み取りと下書きまで、最終判断は人が担当する。この役割分担なら、速さと正確さを両立しやすくなりますわ。

失敗しにくい導入ロードマップ

  1. 手入力に時間がかかっているPDFを1種類選ぶ
  2. 抽出項目を3〜5個に絞る
  3. PDF受付テーブルと確認画面を作る
  4. Extract AIタスクを設定する
  5. 形式の異なるPDFを10〜30件テストする
  6. 項目別に誤りを記録する
  7. 列説明とAdditional instructionsを修正する
  8. 担当者1〜2名で試験運用する
  9. 処理時間と修正件数を測定する
  10. 効果を確認してから対象書類を増やす

導入効果は「AIが何件処理したか」だけで判断しません。手入力時間、確認時間、修正件数、再実行件数を比較し、業務全体の時間が減ったかを確認します。

たとえば、手入力が1件5分、AI抽出後の確認が1件1分なら、100件で約400分の削減になります。一方、誤抽出の修正に毎回5分かかる状態では、自動化の効果が出ません。精度だけでなく、確認を含めた総作業時間で評価してください。

よくある質問

AppSheetの無料プランでPDFから情報を抽出できますか?

公式ヘルプ上では、Geminiを使用したAI taskはAppSheet Enterprise Plus向けです。無料プランや他のプランでは表示されない可能性があるため、契約内容と最新の機能一覧を確認してください。

スキャンしたPDFでも読み取れますか?

読み取れる場合はありますが、文字を直接選択できるPDFより精度が下がる可能性があります。傾き、ぼやけ、薄い印字、小さな文字を避け、できるだけ高解像度でスキャンしてください。

日本語の請求書にも対応できますか?

日本語の項目を抽出する設定は可能です。ただし、独自の略称、縦書き、手書き文字、複雑な表では誤りが起こることがあります。実際に使用する帳票でテストしてください。

PDFから抽出した内容を別のテーブルへ登録できますか?

Extract rowsを使うと、PDF内の明細を既存テーブルの複数行として保存できます。通常のExtractでも、戻り値と後続のデータアクションを組み合わせることで別テーブルへ登録する設計が可能です。

同じPDFが何度も処理されるのを防ぐ方法はありますか?

処理状態列を作り、イベント条件を「PDFが存在し、処理状態が未処理の場合」に限定します。AIタスクの前に処理中へ変更することで、更新による重複実行を防ぎやすくなります。

AIが抽出した金額をそのまま会計処理に使ってもよいですか?

確認なしでの確定は避けたほうが安全です。小計、税額、税込合計を取り違える可能性があるため、PDF原本との照合や承認を経てから後続処理へ進めてください。

抽出できる項目数に制限はありますか?

Extractでは出力項目を最大12列まで選択できます。多数の項目が必要な場合でも、最初は業務上の優先度が高い列に絞り、精度を確認してから増やす方法が適しています。

おすすめAIツール

AppSheetのGemini搭載AIタスク

AppSheet内でPDFの受付、情報抽出、データ登録、確認画面までまとめたい場合は、ExtractとExtract rowsが有力な選択肢です。既存のAppSheetアプリへ組み込みやすい一方、利用プラン、クレジット、処理上限を確認する必要があります。

ChatGPTやGemini

テーブルの列構成、Additional instructionsの文章、テスト項目の洗い出しを考える際に役立ちます。実際の請求書や契約書をアップロードする場合は、社内規程や個人情報の取り扱いを確認し、機密情報を安易に外部サービスへ入力しないでください。

Google Cloud Document AI

帳票の種類が多い、大量の請求書を処理する、専門的な文書処理基盤が必要といったケースでは、Google Cloud Document AIを含む専用サービスも比較対象になります。AppSheetだけで完結する構成より設定や管理は複雑になるため、処理量と求める精度を確認して選択してください。

関連記事

まとめ

  • AppSheetのExtract AIタスクを使うと、PDFから指定項目を抽出してテーブルへ保存できる
  • 商品明細などを複数行へ登録する場合はExtract rowsと親子テーブルを利用する
  • 処理状態を管理し、未処理のPDFだけを対象にすることで重複実行を防ぎやすくなる
  • AIの結果は要確認データとして保存し、金額や日付は人が原本と照合してから確定する

AppSheetでPDFから情報を自動抽出する仕組みは、手入力を完全になくすためではなく、入力作業を確認作業へ変えるための仕組みです。まずは1種類の帳票と3〜5項目に絞り、テスト結果を見ながら列説明や指示文を改善してください。小さな範囲から始めることで、実務に合った安全なAIデータ登録へつなげられます。

タイトルとURLをコピーしました