「サンプルで数十件を確認しただけでは、本当に問題がないと言い切れない」「経営層から全件を見たのかと聞かれて答えに詰まった」。こうした悩みを持つ内部監査部門は少なくありません。CAAT(Computer Assisted Audit Techniques:コンピュータ利用監査技法)を使えば、会計システムや経費精算システムから取得したデータを対象に、条件に合致する取引を全件から抽出できます。本記事では、CAAT による全件テストをこれから始める内部監査担当者向けに、基本的な考え方、データの入手と検証、仕訳・経費の代表的な分析シナリオ、例外の調査と調書化までを順を追って解説します。
CAATによる全件テストとは
CAAT とは、コンピュータとデータ分析ツールを利用して監査手続を実施する技法の総称です。専用の監査ソフトウェアに限らず、表計算ソフト、データベースの問い合わせ言語(SQL)、BI ツール、Python などのプログラミング言語を使った分析も含めて CAAT と呼ばれることが一般的です。
全件テストとは、母集団(テスト対象となる取引の全体)から一部を抜き出して確認するのではなく、母集団のすべてのデータに対して一定の条件を当てはめ、条件に合致する取引(例外)を洗い出す手法です。例えば「承認者と起票者が同一の仕訳」「休日に計上された仕訳」「同一日・同一金額・同一支払先の経費精算」といった条件を全件に適用し、該当したものだけを詳細に調査します。
サンプリングとの違い
サンプリングと全件テストは、どちらが優れているというより、目的と得られる心証が異なります。主な違いは次のとおりです。
| 観点 | サンプリング | 全件テスト(CAAT) |
|---|---|---|
| 対象 | 母集団から抽出した一部の取引 | 母集団のすべての取引 |
| 得意な検証 | 証憑との突合、承認の実在性など書類の確認 | 条件に基づく異常・例外の網羅的な抽出 |
| 心証の性質 | 母集団全体を統計的・判断的に推定 | 条件に該当する取引の有無を事実として確認 |
| 前提条件 | 母集団の定義と抽出方法の妥当性 | データの網羅性・正確性、条件設計の妥当性 |
| 限界 | 抽出されなかった取引の異常を見逃す可能性 | データに現れない不正(書類の偽造など)は検出しにくい |
| 工数の特徴 | 件数に比例して確認工数が増える | 初回のデータ準備に工数がかかり、2回目以降は再利用しやすい |
全件テストで例外を絞り込み、その例外に対して証憑確認などの詳細テストを行うという組み合わせが、実務では最も効果的です。
分析ツールの選び方
CAAT に使うツールは、必ずしも専用の監査ソフトウェアである必要はありません。データ件数が数万件程度であれば表計算ソフトでも分析できますが、件数が多い場合や分析手順を繰り返し実行したい場合は、データベースや BI ツール、スクリプト言語の利用を検討します。選定にあたっては、扱えるデータ量、分析手順の保存と再実行のしやすさ、操作ログの記録、部門内で使いこなせる人材がいるかといった観点で比較するとよいでしょう。高機能なツールを導入しても、使える担当者が限られていれば定着しません。まずは既存のツールで小さく始め、必要に応じて段階的に移行するのが現実的です。
全件テストで得られる効果
CAAT による全件テストを導入すると、監査の質と効率の両面で次のような効果が期待できます。
- 「一定の条件に該当する取引は全件確認した」と、根拠を持って説明できるようになる
- 目視では気づきにくい重複、連番の欠落、休日・深夜の処理などのパターンを見つけやすくなる
- 分析手順を保存しておけば、翌期の監査や他拠点の監査で再利用できる
- 例外の件数や金額の推移を把握でき、リスクの高い領域に監査資源を集中しやすくなる
- 分析結果をもとに、業務部門と具体的な事実に基づいた対話ができる
一方で、例外が大量に抽出されて調査しきれない、データの意味を取り違えて誤った結論を出す、といった失敗も起こりがちです。効果を得るためには、目的の明確化とデータの検証を丁寧に行うことが欠かせません。
データの入手と検証の手順
全件テストの品質は、分析に使うデータの品質に左右されます。分析を始める前に、次の手順でデータを準備・検証します。
1. 分析目的とリスクの整理
最初に「どのリスクを検証するために、どの取引データを分析するのか」を明確にします。例えば「経営者による内部統制の無効化による不適切な仕訳」「経費の二重請求」など、監査計画で識別したリスクと分析シナリオを対応付けておくと、分析の範囲がぶれにくくなります。
2. データ項目の特定と依頼
システム管理者や業務部門に対し、必要なデータの範囲(期間、会社、勘定科目など)と項目(伝票番号、計上日、入力日時、起票者、承認者、金額、摘要など)を具体的に依頼します。データ定義書やテーブル定義があれば、あわせて入手しておくと項目の意味を確認しやすくなります。
仕訳データを依頼する場合の項目例は次のとおりです。依頼書に「項目の用途」まで書いておくと、システム管理者が代替となる項目を提案しやすくなります。
| 項目 | 内容 | 分析での用途 |
|---|---|---|
| 伝票番号・行番号 | 仕訳を一意に識別する番号 | 欠番・重複の確認、証憑との突合 |
| 計上日・入力日時 | 会計上の日付と、システムに入力された日時 | 休日・深夜入力、期末後の遡及入力の抽出 |
| 起票者 ID・承認者 ID | 入力したユーザーと承認したユーザー | 自己承認、権限外ユーザーの抽出 |
| 勘定科目・補助科目 | 借方・貸方それぞれの科目 | 通常と異なる科目の組み合わせの抽出 |
| 金額・借貸区分 | 仕訳金額と借方・貸方の区分 | 端数のない金額、多額取引の抽出 |
| 摘要 | 仕訳の説明文 | 空欄や特定語句を含む仕訳の抽出 |
| 入力区分 | 手入力か、他システムからの自動連携か | 手入力仕訳への絞り込み |
| 取消・修正の有無 | 取消仕訳や修正仕訳との関連 | 期末前後の計上と取消の組み合わせの抽出 |
ファイル形式は、項目の区切りが明確で文字化けしにくい形式を指定し、文字コードや日付の書式もあわせて確認しておきます。金額の桁区切りや先頭のゼロが落ちるといった変換時の問題は、分析結果の誤りにつながるため注意が必要です。
3. 網羅性と正確性の検証
入手したデータが母集団のすべてを含んでいるか、途中で欠落や改変がないかを確認します。代表的な検証方法は次のとおりです。
- 仕訳データの借方・貸方の合計が一致しているか
- 勘定科目別の合計額が試算表や総勘定元帳と一致しているか
- 伝票番号に欠番・重複がないか、欠番がある場合に理由を説明できるか
- 対象期間の最初と最後の日付が依頼した範囲と一致しているか
- 抽出条件やデータ取得の手順を記録し、第三者が再現できる状態にしているか
この検証を省略すると、分析結果そのものの信頼性が損なわれます。検証の結果は調書に残し、監査の証拠として説明できるようにしておきます。

