無料で情報を見る

データ分析監査(CAAT)入門|Excel・SQL・BIで全件検査する手順

月曜の朝、内部監査部の机に経理部から届いたファイルが置かれています。前期1年分の支払データで、行数はおよそ18万件。これまでの購買プロセス監査では、ここから25件を無作為に抽出し、請求書と承認記録を1件ずつ照合してきました。今回は違います。部長から「全件を機械で見て、怪しいものだけを人の目で確かめてほしい」と指示が出たのです。

担当者はまず、同じ取引先・同じ金額・近い日付の支払を探す簡単な集計を組みました。数分後、画面には「重複の可能性あり」として37組の取引が並びます。多くは分割請求や定期払いといった正当な理由のあるものでしたが、2組だけ、同じ請求書が別々の担当者から二度支払処理されていました(本記事の事例はすべて架空のモデルケースです)。

サンプリングでは、この2組に当たる確率はきわめて低かったはずです。データ分析監査、いわゆるCAATは、こうした「まれだが重要な例外」を見逃さないための技法です。この記事では、CAATの考え方から、Excel・SQL・BIを使った具体的な手順、調書への残し方までを順に解説します。

この記事の要点

  • CAAT(Computer Assisted Audit Techniques)は、コンピュータを使って母集団の全件や大量データを検査する監査技法の総称です
  • サンプリングが「統制が機能しているか」を推定するのに対し、全件検査は「例外がどこにあるか」を特定するのに向いています
  • 始めるときは、重複支払・分割発注・休日仕訳などリスクと直結する分析シナリオを3〜5本に絞るのが近道です
  • 分析結果の信頼性は、元データの網羅性・正確性の確認で決まります。件数と合計金額の突合は省略できません
  • 抽出された例外は「不正」ではなく「調査対象」です。原因を確かめ、根拠とともに調書に残します

CAATとは何か:試査から全件検査への流れ

監査技法としての位置づけ

CAATは、Computer Assisted Audit Techniquesの略で、日本語では「コンピュータ利用監査技法」と訳されます。会計システムや業務システムのデータを監査人が自ら取得し、集計・照合・抽出を行って監査証拠を得る技法の総称です。専用の監査ソフトウェアを使う方法もあれば、Excel、SQL、BIツールといった汎用の道具を使う方法もあります。

監査で対象項目を選ぶ方法は、大きく3つに分かれます。日本公認会計士協会の監査基準報告書500「監査証拠」は、全ての項目の抽出(精査)、特定項目の抽出、監査サンプリングを挙げています。CAATは、このうち精査や特定項目抽出を、人手では現実的でない規模で実行可能にするものと位置づけることができます。

なぜ監査は「試査」が基本だったのか

もともと監査がサンプリングを中心としてきたのは、紙の帳票を人が1枚ずつ確認するには、時間とコストに限りがあったためです。統計的サンプリングは、少ない件数から母集団全体について一定の信頼度で結論を出すための工夫でした。統制テストの件数の根拠は内部監査のサンプル数はなぜ25件なのかで詳しく解説しています。

取引がほぼすべて電子データとして残るようになった今、「全件を見る」ためのコストは劇的に下がりました。日本公認会計士協会は2016年にIT委員会研究報告第48号「ITを利用した監査の展望~未来の監査へのアプローチ~」を公表し、ITを前提とした将来の監査の姿として、精査的な手続やデータ分析を重視するアプローチの可能性を検討しています。内部監査にとっても、全件検査は特別な技法ではなく、手の届く選択肢になりました。

内部監査でCAATが効く場面

内部監査は、財務諸表監査よりも対象範囲や手法の自由度が高いのが特徴です。そのため、支払・経費・購買・人事・アクセス権限など、データが存在する領域であれば幅広くCAATを適用できます。特に、不正や誤りが「少数の取引に集中して起きる」領域では効果が大きくなります。

一方で、承認者の判断の妥当性や、契約内容の適切さといった「データに現れない質的な判断」は、CAATだけでは評価できません。CAATは例外を見つける道具であり、例外の意味を判断するのは監査人です。この役割分担を最初に理解しておくことが、CAAT導入の失敗を防ぐ第一歩になります。

