みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
関数について質問があります。
フィールド「郵送入札値」は10個の値で繰り返すように定義され、2500,1200,1500の値が含まれています。
GetRepetition ( 郵送入札値 ; 2 )は、1200を返します。
この逆で、1200が何個目の繰り返し番号にあるかを知りたいとき、どのように求めたらいいでしょうか。
ご教示のほどお願いいたします。
Offline
ループ計算式で求める式例。
結果は繰り返し位置番号のリストを返します。
※ただし、繰り返し内の値は連続していて中間空白は無いものとします。
Let([
$lst=List(繰り返しフィールド);
$kwd="キーワード";
$i=0;
$res="";
$fnc="Case($i=ValueCount($lst); $res;
let([
$i=$i+1;
#add=Case(GetValue($lst;$i)=$kwd; $i);
$res=List($res; #add)
]; Evaluate($fnc))
)"
];
Evaluate($fnc)
)
Last edited by Hiro (2018-01-19 20:32:34)
Offline
【補足】
繰り返しフィールド内に空欄コマがあっても
正しい位置番号を返す式を補足します。
※ 逆に言うと、空白「""」をキーワードに指定すれば、
空欄位置も取得できます。
Let([
$kwd="キーワード";
$i=0;
$isEnd=0;
$res="";
$fnc=
"Case($isEnd; $res;
Let([
$i=$i+1;
$isEnd=Not(IsValid(繰り返しフィールド[$i+1]));
#add=Case(繰り返しフィールド[$i]=$kwd; $i);
$res=List($res; #add)
]; Evaluate($fnc))
)"
];
Evaluate($fnc) & Left(List(繰り返しフィールド); 0)
/* ※ Left(・・・; 0) 部分は自動更新再計算の発火トリガ目的のダミー式 */
)
Last edited by Hiro (2018-01-22 23:56:45)
Offline
ご丁寧にありがとうございます。
作っていただいた例を元に試してみたいと思います。
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 555.27 KiB (Peak: 588.37 KiB) ]