# AIスプレッドシート異常検知：6つの架空再現ケース

版1.0 · 2026年9月4日 · OpenMaxコンテンツチーム

以下は教材として設定した入力で、顧客データではありません。このMarkdownは再現手順であり、XLSXブックではありません。新しい破棄可能なファイルだけで作業し、意図的に不完全な式を業務レポートへ貼り付けないでください。式は英語版Excel表記です。アプリによって関数名や引数の区切りが異なる場合があります。

期待する算術結果は独立に確認できます。Bの非表示動作は引用したMicrosoft資料に基づき、この教材をデスクトップExcelで実行したという主張ではありません。再現する場合は実際のアプリ、版、観察を記録してください。マクロ、スクリプト、外部データ更新は不要です。

## A. 正しい構文のSUMが最後の記録を除外する

`A_Range`シートを作り、次の位置に入力します。

| セル | 値または式 | 意味 |
|---|---|---|
| A1 | Job | 仕事列の見出し |
| B1 | Units | 数量列の見出し |
| A2 | J1 | 仕事1 |
| B2 | 120 | 数量 |
| A3 | J2 | 仕事2 |
| B3 | 80 | 数量 |
| A4 | J3 | 仕事3 |
| B4 | 150 | 数量 |
| A5 | J4 | 仕事4 |
| B5 | 50 | 数量 |
| A7 | 報告合計：意図的に不完全 | 教材ラベル |
| B7 | `=SUM(B2:B4)` | J4を意図的に除外 |
| A8 | 期待する合計 | 教材ラベル |
| B8 | `=SUM(B2:B5)` | 4件すべて |
| A9 | 欠落数量 | 教材ラベル |
| B9 | `=B8-B7` | 差 |

ルールA1：4件とも報告対象です。Aには除外条件、非表示行、フィルター、調整はありません。期待値はB7=350、B8=400、B9=50です。完全な合計を分母にすると欠落は50/400=12.5%です。責任者が対象範囲を確認したうえで、B7の範囲にB5を加える修正を提案します。この欠陥にエラーコードは必要ありません。

## B. 手動非表示と意図した可視対象

別シート`B_Hidden`を作り、A1:B5をAと同じにします。B7:B9はコピーしません。B7に`=SUBTOTAL(9,B2:B5)`、B8に`=SUBTOTAL(109,B2:B5)`を入力します。

1. 全行表示、フィルターなしでは、両方の期待値は400です。
2. 150を含むワークシート4行目を手動で非表示にします。この段階ではフィルターを使いません。期待値はB7=400、B8=250です。
3. 4行目を再表示すると、両方400へ戻ります。
4. 別実験として、手動非表示がない状態でA1:B5にフィルターを適用し、J3を除外します。両方の期待値は250です。
5. フィルターを解除し、シートを元に戻してから別の実験を行います。

状態ごとに記録します。可視仕事の報告と全仕事の報告は異なる対象です。要件なしにどちらの数字も誤りとは決められません。フィルター状態の数値を、手動非表示の説明に使わないでください。

出典：[Microsoft SUBTOTAL仕様](https://support.microsoft.com/en-us/excel/functions/subtotal-function)。縦方向の範囲と通常値を扱う例で、入れ子の小計は対象外です。

## C. 2つの定数と異なる処置

`C_Overrides`を作り、1行目に列見出しを入れ、次の位置へ入力します。

| 行 | A：仕事 | B：数量 | C：単位当たり標準分 | D：標準合計式 | E：記録合計 | F：例外の根拠 |
|---|---|---:|---:|---|---|---|
| 2 | J1 | 4 | 10 | `=B2*C2` | `=D2` | 例外不要 |
| 3 | J2 | 3 | 10 | `=B3*C3` | 24、定数 | 例外EX-01 |
| 4 | J3 | 2 | 10 | `=B4*C4` | 25、定数 | 例外なし |

D2:D4の期待値は40、30、20、E2:E4は40、24、25です。標準合計90、記録合計89です。

**設定した承認EX-01：**架空の運用責任者が、今回の報告に限りJ2のサービス時間を6分控除すると承認しています。許容合計は30−6=24です。J3の承認や別ルールは資料に存在せず、期待値20に対して記録25は根拠のないプラス5分です。

E3とE4を別々に確認します。設定上E3は記録付きの有効な例外で、E4はルール不一致です。類似した控除や超過許可を作らないでください。差異の橋渡しは90−6+5=89。純差額−1を理由に+5の指摘は解消できません。この承認条件は教材で、実在の署名や顧客の承認ではありません。

## D. 行数は同じでも仕事が重複し、欠落する結合

`D_Jobs`を作り、A1をJob、B1をUnits、A2:B4を順にA/10、B/20、C/30にします。`D_Reference`ではA1をJob、B1をOwner、A2:B4をA/Team1、A/Team2、B/Team3にします。

意図した関係は、各仕事が1つの正式な担当者に対応する多対一です。この例の元データは各仕事1行です。参照表はAに2担当、Cに0担当なので要件に反します。Team2ではなくTeam1を選ぶルールはありません。

Jobによる内部結合で全一致を保持すると、次の3行になります。

| Job | Units | Owner |
|---|---:|---|
| A | 10 | Team1 |
| A | 10 | Team2 |
| B | 20 | Team3 |

元と出力は偶然どちらも3行ですが、合計は60と40です。Aの重複が+10、Cの欠落が−30で、純変化−20です。両方の指摘を残し、Aの正式対応とCの対応を取得してから再結合します。出力の重複排除は根拠のある修正ではなく、Cを回復できません。

## E. 換算を推測せず定義から行う

`E_Units`のA1をItem、B1をQuantity、C1をUnit、D1を元単位当たりの個数とします。2行目はPart-X/12/箱/10、3行目はPart-X/18/単品/1です。

この教材ではPart-Xの1箱を10個と明示しています。正規化結果は12×10=120と18×1=18で、合計138個です。元の数字の和12+18=30は、同じ物理単位での合計ではありません。

E1を正規化個数、E2を`=B2*D2`、E3を`=B3*D3`、E5を`=SUM(E2:E3)`とし、B:Dを保持します。換算は指定した製品と版だけに適用されます。実データで定義が欠ける、または矛盾する場合は未解決のままにします。

## F. 大きな週次値は日次の観測ではない

`F_Periods`を作り、Aを記録、Bを観測数量、Cを対象日数、Dを観測種類とします。2〜6行目は次のとおりです。

| 記録 | 観測数量 | 対象日数 | 観測種類 |
|---|---:|---:|---|
| D1 | 120 | 1 | 単日合計 |
| D2 | 80 | 1 | 単日合計 |
| D3 | 150 | 1 | 単日合計 |
| D4 | 50 | 1 | 単日合計 |
| W1 | 1400 | 7 | 独立した7日合計 |

W1は独立した記録で、D1〜D4の和ではありません。1400/7は算術的な日平均200です。共通の母集団や範囲関係が与えられていないため、W1をD1〜D4へ加えて意味のある業務総量を作らないでください。

この小さな教材には、比較できるチーム、仕事量、サービス条件がありません。期間不一致の注意は出せても、W1が誤り、あるいは1日200が正常という統計的主張は支えません。実際の外れ値確認には定義した基準と原資料の背景が必要です。

## 返す確認記録

ケースID、使用したアプリと版、入力セルや範囲、観測結果、期待ルール、出典、処置状態、担当者、再検査を保持します。表計算外で算術を確認したことと、アプリ内でブック動作を実際に再現したことを区別してください。この演習を検出精度やOpenMaxの機能検証の主張に変えてはいけません。
