0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

rex0220 計算式プラグイン - AI(Claude Desktop)に既存の計算式を解説させる

0
Last updated at Posted at 2026-10-19

最初の記事では計算式を 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 は「テーブルの中の項目の式は行ごとに計算されるので、全部の行が最終行の値で上書きされる。自分自身を参照しているので、試しに書いて無効にしたものと思われる」と読みました

JSON を渡したときの返答(有効な計算式を 1 つずつ解説)

各種設定も読む

計算式だけでなく、ユーザー情報(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 はオフなので書かれていない。この文書だけを見ても、オフになっている設定は分からない」と添えています。

Markdown を渡したときの返答(返答の冒頭のメタ情報の説明は省いた)

仕様書の出力の決まりでは、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 つ前の行の値は引き継ぎません。「最後に誰かが入っている行」を拾いたいなら、別の書き方が要ります

試しアプリで計算した返答(1 回目の推測を訂正する)

実践編の勤怠の例と同じく、AI の説明は試し計算で確かめるまでは推測です。解説を頼むときも、気になる点が出たら「試しアプリで計算して確かめて」と続けると、推測と確かめた事実が分かれます。

頼み方のコツ

頼む文 AI がすること
計算式を解説して(ファイルを添付) 有効・無効を分けて、式ごとに何をしているかを説明する。各種設定も読む
ユーザー選択XX の計算式だけ解説して 1 つの式を、関数ごとに分けて詳しく説明する
気になる点はある? 空・0 行・未選択のときの値、重複、計算の順など、端の動きを挙げる
計算式プラグインで、試しアプリで計算して確かめて 同じコード・型の項目をサンプルアプリに足し、架空の値で計算して表にする
テストデータに ○○ の場合も入れて 指定した端の値(最終行が空、同じ人が両方にいる など)を足して計算する
  • 試し計算は同梱のサンプルアプリと架空の値で行います。利用者のアプリ・レコードは使わず、kintone には何も送りません
  • 実際のアプリとレコードで確かめたいときは、最初の記事のとおりアプリ番号を伝えて、模擬の計算(取得したレコードに設定を当てる)を頼みます

まとめ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?