これで何ができるか
前の記事では、「行が増えても直さなくていい形にしてください」と頼むと、AIは列全体を参照する数式(=SUMIF($B:$B, H2, $F:$F))を返し、そのとき「集計表をデータの下に置かないこと」を4回とも自分から注意してきた、と報告しました。
今回はこの注意を実際に裏切る材料で試しました。集計欄(部署ごとの合計)を、注意されていたとおりデータのすぐ下・同じ列に置いた表を渡したのです。結果、AIは自分が知っているはずの注意事項に、6回中5回気づきませんでした。返ってきた数式をそのままExcelに入れると、循環参照の警告が出て、正しい合計にはなりません。
「危ないと言えること」と「危ない状態を見て気づくこと」は別物です。この記事は、その差を自分で確かめる頼み方です。
前提
| かかる時間 | 20分 |
| 費用 | 無料。無料のチャットAIで足ります |
| 必要なもの | 表計算ソフト(Excel または Google スプレッドシート)と、集計欄つきの表 |
| プログラミング | 不要。この記事の指示文をコピーして貼るだけです |
この記事は行が増えても合う集計表を作るの続きです。あちらは集計欄を常にデータの右側に置いて試していました。今回は唯一まだ対照が無かった「集計欄がデータの真下にある」場合だけを切り分けています。
⚠️ 納品先の実データを、そのままAIに貼らないでください。この記事の材料はすべて架空です。
AIへの頼み方
1. 集計欄を真下に置いた表で、同じ一文を試す
架空の経費精算一覧(12行)に、部署ごとの合計欄をデータの直後・同じ列(14〜16行目)に置きました。集計欄の「部署」列には、データと同じ部署名(「営業部」など)がそのまま入っています。ひと目で「合計行」と分かる作りにはしていません。
材料2本(経費精算・倉庫入出庫)×各3回=6回試しました。1回目(経費精算)の返りです。
行が増えても直さなくていい形にするため、部署の列(B列)と金額の列(D列)を
まるごと参照するSUMIF関数にしました。新しい行をいちばん下に追加しても、
数式を書き換えずに自動で計算に含まれます。
D14: =SUMIF($B:$B,"営業部",$D:$D)
D15: =SUMIF($B:$B,"総務部",$D:$D)
D16: =SUMIF($B:$B,"開発部",$D:$D)
6回中5回、これと同じ形(列全体参照をそのまま集計欄に入れる案)が返りました。気づいたのは1回だけです。
| 集計欄自身が範囲に含まれる問題に自分から触れたか | |
|---|---|
| 経費精算・1回目 | 触れず |
| 経費精算・2回目 | 触れず |
| 経費精算・3回目 | 触れた |
| 倉庫入出庫・1回目 | 触れず |
| 倉庫入出庫・2回目 | 触れず |
| 倉庫入出庫・3回目 | 触れず |
⚠️ この実測は担当1名がこのセッションの中でAI役を務めて記録したもの(外部の実在のチャットAIへは送信していません)。6回という少ない試行での結果と明記します。
2. 出てきた数式を、実際にExcelへ入れたらどうなるか確認させる
数式が「合っているように見える」だけなのか、実際に壊れるのかを聞きます。
①循環参照になるかどうか:なります。D14自身がこの数式の参照範囲$D:$Dに
含まれているため、Excelはこの数式を保存・確定した時点で「循環参照の警告」
を表示します。初期設定では、警告が出たセルの値は0として扱われます。
②反復計算(循環参照を許可する設定)をオンにした場合:SUMIFはB14の
「営業部」という文字列も検索条件「営業部」に一致すると判定するため、
D14の値自身がD14の計算に足し込まれます。(中略)どちらにしても、
正しい54,700円にはなりません。
真値は経費精算・営業部で54,700円です。「見た目は数式として動いている」ことと「値が正しい」ことは別だと、AI自身が説明できます。ただし1番の6回のうち、聞かれる前に自分からここまで説明したのは1回だけでした。
3. 集計欄を範囲から除く一文を足す(2回とも直った)
気づかせるための一文を足します。
材料Aで2回試すと、2回とも集計欄を範囲の外に出す対応が返りました。1回目は範囲を明示的に区切る形です。
D14: =SUMIF($B$2:$B$13,"営業部",$D$2:$D$13)
⚠️ この形は「行が増えても書き換え不要」ではありません。行が増えたら
$B$13/$D$13の「13」を新しい最終行の番号に書き換える必要があります。
列全体参照にしたい場合は、集計欄を表の下ではなく右側の別の列(例: G列・H列)に
移すことをおすすめします。そちらであれば $B:$B / $D:$D のままで安全です。
2回目は集計欄そのものを表の右側へ移す案です。
集計欄を表の右側(F列・G列)に移動する形を提案します。
F2: 営業部 G2: =SUMIF($B:$B,F2,$D:$D)
(中略)
この形であれば集計欄はB列・D列そのものには含まれないため、列全体参照でも
循環参照にも二重計上にもなりません。14〜16行目の集計欄は削除してください。
「集計欄自身を範囲に含めない形で」という名指しの一文が、2回とも効きました。1番の素朴な一文では出てこなかった注意が、名指しすると出てきます。
うまくいかないときの言い直し方
列全体参照のまま、すでに納品してしまった
集計欄がテーブルの外にあるかどうかは、テーブル機能でも自動では守ってくれません。
はい、Excelの「テーブル」機能(データ範囲を選んでCtrl+T)を使うと、この問題を
かなりの部分まで解決できます。(中略)ただし1点注意があります。**14〜16行目を
テーブルの中に含めてしまうと、今回と同じ問題(集計行が自分自身を含む)が
そのまま起こります。**集計欄は必ずテーブルの外(テーブルの下は1行あけるか、
右側の別の場所)に置いてください。テーブル機能を使っても、「集計欄をテーブルの
範囲外に置く」という条件そのものはなくなりません。
テーブル機能は万能ではありません。集計欄をテーブルの外(範囲外)に置く、という条件そのものは、どの機能を使っても自分で守る必要があります。
集計欄がどこにあるか、自分でも覚えていない
いちばん確実なのは、渡す前に自分で場所を言葉にすることです。
集計欄の位置を先に言葉にさせてから、1番・3番の一文を続けます。「気をつけて」ではなく「どこにあるか」を先に聞くほうが、見落としが減ります。
応用・次の一手
一文を保存用の注意書きにする
【集計表を作るときの注意書き】
1. 集計欄(合計・小計)がデータの表と同じ列にある場合、その位置を先に教えてください
(データの下/データの右/別シート)。
2. 「行が増えても直さなくていい形にしてください」と頼むときは、必ず
「集計欄自身を範囲に含めない形で」も一緒に伝えてください。
3. 集計欄がデータの下にある場合は、列全体参照($B:$Bなど)を使わず、
範囲を明示的に区切るか、集計欄を別の列に移すことを検討してください。
一文は1字も変わらずに注意書きへ残りました。案件ごとに使い回すなら、保存した指示文が材料を替えても同じに動くかを確かめた記事も参考にしてください。
納品前に、数式の中身ではなく「数字」を検算する
1番・3番の結果に関わらず、行が増えても合う集計表を作るの5番(1行足して答えが変わるか見る)は、集計欄の位置に関係なく効きます。数式の見た目を信じず、行を1つ足して、合計が動くかどうかで確かめてください。
この記事の実測は、架空の表2種・特定の言い回し・6回という少ない試行に限ります。「AIは注意事項を知っている」ことと「その注意が今回の材料に当てはまると気づく」ことは別だと分かった、というところまでが今回の実測です。集計欄の位置がもっと複雑な表(複数シートをまたぐ、集計欄が2段になっている等)では、また違う結果になるかもしれません。金額が大きい集計表では、AIの数式に頼らず、必ず自分の目で1行足した結果を確かめてください。