業務効率化・自動化
請求書のチェックをAIに任せる

請求書のチェックをAI「Gemini」に任せて、ヒューマンエラーゼロへ

業務改善を「やりたい」と思っても、コストや人手不足の壁に直面しがちです。大がかりなシステム導入は難しいけれど、「もっと楽にできる方法はないか」と考えている方も多いのではないでしょうか。

そんなときに注目したいのが AIの活用 です。
AIというと大げさに聞こえるかもしれませんが、実は「日常業務のちょっとした部分」から導入できるんです。

この記事では、請求書や見積書のチェック業務を例に、AIを導入することでどのように効率化できるのかをご紹介します。

請求書チェックの「うっかりミス」、どう防ぐ?

中小企業のバックオフィス業務でよく耳にする悩みのひとつに、請求書や見積書の確認作業があります。 
金額の転記ミスや計算間違い、日付や取引先情報の入力漏れ……。人が手作業でチェックを行う以上、こうしたミスはどうしても発生してしまいます。 

大企業であれば「ダブルチェック体制」を取ることもできますが、少人数で業務を回す地方の中小企業では、それが難しいのが現実です。 
「取引先に請求書を出したあとにミスが見つかり、信用問題になってしまった」
「請求書の再発行に時間を取られ、他の業務に遅れが出た」 
そんな経験をしたことがある方も少なくないのではないでしょうか。 

では、この確認作業をAIにアシストさせることができたらどうでしょうか?

人手不足時代の新しいチェック体制

AIというと「難しそう」「専門知識が必要」と思われがちですが、実際にはもっと身近に使えます。 
ポイントは、AIに「正しいかどうかを確認させる」役割を任せることです。 

請求書や見積書でAIがチェックできるポイント

  • 金額(小計・消費税・合計)が合っているか 
  • 請求日や支払期限が抜けていないか 
  • 取引先名や担当者名が正しく記載されているか 
  • 過去の契約条件と金額が一致しているか 

これらをAIに確認させれば、担当者は「AIが指摘した部分だけ見直す」形に変えられます。 
つまり、全件を人が細かく目で追うのではなく、AIに一次チェックを任せることで効率化できるのです。 

Googleスプレッドシート×AIでできるチェックの仕組み

では、実際にどのようにすればいいのでしょうか。

◆ Googleスプレッドシートから AI「Gemini」に質問する

まずは、Googleスプレッドシートに標準搭載されたAI機能「Gemini」を使ってみましょう(2025年8月現在、有料プラン限定1)。 

1. 請求書や見積書のデータをスプレッドシートに入力します(またはCSV取り込み)

まずは、チェック対象の情報をスプレッドシートに入力します。

スプレッドシートにCSVファイルから請求データを取り込む手順(クリックで表示します)

[ 1. ] スプレッドシートを開く

Googleスプレッドシートを開き、データをインポートしたいファイルを開きます。


[ 2. ] データを取り込む
  1. メニューバーから「ファイル」をクリックします。

  2. ドロップダウンメニューから「インポート」を選択します。


[ 3.  ] CSVファイルを選択
  1. 「インポート」ウィンドウが開いたら、「アップロード」タブを選択します。

  2. 「デバイスのファイルを選択」ボタンをクリックし、パソコンに保存されているCSVファイルを選びます。ファイルをウィンドウに直接ドラッグ&ドロップすることも可能です。


[ 4. ] インポート設定を行う

CSVファイルを選択すると、「インポートの場所」「区切り文字タイプ」「テキストを数値、日付、数式に変換」などの設定項目が表示されます。

  • インポートの場所: データをどこに挿入するかを決めます。

    • 現在のシートに新しいシートを挿入: 新しいタブ(シート)としてデータを追加します。

    • 現在のシートを置き換える: 現在のシートのデータを上書きします。

    • カーソル位置にセルを挿入: 選択しているセルを基準にデータを挿入します。

  • 区切り文字タイプ: CSVファイルでデータが何で区切られているかを選択します。通常は「カンマ」ですが、タブやセミコロンなど別の区切り文字が使われている場合は適宜変更します。

  • テキストを数値、日付、数式に変換: チェックを外すと、CSVファイル内のデータがそのままテキストとして扱われるため、意図しない書式変更を防げます。


[ 5. ] データをインポートする

設定が完了したら、「データをインポート」ボタンをクリックします。これでCSVファイルからスプレッドシートへのデータ取り込みが完了します。

2. Geminiに質問します

スプレッドシート画面右上の「Geminiに質問する」アイコンをクリックすると、右サイドバーにGemini欄が表示されます。ここから質問ができます。

