最初の記事では計算式を AI に作らせ、実践編ではアプリを使わずに関数を聞き、式を作らせました。
今回は逆向きです。すでに動いているアプリの計算式を AI に読ませて、解説させます。 前任者が作った設定、昔の自分が作った設定、ほかの人に引き継ぐ設定。何をしているかを説明させ、気になる点を挙げさせ、その点を試し計算で確かめさせます。
(設定画面からダウンロードした設定のファイルを添付して)
計算式を解説して
題材は、ユーザー選択の扱い方を試すためのアプリ「ユーザー選択の扱い方」です。ユーザー選択のコピー、2 つのユーザー選択の合成、テーブルの最終行の担当者の取り出し、の 3 つの計算式が入っています。
渡し方は 2 つ
| 渡すもの | 中身 | 向いているとき |
|---|---|---|
| 設定のファイル(JSON) | 設定画面の 設定をダウンロード で落としたもの。無効にしてある計算式も、各種設定のオン・オフも全部入っている | 全部を見せて、下書きや無効の式も含めて読ませたいとき |
| 設定の仕様書(Markdown) | 有効な計算式と、オンになっている設定だけを並べた読みやすい形 | 動いている式だけを解説させたいとき。人が読む資料にもそのまま使える |
2 つとも、計算式プラグインの設定画面の下のボタンで出します。
設定のファイルは、ダウンロードのボタンで落とします。
仕様書は、コピーのボタンで対象と含める内容を選んでクリップボードにコピーし、テキストのファイル(.md)に貼って保存します。
仕様書の先頭のメタ情報(<!--- 〜 --->)には、kintone のドメインとコピーした人のユーザー名も入ります。AI に渡すと返答に書き出すことがあるので、返答の画面を人に見せるときは、渡す前に domain: と user: の 2 行を消しておきます。
どちらも、チャットに添付して「解説して」と頼むだけで読めます。ファイルを読むだけなら、kintone の接続も拡張機能も要りません。拡張機能が入っていると、解説の中の気になる点を、計算式エンジンで実際に計算して確かめられます(後で出てきます)。
設定のファイル(JSON)を渡す
JSON には計算式が 5 つ入っていて、有効なのは 3 つです。AI は有効・無効を分けて解説しました。返答の要点です。
有効な計算式
ユーザー選択1: 単純なコピー
SET_CODE(SEL_CODE(ユーザー選択1A,"array"))
SEL_CODE(項目, "array") で、選ばれているユーザーのログイン名を配列にして取り出します。SET_CODE はその配列を、ユーザー選択の値として入れます。ユーザー選択1A の内容が、そのまま ユーザー選択1 に写ります。
ユーザー選択2: 2 つの合成
SET_CODE(
SEL_CODE(ユーザー選択2A,"array"),
SEL_CODE(ユーザー選択2B,"array"))
2A と 2B の配列を SET_CODE に並べて渡します。両方のユーザーが ユーザー選択2 に入ります。同じ人が両方にいるときの重複の扱いは「確認が必要」としていました(後で試し計算で確かめます)。
ユーザー選択XX: テーブルの最終行の対応者
SET_CODE(SUBTABLE(SEL_CODE(対応者,"array"),COUNTROW(table_対応履歴)-1))
テーブルの中の項目に SEL_CODE を使うと、行ごとの値が並んだ配列になります。SUBTABLE(…, 行) は指定した行(0 から数える)の値を取ります。COUNTROW(…) - 1 が最終行です。対応履歴の最後の行の対応者が、テーブルの外の ユーザー選択XX に入ります。
無効にしてある計算式
-
ユーザー選択(文字列 1 行): 同じく最終行の対応者を、
SEL_CODE(…, "text")でログイン名の文字列として取ります。行が 0 なら空にするIFが付いています - 対応者(テーブルの中): 最終行の対応者を、テーブルの中の 対応者 自身に入れる式です。AI は「テーブルの中の項目の式は行ごとに計算されるので、全部の行が最終行の値で上書きされる。自分自身を参照しているので、試しに書いて無効にしたものと思われる」と読みました
各種設定も読む
計算式だけでなく、ユーザー情報(userInfo)と非同期計算(async)がオンであること、計算のタイミング(画面の表示・変更・保存・保存成功・プロセス管理のアクション)、一覧の「一括計算」ボタンが出ることも、JSON のフラグから読んで添えてきました。
設定の仕様書(Markdown)を渡す
続けて、同じアプリの Markdown の仕様書を渡して「解説して」と頼みました。式の意味は前回の解説と同じなので、AI は仕様書の構成と、JSON との対応・違いの説明に切り替えました。
| 仕様書の行 | 意味 | JSON の対応 |
|---|---|---|
| OPTION | ツール / 非同期計算 / ユーザー情報 |
toolEnable、async、userInfo
|
| STEP | 計算処理1 → テーブル → 計算処理2 |
calcStep1、calcTable、calcStep2
|
| EVENT | 計算するタイミング |
eventCreateShow ほか、eventProcess
|
| 詳細: 計算: - | 詳細画面のボタンは出さない | detail_btn.state: false |
| 一覧: 一括計算 | 一覧画面に「一括計算」ボタンを出す(すべての一覧、すべてのユーザー) |
all_enabled、authority.everyone
|
そのうえで「循環参照(circular_refer)と tableCalcSkip はオフなので書かれていない。この文書だけを見ても、オフになっている設定は分からない」と添えています。
仕様書の出力の決まりでは、OPTION の行にはオンの設定だけが並び、STEP と EVENT の行にはオフのものも括弧付きで並びます。無効にしてある計算式は載りません(今回の 2 つの式も出てきません)。仕様書は人が読む資料に向き、無効の式やオフの設定まで残すバックアップや差分の管理には JSON を使います。
気になる点を、試し計算で確かめる
1 回目の返答で、AI は気になる点を挙げていました。ユーザー選択2 で同じ人が 2A と 2B の両方にいるときの重複の扱いは「確認が必要」。ユーザー選択XX には、テーブルが 0 行のときのガード(IF(COUNTROW(…)>0, …, ""))が無い(0 行だと行の番号が -1 になる)。
この時点では、ファイルを読んだだけの推測です。そこで「計算式プラグインで、試しアプリで計算して確かめて」と頼みました。AI は、拡張機能に同梱のサンプルアプリ(架空)に同じ項目コードのユーザー選択とテーブルを足し、典型・空・端の 3 件のデータで計算しました。
| データ | 1A | 2A | 2B | 対応履歴(行ごとの対応者) |
|---|---|---|---|---|
| d1(典型) | user01, user02 | user01, user02 | user02, user03 | user01 / user02, user03 |
| d2(空) | (空) | (空) | (空) | (行なし) |
| d3(端) | (空) | (空) | user03 | user04 / (未選択) |
表の user01 は、サンプルアプリの架空のユーザー demo_user01 の略です(以下も同じ)。
結果です。
| 計算式 | d1 | d2 | d3 |
|---|---|---|---|
| ユーザー選択1(コピー) | user01, user02 | (空) | (空) |
| ユーザー選択2(2A と 2B の合成) | user01, user02, user03 | (空) | user03 |
| ユーザー選択XX(最終行の対応者) | user02, user03 | (空) | (空) |
返答の「6 式」は、表の 3 式と、書き方を変えて比べた式(項目を SET_CODE に直接渡す形、ガードを付けた形など)です。わかったことは 3 つです。
- 0 行でもエラーにならない。 d2(行なし)では、行の番号が -1 でも空になりました。AI は「前回心配したガードは、結果が同じなので不要でした」と、1 回目の指摘を自分で訂正しました
-
合成では重複が 1 人にまとまる。 d1 の user02 は 2A と 2B の両方にいますが、ユーザー選択2 には 1 回だけ入ります。1 回目に「確認が必要」としていた点です。片方が空(d3)なら、もう片方の値だけが入ります。
SET_CODE(ユーザー選択1A)と項目を直接渡しても、SEL_CODE(…, "array")を挟んだ式と同じ結果でした - 最終行が未選択なら空になる。 d3 は最後の行の対応者が未選択なので、ユーザー選択XX も空です。1 つ前の行の値は引き継ぎません。「最後に誰かが入っている行」を拾いたいなら、別の書き方が要ります
実践編の勤怠の例と同じく、AI の説明は試し計算で確かめるまでは推測です。解説を頼むときも、気になる点が出たら「試しアプリで計算して確かめて」と続けると、推測と確かめた事実が分かれます。
頼み方のコツ
| 頼む文 | AI がすること |
|---|---|
| 計算式を解説して(ファイルを添付) | 有効・無効を分けて、式ごとに何をしているかを説明する。各種設定も読む |
| ユーザー選択XX の計算式だけ解説して | 1 つの式を、関数ごとに分けて詳しく説明する |
| 気になる点はある? | 空・0 行・未選択のときの値、重複、計算の順など、端の動きを挙げる |
| 計算式プラグインで、試しアプリで計算して確かめて | 同じコード・型の項目をサンプルアプリに足し、架空の値で計算して表にする |
| テストデータに ○○ の場合も入れて | 指定した端の値(最終行が空、同じ人が両方にいる など)を足して計算する |
- 試し計算は同梱のサンプルアプリと架空の値で行います。利用者のアプリ・レコードは使わず、kintone には何も送りません
- 実際のアプリとレコードで確かめたいときは、最初の記事のとおりアプリ番号を伝えて、模擬の計算(取得したレコードに設定を当てる)を頼みます
まとめ
- 設定画面からダウンロードした**設定のファイル(JSON)か仕様書(Markdown)を添付して「解説して」**と頼むと、AI が計算式と各種設定を読んで説明します。JSON なら無効の式も含めて、Markdown なら動いている式だけを読みます
- 解説の中の気になる点は推測です。「試しアプリで計算して確かめて」と続けると、拡張機能が計算式エンジンで計算し、推測を確かめるか訂正します(今回は「0 行のテーブルが危ない」が訂正され、「重複は 1 人にまとまる」「最終行が未選択なら空」がわかりました)
- 最初の記事: AI(Claude Desktop)にチャットで計算式を作らせる
- 実践編: AI(Claude Desktop)に計算式を聞く・作らせる 実践編
- 拡張機能: https://github.com/rex0220/formula-authoring-mcp(最新のリリース)
- プラグインの機能と関数の一覧: rex0220 計算式プラグイン