サンプリングと全件検査は何が違うのか

問いの立て方が違う

サンプリングと全件検査の違いは、件数の多寡ではなく「何を問うか」にあります。サンプリングは「この統制は母集団全体で有効に機能しているか」を推定するための手法です。25件で逸脱がなければ、逸脱率が一定水準未満だと一定の信頼度で言える、という形の結論になります。

これに対し全件検査は、「ルールに合わない取引はどれか」を特定するための手法です。結論は「条件に該当する取引は○件あり、その内訳は○○だった」という事実の列挙になります。推定ではないため、サンプリングリスク(抽出したサンプルがたまたま偏っているリスク)は原理的に生じません。

一部のカードだけを抜き出す方法と、全カードを並べて光で走査する方法を比べた図
サンプリングは一部から全体を推定し、全件検査は全体から例外を特定します。問いが違うため、どちらが優れているかではなく、目的に応じて使い分けることが大切です。

比較表:どちらを選ぶか

下の表は、両者の特徴を実務の観点から整理したものです。多くの監査では、どちらか一方ではなく、全件検査で例外を洗い出したうえで、例外以外の部分の統制の運用をサンプリングで確かめる、といった組み合わせが現実的です。

観点 サンプリング 全件検査(CAAT)
主な問い 統制は有効に機能しているか どの取引がルールに合わないか
結論の形 一定の信頼度での推定 該当取引の特定と件数
サンプリングリスク あり なし(ただし分析ロジックの誤りのリスクはある)
向いている対象 承認・照合など証跡の目視確認が必要な統制 金額・日付・マスタなどデータで判定できる条件
前提条件 母集団リストの網羅性 データの網羅性・正確性、分析ロジックの妥当性
主なコスト 証跡の収集と目視確認 データ取得・加工・例外調査

全件検査にも「リスク」はある

全件検査は万能ではありません。サンプリングリスクがない代わりに、「分析ロジックが間違っている」「データが欠けている」という別のリスクがあります。たとえば重複支払を「同じ請求書番号」で探すロジックでは、請求書番号の入力ゆれ(全角と半角、ハイフンの有無)がある取引を取りこぼします。

また、全件検査で「例外ゼロ」という結果が出ても、それは「設定した条件に該当する取引がなかった」ことを示すだけです。条件の外側にあるリスクは検査されていません。どの条件で何を検査したのかを明確に記録することが、全件検査の結論の範囲を正しく伝えるうえで欠かせません。

分析シナリオの選び方:リスクから逆算する

シナリオは「リスク」「データ」「ロジック」の3点セット

CAATの初心者がつまずきやすいのは、「とりあえずデータを集計してみる」ところから始めてしまうことです。集計結果は大量に出ますが、何が異常なのか判断できず、作業が止まってしまいます。分析は、先に「どんなリスクを検出したいか」を決め、次に「どのデータで」「どんな条件なら」検出できるかを設計する順序で進めます。

下の表は、内部監査でよく使われる分析シナリオの例です。最初の年度はこの中から自社のリスク評価に照らして3〜5本を選び、確実に回すことをお勧めします。不正リスクの洗い出し方は不正リスクと内部監査で解説しています。

シナリオ 検出したいリスク 必要なデータ 判定ロジックの例
重複支払 同一請求の二重払い 支払明細、取引先マスタ 取引先・金額が同一で、支払日が30日以内の組
分割発注 承認権限の回避 発注明細、権限規程 同一取引先・同一日または近接日の発注で、合計が承認上限を超えるが個々は下回る
休日・深夜の仕訳 不正な仕訳入力 仕訳明細(入力日時・入力者) 入力日が休日、または入力時刻が深夜帯の手入力仕訳
端数のない金額 見積り・架空取引 仕訳明細、支払明細 金額が10万円単位などで割り切れる手入力取引
従業員と取引先の一致 架空取引先・利益相反 従業員マスタ、取引先マスタ 振込口座・住所・電話番号の一致
退職者のアカウント利用 不正アクセス 人事の退職者一覧、システムのログイン履歴 退職日より後のログイン

財務諸表監査の「仕訳テスト」との関係