プロンプト入力ボックスにAIへの質問文を入力します。
AIを使うとき最も重要なのは「プロンプト」と呼ばれる、AIにどんなことをして欲しいのか指令する文章です。
いかにAIが理解しやすく、欲しい結果が得られる文章で指令できるかがポイントです。
今回は入力チェックを実行してもらうために、次のように質問してみます。

請求書データをチェックしてください。
– 消費税の計算と合計金額が一致しているか
 – 支払期日が入力されているか
 – 単価が過去と異なっていないか(参考: この表の前の行)
問題点があれば具体的に指摘してください。
指摘時には【行番号】と【No欄の値】を記してください。

3. 返答(チェック結果)を確認します

請求書データに対して質問したときの、Geminiの返答

このように、Geminiがチェック結果を返してくれました。
この方法では、文章で返答されます。質問内容(プロンプト)を工夫すれば、一覧形式で返答してもらうことも可能です。

ここで、「毎回質問を入力するのは手間だ」「回答結果がエラーの場合はスプレッドシート上の行の色が変われば分かりやすい」と思いませんか?
そこで、少しレベルアップして、GoogleスプレッドシートとAIを連携する方法を考えてみましょう。

◆ GoogleスプレッドシートのGASで、AI「Gemini」を連携させる

実現イメージ

つぎのようなイメージで連携し、チェック処理を自動化してみます。

  1. 請求書や見積書のデータをスプレッドシートに入力(またはCSVを取り込み) 
  2. メニューから「AIチェック」-「請求書・見積書をチェック」を実行
  3. AIが以下の観点でチェック
    「消費税の計算が正しいかどうか」
    「合計金額の計算が正しいかどうか」
    「支払期日の記載があるかどうか」
    「過去の履歴と単価が同じかどうか」 
  4. 結果が自動でシートに表示され、担当者が確認

スプレッドシートのテンプレート構成(サンプル)

最終列にはチェック結果を表示する「結果」欄を設けます。

※スプレッドシートにCSVファイルから請求データを取り込む手順は上述しています。

Google Apps Script(GAS)コード(サンプル)

// ★ 先に Google Cloud で Gemini APIキーを取得し、以下に設定してください
const API_KEY = "YOUR_API_KEY";
const MODEL = "gemini-1.5-flash"; // 軽量モデルでOK

// カスタムメニューを追加
function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu("AIチェック")
    .addItem("請求書・見積書をチェック", "checkInvoices")
    .addToUi();
}

function checkInvoices() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const lastRow = sheet.getLastRow();
  
  // データは 2 行目以降を対象にする
  let records = [];
  for (let row = 2; row <= lastRow; row++) {
    records[row-2] = {
      管理番号: sheet.getRange(row, 1).getValue(),
      顧客名: sheet.getRange(row, 2).getValue(),
      請求日: sheet.getRange(row, 3).getValue(),
      支払期日: sheet.getRange(row, 4).getValue(),
      品目: sheet.getRange(row, 5).getValue(),
      単価: sheet.getRange(row, 6).getValue(),
      数量: sheet.getRange(row, 7).getValue(),
      金額: sheet.getRange(row, 8).getValue(),
      消費税: sheet.getRange(row, 9).getValue(),
      合計金額: sheet.getRange(row, 10).getValue(),
    }; 
  }

  // プロンプト: 過去行との比較も含めたチェック依頼
  const prompt = `
以下の請求書データについて、次に記載するルールに対して、前行までの履歴を踏まえて不自然な点をチェックしてください。
各行についてJSON形式で「行番号」「チェック結果」を返してください。
ルール:
- 消費税に関して、消費税率は10%とし、金額×0.1(端数がある場合は切り捨て)と等しいかどうか、正しければ「問題なし」です
- 合計金額に関して、金額と消費税の合計が合計金額になっているかどうか、正しければ「問題なし」です
- 支払期日に関して、支払期日が入力されているか、入力されていれば「問題なし」です
- 単価に関して、単価が同一顧客名、同一品目の過去の履歴があれば、その単価と同じかどうか、過去の履歴が無い場合は「問題なし」です
4つのチェックすべて「問題なし」の場合は「OK」と答えてください。問題点がある場合は、問題点のみ具体的に指摘してください。

データ:
${JSON.stringify(records)}
    `;

  // Geminiにアクセス
  const checkResults = callGeminiAPI(prompt);
  if (checkResults === false) {
    Logger.log("エラー: 結果を取得できませんでした");
    return;
  }

  // シートに反映
  checkResults.forEach(r => {
    let rowIndex = r.行番号 +1;
    let resultText = r.チェック結果;
    let resultCell = sheet.getRange(rowIndex, 11); // 「結果」列(K列=11列目)
    resultCell.setValue(resultText);

    if (resultText !== "OK") {
      sheet.getRange(rowIndex, 1, 1, 11).setBackground("#FFCCCC"); // 行全体を赤色に
    } else {
      sheet.getRange(rowIndex, 1, 1, 11).setBackground(null); // 色リセット
    }
  });
}