仕訳データの分析シナリオ例
仕訳データは、財務報告に関わる不正や誤謬を検出するうえで最も重要な分析対象です。J-SOX 2024改訂でも不正リスクへの対応が明記されており、経営者による内部統制の無効化を想定した仕訳の検討は重要性を増しています。改訂の詳細は「J-SOX 2024改訂のポイントと内部監査部門の対応」をご覧ください。代表的なシナリオを次の表にまとめます。
| シナリオ | 抽出条件の例 | 想定するリスク |
|---|---|---|
| 休日・深夜の仕訳 | 会社カレンダー上の休日や、通常の業務時間外に入力された仕訳 | 通常の統制を経ない不適切な処理 |
| 起票者と承認者の同一 | 起票者 ID と承認者 ID が同じ仕訳 | 職務分掌の不備、自己承認 |
| 普段使わない勘定の組み合わせ | 売上と現金以外の特殊な相手勘定、過去に例のない科目の組み合わせ | 架空計上、利益調整 |
| 決算期末前後の多額の仕訳 | 期末日前後の一定期間に計上され、翌期首に取り消された仕訳 | 期間帰属の操作 |
| 端数のない金額 | 百万円単位など、きりのよい金額の手入力仕訳 | 見積りや根拠の乏しい調整 |
| 摘要の空欄・特定語句 | 摘要が空欄、または「調整」「修正」「仮」などを含む仕訳 | 説明のつかない調整仕訳 |
| 権限外ユーザーによる入力 | 経理部門以外のユーザーや、退職者・休職者 ID による入力 | アクセス管理の不備 |
シナリオを選ぶときの考え方
すべてのシナリオを一度に実施する必要はありません。自社の業務特性やリスク評価の結果を踏まえ、3〜5 程度のシナリオから始めるのが現実的です。例えば、手入力の仕訳が多い会社では手入力仕訳の分析を優先し、多数のユーザーが会計システムを利用している会社では権限外ユーザーの分析を優先する、といった具合です。
また、条件を厳しくしすぎると重要な取引を見逃し、緩くしすぎると例外が大量に抽出されます。最初は条件をやや広めに設定し、抽出結果を見ながら業務上説明のつく取引を除外する条件を加えていく、という調整を行うのが一般的です。
抽出条件の定義の書き方
抽出条件は、担当者が変わっても同じ結果を再現できるよう、言葉で明確に定義しておきます。たとえば「休日の仕訳」であれば、次のように要素を分けて書くと曖昧さが残りません。
- 対象:対象期間の仕訳データのうち、入力区分が手入力のもの
- 条件:入力日時の日付が、会社カレンダー上の休日に該当するもの
- 除外:システム管理者による定例の月次処理で、事前に申請された作業日に入力されたもの
- 出力:伝票番号、入力日時、起票者、承認者、金額、摘要
「休日」を土日祝日とするのか、会社カレンダーの休日とするのか、「深夜」を何時から何時とするのかといった定義を決めずに分析を始めると、後から結果の説明に困ることになります。定義は事前に監査責任者のレビューを受けておくと安心です。
経費精算データの分析シナリオ例
経費精算は件数が多く、一件あたりの金額は小さい一方で、不正の手口が比較的単純で繰り返されやすい領域です。全件テストとの相性がよく、最初の CAAT テーマとして取り組みやすい分野でもあります。
- 重複申請:同一申請者・同一日・同一金額・同一支払先の申請が複数存在しないか
- 分割申請:承認権限の上限額を回避するため、同一日に上限直下の金額で複数回申請していないか
- 承認の不備:申請者と承認者が同一、または申請者の上長以外が承認していないか
- 休日・休暇中の経費:休日や勤怠システム上の休暇日に、業務上の交通費や接待費が申請されていないか
- 交際費の偏り:特定の申請者や特定の取引先に交際費が集中していないか
- 規程上限の超過:宿泊費や日当が旅費規程の上限を超えていないか
経費精算の分析では、勤怠データや人事マスタ(所属・役職・上長)と組み合わせることで、分析の精度が大きく上がります。ただし、人事データには個人情報が含まれるため、利用目的と取り扱い範囲を事前に整理し、必要最小限の項目に絞って入手するよう注意してください。
購買・支払データについても同様の考え方で分析できます。例えば、取引先マスタの口座情報と従業員マスタの口座情報の一致、登録直後の取引先への多額の支払、請求書番号の重複などは、架空取引や二重払いの兆候を捉える代表的なシナリオです。仕訳・経費で分析の型ができたら、購買・支払、売上・債権といった他の業務プロセスへ順次広げていくとよいでしょう。
例外の調査と調書化
全件テストで抽出した例外は、それ自体が不備や不正を意味するわけではありません。業務上の正当な理由がある取引も多く含まれます。例外の調査は次の流れで進めます。
- 抽出された例外の件数・金額を集計し、全体像を把握する
- 明らかに業務上説明のつくパターン(定期的な自動仕訳、システム移行時の一括仕訳など)を特定し、根拠を確認したうえで除外する
- 残った例外について、金額やリスクに応じて詳細調査の対象を決める
- 対象取引の証憑、承認記録、関係者への質問などで事実を確認する
- 確認結果を「問題なし」「改善が必要」「さらに調査が必要」などに区分する
調書に記録する項目テンプレート
全件テストの調書には、第三者が同じ結果を再現できる程度の情報を残しておくことが重要です。次の項目をテンプレートとして活用してください。
| 項目 | 記載内容 |
|---|---|
| 分析目的 | 検証するリスクと、監査計画との対応関係 |
| 対象データ | システム名、テーブル名、対象期間、件数、取得日、取得者 |
| データ検証 | 試算表との突合結果、欠番・重複の確認結果 |
| 抽出条件 | 条件の定義、除外条件とその理由 |
| 使用ツール・手順 | ツール名、スクリプトやクエリの保存場所 |
| 抽出結果 | 例外件数・金額、詳細調査の対象とした件数と選定理由 |
| 調査結果 | 確認した証憑・質問内容、結論 |
| 指摘事項 | 改善が必要な事項と、報告書への反映状況 |
分析手順をスクリプトやクエリとして保存しておけば、翌期は同じ手順を最新データに適用するだけで分析を再実行できます。これが継続的モニタリングへの足がかりになります。
全件テストを定着させるためのポイント
CAAT は一度試して終わりではなく、監査の標準手続として定着させてはじめて効果を発揮します。定着に向けては次の点を意識するとよいでしょう。
- 小さく始める:対象プロセスとシナリオを絞り、成果を出してから範囲を広げる
- 手順を標準化する:データ依頼書、検証手順、調書テンプレートを部門内で共通化する
- スキルを分散させる:特定の担当者だけが分析できる状態を避け、手順書と勉強会で知識を共有する
- IT部門と連携する:データの取得方法や項目の意味について、IT部門やシステム管理者と早めに合意する
- 結果を可視化する:例外件数の推移などを BI ダッシュボードで共有し、経営層や業務部門との対話に活用する
分析結果の可視化については「BIによるKRIダッシュボードの設計」も参考にしてください。
初回プロジェクトの進め方の例
はじめて全件テストに取り組む場合は、1 つの監査テーマに組み込んで小さく試すのが現実的です。次は、経費精算の監査に CAAT を組み込む場合の進め方の一例です。
| 段階 | 主な作業 | 成果物 |
|---|---|---|
| 計画 | 検証するリスクとシナリオを 3 つ程度に絞り、必要なデータ項目を洗い出す | 分析計画書、データ依頼書 |
| データ入手 | システム管理者と項目の意味を確認し、対象期間のデータを入手する | 入手データ、取得手順の記録 |
| 検証 | 件数・合計金額を会計データや管理資料と突合し、欠落がないかを確認する | データ検証の調書 |
| 分析 | 抽出条件を適用し、例外の件数・金額を集計する | 抽出結果一覧、分析手順の保存 |
| 調査 | 例外を業務上の理由の有無で区分し、必要なものは証憑と質問で確認する | 例外調査の調書 |
| 報告・振り返り | 監査報告書に結果を反映し、条件の見直し点や翌期への引継事項を整理する | 監査報告書、手順書の改訂 |
初回は想定以上にデータ準備と検証に時間がかかることが多いため、監査全体のスケジュールに余裕を持たせておくことが大切です。2 回目以降は、保存した手順を再利用することで、分析にかかる時間を短縮しやすくなります。
よくある失敗と対策
全件テストの導入でつまずきやすいポイントと、その対策を整理します。
| 失敗例 | 原因 | 対策 |
|---|---|---|
| 例外が大量に抽出され、調査しきれない | 条件が広すぎ、業務上説明のつくパターンを除外していない | 例外をパターン別に集計し、根拠を確認したうえで除外条件を追加する |
| 分析結果を業務部門に説明したら、データの意味が違っていた | 項目の定義をシステム管理者や業務部門に確認していない | データ入手時に項目の意味と入力ルールを確認し、調書に記録する |
| 前期と同じ分析を再現できない | 手順を表計算ソフト上の手作業で行い、記録していない | 抽出条件を文章で定義し、クエリやスクリプト、操作手順を保存する |
| 例外の調査結果が「確認済み」とだけ書かれている | 調査で確認した証憑や質問の内容を記録していない | 例外ごとに確認資料と結論を記録し、区分の根拠を明記する |
| 分析担当者の異動で取り組みが止まる | 特定の担当者に知識が集中している | 手順書を整備し、複数の担当者が分析を実施できるよう育成する |
特に、例外の除外は恣意的にならないよう注意が必要です。「業務上説明がつく」と判断した根拠を調書に残し、除外した取引の件数と金額も記録しておくと、後から判断の妥当性を検証できます。
まとめ
CAAT による全件テストは、サンプリングでは得られない網羅的な心証を得られる手法であり、内部監査の説明力を高めるうえで有効です。成功の鍵は、分析目的とリスクの明確化、用途を添えたデータ依頼と網羅性・正確性の検証、再現できる抽出条件の定義、そして抽出した例外の丁寧な調査と調書化にあります。初回は 1 つの監査テーマに組み込んで小さく試し、例外の大量抽出や手順の記録漏れといった典型的な失敗を避けながら、手順を部門の標準として整えていきましょう。まずは仕訳の休日入力や経費の重複申請など、取り組みやすいシナリオを 3〜5 つ選び、小さな成功体験を積み重ねるところから始めてみてはいかがでしょうか。