休日仕訳や端数のない金額の抽出は、財務諸表監査でいう「仕訳テスト」の考え方に近いものです。監査基準報告書240「財務諸表監査における不正」は、経営者による内部統制の無効化のリスクに対応するため、監査人に仕訳入力等の適切性を検証する手続を求めています。内部監査が同じ観点で仕訳データを分析しておくと、監査法人との対話でも共通言語を持てます。

ただし、内部監査の目的は外部監査の代替ではありません。仕訳テストの観点を借りながらも、内部監査では業務改善につながる原因分析(なぜその仕訳が休日に入力されたのか、業務フローに問題はないか)まで踏み込むことに価値があります。

統計的な手法も使いどころを選ぶ

金額データの先頭の数字の分布を調べる「ベンフォードの法則」の分析も、よく知られた手法です。自然に発生する多くの金額データでは、先頭の数字が1である割合は約30.1%、9である割合は約4.6%になる傾向があります。人為的に作られた数字はこの分布から外れやすいため、偏りの大きい取引先や勘定を絞り込む手がかりになります。

ただし、承認上限の直下に金額が集中するような業務や、定額の取引が多いデータでは、正当な理由で分布が外れます。ベンフォード分析は「どこを深掘りするかを決める」ための補助線として使い、それ自体を異常の証拠とみなさないよう注意が必要です。

Excel・SQL・BIの使い分けと実際の手順

道具はデータ量と繰り返しの頻度で選ぶ

CAATに使う道具は、分析の目的よりも、データ量と「同じ分析を何度繰り返すか」で選ぶと失敗が少なくなります。Excelのワークシートは最大1,048,576行までしか扱えないため、それを超える明細は、Power Queryでの読み込みやデータベースでの処理が必要になります。

道具 向いている場面 強み 注意点
Excel(関数・ピボット) 数万行までの単発分析 誰でも使え、レビューもしやすい 手作業の加工が残り、再現性が下がりやすい
Excel(Power Query) 数十万行・毎期繰り返す分析 加工手順が記録され、更新ボタンで再実行できる 手順の設計に慣れが必要
SQL(データベース) 百万行超・複数テーブルの結合 大量データを高速に処理し、ロジックを文章として残せる 実行環境とデータ取得の権限整備が必要
BIツール 結果の可視化・定期モニタリング 例外の傾向を部門別・期間別に俯瞰できる 分析ロジックをBI側に埋め込むと検証しにくい

Excelでの手順:重複支払を探す

Excelで重複支払を探す場合、まず支払明細に「取引先コード&金額」を連結したキー列を作ります。次に、そのキーの出現回数をCOUNTIFS関数で数え、2回以上出現する行に絞り込みます。最後に支払日を並べ替え、同一キー内で支払日の差が一定日数以内の組を抽出します。

この方法は手軽ですが、フィルタや並べ替えを手作業で繰り返すと、どの操作をしたか後から分からなくなります。操作の順序を調書に番号付きで書き残すか、Power Queryで手順を記録しておくと、レビュー担当者が同じ結果を再現できます。

SQLでの手順:ロジックを「読める形」で残す

SQLの利点は、分析ロジックがそのまま文章として残ることです。たとえば重複支払の抽出は、支払テーブルを自分自身と結合し、取引先と金額が一致し、支払日の差が30日以内で、支払番号が異なる組を取り出す、という形で書けます。

SELECT a.vendor_id, a.amount, a.payment_id AS id_1, b.payment_id AS id_2,
       a.paid_on AS date_1, b.paid_on AS date_2
FROM payments a
JOIN payments b
  ON a.vendor_id = b.vendor_id
 AND a.amount = b.amount
 AND a.payment_id < b.payment_id
 AND ABS(julianday(b.paid_on) - julianday(a.paid_on)) <= 30
ORDER BY a.vendor_id, a.paid_on;

日付の差を求める関数はデータベース製品によって異なります(上の例はSQLiteの書き方です)。実行したSQLは、実行日時、対象データのファイル名、抽出件数とともに調書に貼り付けておきます。翌年度に同じ分析を回すときの資産にもなります。

BIでの見せ方:例外を「傾向」で語る

