rex0220 計算式プラグインの使い方をGPTsに学習させてみる(その2)の続きです。
概要
未実装の関数の問合せをすると、一般的に考えられるような機能の説明を応答するので、未実装の関数は未実装と答えさせたい。
とりあえず、実装済みの関数一覧を学習させて、応答を確認してみた。
関数一覧の学習
関数名と簡単な説明のみ記載
・関数一覧
※下記以外の関数は実装されていません。
ABS 絶対値を返す
AND 論理関数 (論理積)
ARRAY 指定された値を配列にする
ARRAY_COUNT 配列数
ARRAY_DEL 配列要素を削除
ARRAY_FIL 配列の要素を式でフィルタリング
ARRAY_FOR 指定した要素数の配列に変換※最大数 1000
ARRAY_GET 配列の指定位置(0-)の1要素を取得
ARRAY_MAP 配列の要素を式で変換
ARRAY_SORT 配列のソート 1:昇順, 0:降順
ASC 全角文字を半角文字に変換。オプションで対象を指定
AVE テーブル内項目の平均値|指定された項目の平均値
AVEIF テーブル内項目の条件付き平均値
BOOL 論理関数 (論理値に変換)
BOPT BUTTON,DIALOG のオプション指定
BUTTON ボタン名と、クリック時の項目と計算式を指定
CEIL 切り上げ
CHOOSE 指定した数値位置(0-)の値を返す
CONCAT テーブル内項目の文字連結|指定された項目の文字連結
CONCATIF テーブル内項目の条件付き文字連結
COUNT テーブル項目の数値カウント|指定された項目で数値カウント
COUNTA テーブル項目の空白以外カウント|指定された項目で空白以外カウント
COUNTIF テーブル項目の条件付き数値カウント
COUNTROW サブテーブルの行数
CSV_TVAL CSVをテーブル入力データに変換
DATE_ADD 日付加算
DATE_DIFF 日付差分関数
DATE_ENDOF 日付関数 指定期間の最後
DATE_FORMAT 日付関数 日付のフォーマット
DATE_STARTOF 日付関数 指定期間の先頭
DIALOG ボタン名と、クリック時の項目と計算式を指定
DISTINCT 値の重複値を排除し、配列化
DQUOTE ダブルクォーテーション
DURATION 期間関数 (milliseconds に変換)
DURATION_AS 期間関数 (指定単位に変換)
DURATION_FORMAT 期間関数 (指定単位の数値を取得)
DURATION_GET 期間関数 (指定単位の数値を取得)
EV_INFO イベント情報
EV_SET テスト用イベント情報を設定
FIND 文字列の検索を行い、文字位置を返す
FIRST テーブル内項目の最初の有効な値|指定された項目で最初の有効な値
FIRSTIF テーブル内項目の条件付き最初の有効な値
FIXED 数値を桁区切りの文字列に変換
FLOOR 切り下げ(ROUNDDOWN関数と機能は同じ)
FSET BUTTON 関数で、クリック時に項目に計算値を指定
GINFO グループ情報
HIRAGANA 全角カナを全角かなに変換
IF 条件によって指定した値を返す
IFS 最初に真となった条件で指定した値を返す
IN 論理関数 (値の存在チェック)
INDEXOF 配列要素の位置を返す。存在しない場合は -1
INT 整数を返す
INTERSECT 配列の積集合
ISNUMBER 数値チェック
JIS 半角文字を全角文字に変換。オプションで対象を指定
JOIN 配列を区切り文字で文字列に変換
JSON_P 文字列を配列・オブジェクトに変換
JSON_S 配列・オブジェクトを文字列に変換
KATAKANA 全角かなを全角カナに変換
LAST テーブル内項目の最後の有効な値|指定された項目で最後の有効な値
LASTIF テーブル内項目の条件付き最後の有効な値
LEFT 文字列の左から指定された長さの文字列を返す
LENGTH 文字列の長さ
LET 一つ以上の変数と変数を使用した計算
LOGIN_CODE ログインユーザーのユーザーコード
LOGIN_EMAIL ログインユーザーのEメール
LOGIN_NAME ログインユーザーのユーザー名
LOWER 小文字に変換
LTRIM 文字列から先頭の空白を削除
MATCH 文字列の検索(正規表現)で、文字列(g オプション指定時は配列)を返す
MAX テーブル内項目で最大値|指定された項目で最大値
MAXIF テーブル項目の条件付き最大値
MAX_STR テーブル内項目で最大の文字列|指定された項目で最大の文字列
MID 文字列の指定位置から指定された長さの文字列を返す
MIN テーブル内項目で最小値|指定された項目で最小値
MINIF テーブル項目の条件付き最小値
MIN_STR テーブル内項目で最小の文字列|指定された項目で最小の文字列
NEWLINE 改行文字
NOT 論理関数 (値をその否定に変換)
NOW 日付関数 現在時刻 format: "YYYY-MM-DD"THH:mm:ss:sssZ"
NVL 指定されたパラメータで最初の空文字以外の値
OINFO 組織情報
OR 論理関数 (論理和)
OTCSV テーブル内項目をcsv文字列にする
OTVAL テーブル内項目をJSON文字列にする
PI 3.14159265358979 を返す
PRODUCT テーブル内項目のかけ算
PRODUCTIF テーブル内項目の条件付きかけ算|指定された項目のかけ算
RAND 0以上1未満の乱数
RANDBETWEEN 指定された範囲で整数の乱数を生成
REPEAT 文字列の繰り返し
REPLACE 文字列の置換
REPLACEALL 文字列の置換(全て)
REPLACERE 文字列の置換(正規表現)
REVERSE 文字列・配列の反転
RIGHT 文字列の右から指定された長さの文字列を返す
ROUND 四捨五入
ROUNDDOWN 切り下げ
ROUNDUP 切り上げ
ROWNO サブテーブル指定行(0-)の値
RTRIM 文字列から末尾の空白を削除
SEARCH 文字列の検索(正規表現)で、文字位置を返す
SEL_CODE ユーザー選択、組織選択、グループ選択のコード情報
SEL_NAME ユーザー選択、組織選択、グループ選択の名称
SET_CODE ユーザー選択、組織選択、グループ選択のコード情報
SHUFFLE 配列をランダムに並び変え
SLICE 文字列・配列の切り出し(0-)
SPLIT 区切り文字で配列に変換
SQRT 平方根
SUBSTR 文字列の切り出し(0-)
SUBSTRING 文字列の切り出し(0-)
SUBTABLE サブテーブル指定行(0-)の値
SUM テーブル内項目の合計|指定された項目の合計
SUMIF テーブル内項目の条件付き合計
SWITCH 複数条件で指定値を返す
TARRAY テーブル内項目を配列にする
TARRAYIF 条件でテーブル内項目を配列にする
TDS テーブル内項目を配列にする
TDSIF 条件でテーブル内項目を配列にする
TDUPCK テーブル重複値チェック
TEST 文字列の検索で、文字の有無(true, false)を返す
TESTRE 文字列の検索(正規表現)で、文字の有無(true, false)を返す
TEXTJOIN 文字列の結合
TLTABLE テーブルの集計関数
TODAY 日付関数 当日日付 format: "YYYY-MM-DD"
TPFILTER TLTABLE テーブル行の集計条件指定
TPKEY TLTABLE のキー項目指定
TPLABEL 出力項目のラベル指定
TPOPT TLTABLE,CSV_TVAL のオプション指定
TPOUT TLTABLE,CSV_TVAL の出力項目指定
TPSORT TLTABLE,CSV_TVAL の項目、ソート方法を指定
TPVAL TLTABLE の集計項目または計算式、集計方法を指定
TRIM 文字列から先頭および末尾の空白を削除
TR_AVE 同一行のテーブル内項目で平均値
TR_COUNT 同一行のテーブル内項目で数値をカウント
TR_COUNTA 同一行のテーブル内項目で空白以外をカウント
TR_MAX 同一行のテーブル内項目で最大値
TR_MIN 同一行のテーブル内項目で最小値
TR_SUM 同一行のテーブル内項目で合計
UINFO ユーザー情報
UPPER 大文字に変換
XOR 論理関数 (排他論理和)
関数一覧を学習後の LOOKUP関数の応答
「LOOKUP関数について教えて」
一般的なLOOKUP関数の説明が無くなり、LOOKUP関数は存在しない等の説明になっている。
関数一覧を学習後の LEFT関数の応答
「LEFT関数について教えて」
関数一覧に記載しているが、詳細説明を上げていない LEFT 関数について質問すると、使用方法を応答してくれる。
使用例は、どこから持ってきたんだろう?LEFT 関数はよくあるので他の言語の使用例か?
Qiita 計算式プラグインの説明
LEFT: 文字列の左
LEFT(fieldcode, length)
例 LEFT(文字列, 3)
ARRAY_FOR関数の応答
「ARRAY_FOR関数について教えて」
計算式プラグイン独自のARRAY_FOR関数について質問すると、Qiita 計算式プラグインの説明から持ってきたような使用例が応答された。
応答内容としては説明が足りないので、詳細機能の学習が必要だ。
Qiita 計算式プラグインの説明
ARRAY_FOR: 指定した要素数の配列に変換※最大数 1000
ARRAY_FOR(項目[,インデックス],要素式)
例 ARRAY_FOR(3,idx,idx) -> [0,1,2]
例 ARRAY_FOR(3,idx,idx*3) -> [0,3,6]
例 ARRAY_FOR(3,"A") -> ["A","A","A"]
例 ARRAY_FOR(3,idx,"A"&idx) -> ["A1","A2","A3"]
AND 関数の応答
「ANDの使用例を教えてください」
詳細の説明を学習させていたAND 関数については、関数一覧を学習に影響されずに前と同じ応答になった。
まとめ
未実装の関数の質問に誤った内容や無駄な説明をさせないためには、実装済みの関数一覧を学習させると有効だと思われる。