// Gemini API 呼び出し
function callGeminiAPI(prompt) {
  const url = `https://generativelanguage.googleapis.com/v1beta/models/${MODEL}:generateContent?key=${API_KEY}`;
  
  const payload = {
    contents: [{ parts: [{ text: prompt }] }]
  };

  const options = {
    method: "post",
    contentType: "application/json",
    payload: JSON.stringify(payload),
    muteHttpExceptions: true,
  };

  try {
    const response = UrlFetchApp.fetch(url, options);
    const result = JSON.parse(response.getContentText());
    // Geminiの返答からJSON部分を抽出
    let text = result.candidates?.[0]?.content?.parts?.[0]?.text || "";
    // 不要な部分を空文字列に置き換える
    text = text.replace("```json\n", "").replace("\n```\n", "");
    let checkResults;
    try {
      checkResults = JSON.parse(text);
      return checkResults;
    } catch (e) {
      Logger.log("JSON parse error: " + e);
      return false;
    }
  } catch (e) {
    Logger.log("エラー: " + e.message);
    return false;
  }
}

使い方

  1. 上記の列構成でスプレッドシートを作成し、データを入力する
  2. 「拡張機能 → Apps Script」でGASエディタを開き、コードを貼り付ける
  3. APIキーを設定
  4. シートを再読み込みすると「AIチェック」メニューが出現
  5. 「AIチェック」-「請求書・見積書をチェック」ボタンを押すと、各行のデータがAIチェックされ「結果」に出力されます

AIを使った請求書チェックのメリット

AIによる請求書チェックを導入すると、以下のような効果が期待できます。

  • ヒューマンエラー削減
    金額や日付などの「見落としミス」が減り、信用トラブルを防げます。
  • 確認作業の時短化
    これまで30分かかっていた確認が5分で済むように。担当者は本来の業務に集中できます。
  • 少人数体制でも安心
    経理担当が1人でも、AIが「もう1人の確認役」としてサポートします。
  • 顧客・取引先との信頼維持
    正確な請求書の発行により、ビジネス上の信頼関係を維持できます。

AIを「経理担当者の補助」として組み込むことで、チェック作業はAI → 最終判断は人という安心感のある体制がつくれます。

まとめ:AIを確認パートナーにして業務効率化

中小企業にとって、請求書や見積書の確認は欠かせない業務ですが、時間も人手も取られる厄介な作業でもあります。 そこでAIを「確認のパートナー」として活用することで、ヒューマンエラーを減らし、少人数でも効率的に業務を回せる体制をつくることが可能です。

AIというと難しそうに感じるかもしれませんが、Google Workspaceやスプレッドシートと組み合わせれば、意外とシンプルに始められます。  

弊社 株式会社システムエンジニアリング では、こうした「AI × 業務改善」の仕組みづくりをサポートしています。 
もし「請求書チェックを効率化したい」「AIを業務に活用してみたい」と思われた方は、ぜひお気軽にご相談ください。 

最後に:請求データの入力を簡単にする方法

最後までお読みいただき、ありがとうございます。

今回の記事では、請求書の情報をスプレッドシートに入力する前提でご紹介しました。ただ、業務システムが整備されていない場合、手作業での入力は大きな負担になりますよね。

そこで思い出してほしいのが、家計簿アプリです。レシートを写真に撮るだけで、自動的に中身を読み取ってくれるように、請求書も同じように自動入力できたら便利だと思いませんか? この仕組みを実現する技術の一つがOCR(光学的文字認識)です。さらに、近年ではAIの力を活用したAI-OCRが登場し、より高精度な文字認識と情報の自動抽出が可能になっています。

次回は、このAI-OCRを使って請求書を画像から読み取り、スプレッドシートに自動入力する方法を具体的にご紹介します。AIの力を借りて、面倒な手入力から解放されましょう。どうぞお楽しみに!

  1. 以前は「Gemini for Google Workspace」というアドオンとして提供されていましたが、2025年8月現在、多くのGoogle WorkspaceプランにAI機能が標準搭載されています。具体的には、以下のプランがGeminiの機能を利用できる対象となっています。
    Google Workspace Business Standard
    Google Workspace Business Plus
    ・Google Workspace Enterprise
    Business Starterプランでも一部のAI機能が利用できる場合がありますが、スプレッドシートのGeminiをフル活用したい場合は、Business Standard以上のプランが一般的です。
    料金や機能は変更される可能性があるため、最新の情報は Google Workspaceの公式サイト で確認することをおすすめします。 ↩︎
この記事は役に立ちましたか?

参考になりましたら、下のボタンで教えてください。

コメント

この記事へのコメントはありません。

PAGE TOP
ログイン