BIツールは、例外の一覧を作るより、例外が「どこに、いつ、どれだけ」発生しているかを示すのに向いています。部門別・月別の例外件数を並べると、特定の拠点や決算月に集中しているといった傾向が見え、原因分析や経営への報告がしやすくなります。

分析の判定ロジックはSQLやPower Queryなど検証しやすい場所に置き、BIには結果だけを渡す構成にすると、ロジックのレビューと可視化を分けて管理できます。ダッシュボードの設計は内部監査にBIダッシュボードを導入する方法で詳しく解説しています。

データの信頼性を確かめ、例外を調べ、調書に残す

分析の5ステップ

CAATの作業は、分析そのものより前後の工程に時間がかかります。全体の流れは、データの取得、網羅性・正確性の確認、分析の実行、例外の調査、文書化の5ステップです。どの工程を省いても、結論の信頼性が損なわれます。

データの抽出から照合、フィルタ、例外の精査、ファイリングまでの流れを示した図
データ分析監査は、分析の前に網羅性を確かめ、分析の後に例外を人が調べて初めて監査証拠になります。前後の工程を省くと、結果の意味を説明できなくなります。

網羅性と正確性の確認が最重要

監査基準報告書500は、監査人が企業の作成した情報を監査証拠として利用する場合、その情報が十分に正確で網羅的であるかを評価することを求めています。内部監査でも考え方は同じです。受け取ったデータが期間中の取引をすべて含み、改変されていないことを確かめなければ、分析結果の「例外ゼロ」は意味を持ちません。

実務で最低限行いたいのは、件数と合計金額の突合です。支払データなら、抽出した明細の合計金額を、会計帳簿の該当勘定の期中発生額や、銀行の出金記録と照らし合わせます。あわせて、データの抽出条件(期間、会社コード、ステータス)を抽出担当者に確認し、抽出画面や抽出条件の記録を入手しておきます。

例外調査は「分類」から始める

抽出された例外は、そのまま不正や誤りを意味するわけではありません。冒頭のモデルケースでも、37組のうち大半は分割請求や定期払いでした。例外を効率よく調べるには、まず「正当な理由があるもの」「誤りだったもの」「説明がつかないもの」に分類し、説明がつかないものに調査の時間を集中させます。

分類の過程で「正当な理由があるもの」が大量に出る場合は、判定ロジックを見直すサインです。たとえば定期払いの取引先を除外する条件を加えれば、次回以降の例外件数を減らし、調査の精度を上げられます。この改善の繰り返しが、後述する継続的監査への足がかりになります。

分析調書の記入例

CAATの調書には、他の監査人が同じ手順を再現できるだけの情報を残します。以下は架空のモデルケースの記入例です。調書全般の書き方は監査調書の書き方と保管ルールも参考にしてください。

項目 記入例
分析名・目的 重複支払の検出(購買・支払プロセス監査、リスクNo.P-04「二重払い」に対応)
対象データ 支払明細(会計システムから経理部が抽出、対象期間2025年4月1日〜2026年3月31日)
網羅性確認 明細184,212件・合計金額を買掛金勘定の期中借方発生額と突合し一致。差異なし
判定ロジック 取引先コード・支払金額が同一、支払日差30日以内、支払番号が異なる組(SQLを別紙1に添付)
実行記録 2026年5月12日実行、実行者:監査部A、抽出結果37組
例外調査 分割請求21組・定期払い14組は契約書で正当性を確認。2組は同一請求書の二重処理で、うち1組は返金済み、1組は返金手続中
結論・指摘 請求書番号による重複チェックがシステム上ないことが原因。支払登録時の重複警告の導入を提言
次回への改善 定期払い取引先を除外条件に追加。四半期ごとの定期実行を検討

よくある失敗と対策

失敗1:データを集めてから目的を考える

分析の目的を決めないままデータを集めると、集計作業に時間を取られ、監査の結論につながりません。対策は、リスク評価の結果から検出したいリスクを先に決め、シナリオ表を作ってからデータを依頼することです。依頼時に必要な項目を明示すれば、データの受け渡しも一度で済みます。

失敗2:網羅性を確かめずに分析する

受け取ったデータが一部の会社コードや期間しか含んでいなかった、というのはよくある事故です。件数と合計金額の突合を分析の前に必ず行い、その結果を調書に残します。データの抽出を被監査部門に依頼する場合は、抽出条件の画面記録をあわせて入手しましょう。

失敗3:例外をそのまま指摘事項にする

抽出された例外の件数をそのまま報告書に載せると、被監査部門から「正当な理由がある取引ばかりだ」と反発を受け、監査の信頼を損ないます。例外は必ず個別に調査し、分類したうえで、真に問題のあるものだけを発見事項とします。

失敗4:担当者しかロジックを分からない

Excelの複雑な関数や、個人のパソコンにしかないスクリプトで分析すると、担当者の異動とともにノウハウが失われます。ロジックは文章とコードの両方で調書に残し、レビュー担当者が読んで理解できる形にしておくことが大切です。生成AIでコードを作る場合も、ロジックの妥当性は人が確認する必要があります(生成AIで内部監査はどう変わる?も参照)。

よくある質問

CAATを始めるのに専用ソフトは必要ですか?

必須ではありません。数万行程度のデータであれば、ExcelとPower Queryで多くの分析が可能です。データ量が増えたり、複数のシステムのデータを結合したりする段階で、SQLが使える環境や監査専用ソフトの導入を検討すると、投資の判断がしやすくなります。

全件検査をすれば、サンプリングは不要になりますか?

不要にはなりません。承認印の有無や、承認者が内容を理解して承認したかといった、データに現れない統制の運用は、証跡の目視確認が必要です。全件検査で例外を特定し、残りの統制の運用をサンプリングで確かめる組み合わせが現実的です。サンプル数の決め方は内部監査サンプル数計算機で確認できます。

被監査部門からデータを受け取るときの注意点は?

必要な項目、対象期間、ファイル形式を文書で依頼し、抽出条件の記録もあわせて受け取ります。個人情報を含むデータは、必要最小限の項目に絞り、保管場所とアクセス権限、保存期間を決めておきましょう。受け取ったファイルは、改変されていないことを示すために原本を別に保管しておくと安心です。

分析結果で例外がゼロだった場合、どう報告すればよいですか?

「設定した条件に該当する取引はなかった」と、条件の範囲を明示して報告します。例外ゼロは統制が機能していることを示唆しますが、条件外のリスクまで否定するものではありません。検査した条件、対象データ、網羅性確認の結果を併記することで、結論の範囲が正しく伝わります。

まとめ

CAATは、サンプリングでは見逃しやすい「まれだが重要な例外」を、全件の中から特定するための技法です。成功の鍵は、道具の選択よりも、リスクから逆算したシナリオ設計と、データの網羅性確認、例外の丁寧な調査にあります。最初は3〜5本のシナリオを確実に回し、調書にロジックを残すことから始めてみてください。

同じ分析を定期的に回せるようになったら、次は継続的監査・継続的モニタリングの始め方に進むのが自然な流れです。統制テストの件数設計は内部監査サンプル数計算機で確認できます。

データ分析監査の導入や分析シナリオの設計についてのご相談は、お問い合わせからお寄せください。

参考資料

  • 日本公認会計士協会 監査基準報告書500「監査証拠」
  • 日本公認会計士協会 監査基準報告書240「財務諸表監査における不正」
  • 日本公認会計士協会 IT委員会研究報告第48号「ITを利用した監査の展望~未来の監査へのアプローチ~」(2016年3月28日) https://jicpa.or.jp/specialized_field/20160328vav.html
  • The Institute of Internal Auditors「グローバル内部監査基準」(2024年1月公表、2025年1月発効)
  • 一般社団法人日本内部監査協会 https://www.iiajapan.com/

この記事で使える無料ツール

J-SOX・内部統制無料内部監査サンプル数計算機内部監査・J-SOX 運用評価のサンプル数を、統制頻度別の慣行値(25 件など)と統計的サンプルサイズ(信頼度・許容逸脱率)の両方から算出する無料ツールです。使ってみる →

内部監査の情報サイトから、実務の基盤へ。

信頼できるナレッジと実務ツールで、内部監査の価値をさらに高めます。