みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM、GoともV12です。
基準と公差と実測のフィールドがあります。
実測に入力すると基準と公差を比較して
公差内は 〇
公差外は ×
実測未入力 は 未入力
と表示させたいと思います。
ところが公差は 「±10」又は「+10-10」又は「+10」又は「-10」に分かれます。
比較判断できる計算式を教えて下さい。
Let ( [
差 = 実測 - 基準 ;
結果 = Case (
実測 = "" ; "未入力" ;
公差 = "±10" or 公差 = "+10-10" ; Abs ( 差 ) ≤ 10 ;
公差 = "+10" ; 0 ≤ 差 and 差 ≤ 10 ;
公差 = "-10" ; -10 ≤ 差 and 差 ≤ 0 ;
)
] ;
Case (
結果 = True ; "◯" ;
結果 = False ; "×" ;
結果
)
)
公差の値は固定ではないのでしょう?
+は
Case ( PatternCount ( 公差 ; "±" ) ; GetAsNumber ( 公差 ) ;
PatternCount ( 公差 ; "+" ) ; GetAsNumber ( GetValue ( Substitute ( 公差 ; "-" ; ¶ ) ; 1 ) ) ; 0 )
-は
Case ( PatternCount ( 公差 ; "±" ) ; GetAsNumber ( 公差 ) ;
PatternCount ( 公差 ; "-" ) ; GetValue ( Substitute ( 公差 ; "-" ; ¶ ) ; 2 ) ; 0 )
+ - は半角としています。
Offline
公差の値は固定ではないのでしょう?
+は
Case ( PatternCount ( 公差 ; "±" ) ; GetAsNumber ( 公差 ) ;
PatternCount ( 公差 ; "+" ) ; GetAsNumber ( GetValue ( Substitute ( 公差 ; "-" ; ¶ ) ; 1 ) ) ; 0 )-は
Case ( PatternCount ( 公差 ; "±" ) ; GetAsNumber ( 公差 ) ;
PatternCount ( 公差 ; "-" ) ; GetValue ( Substitute ( 公差 ; "-" ; ¶ ) ; 2 ) ; 0 )+ - は半角としています。
ご指摘のように公差も基準も固定ではありません。
こちらの式はどの様に使うのでしょうか。
理解不足で申し訳ありません。
前記の
+を上限
-を下限
とします。
実測 <= 基準 + 上限
and
実測 >= 基準 - 下限
これが真なら公差内です。
Offline
前記の
+を上限
-を下限
とします。実測 <= 基準 + 上限
and
実測 >= 基準 - 下限
これが真なら公差内です。
判定フィールドの式を、この様にしました。
実測が公差内は「1」、公差外は「0」で正しく表示するのですが、
公差が+〇や+〇-〇の場合は、公差内であっても判定が「0」になります。
実測 ≤ 基準 +
Case ( PatternCount ( 公差 ;"±" ) ;
GetAsNumber ( 公差 );
PatternCount ( 公差 ;" + ") ;
GetAsNumber (GetValue ( Substitute ( 公差; "-"; ¶) ;1));0)
and
実測 ≥ 基準 -
Case ( PatternCount ( 公差 ;"±" ) ;
GetAsNumber ( 公差 );
PatternCount ( 公差 ;" - " ) ;
GetValue ( Substitute ( 公差; "-"; ¶) ;2);0)
書かれた通りの式ならば、
" + "
" - "
前後にスペースが入っているのが原因かも。
後は問題なさそうですが、、
Offline
書かれた通りの式ならば、
" + "
" - "前後にスペースが入っているのが原因かも。
後は問題なさそうですが、、
チポ様
有難うございます。
判定フィールドの計算式にスペースを入れたつもりはないのですが、削除すると1又は0の表示がでました。
最終的には、分かりやすくするために 未入力,〇,× を表示させたいと考えています。
判定表示フィールドを作成し、この様な式で良いのでしょうか。
但し、実測が空白の場合も0表示がでるので困っています。
Case ( 判定 =""; "未入力";判定 ="1"; "〇" ;判定 ="0";"×")
計算式の指定窓の演算子のボタンで入力すると
演算子の前後に半角スペースが付きます。
実測に入力がない時は計算させないようにすればいいですね
Case ( IsEmpty ( 実測 ) ; "" ; 判定式 )
一例です。
Case ( 判定 =""; "未入力";判定 ="1"; "〇" ;判定 ="0";"×")
間違いではないですけれど、判定は数値ですから
Case ( 判定 = "" ; "未入力" ; 判定 = 1 ; "〇" ; 判定 = 0 ; "×" )
でいいでしょう。
Offline
チポ様
何度も有難う御座います。
お蔭さまで完成しました。
判定式フィールド 数字
Case ( IsEmpty ( 実測 ) ; "" ;
(
実測 ≤ 基準+ Case ( PatternCount ( 公差 ;"±" ) ;
GetAsNumber ( 公差 );
PatternCount ( 公差 ;"+") ;
GetAsNumber (GetValue ( Substitute ( 公差; "-"; ¶) ;1));0)
and
実測 ≥ 基準- Case ( PatternCount ( 公差 ;"±" ) ;
GetAsNumber ( 公差 );
PatternCount ( 公差 ;"-" ) ;
GetValue ( Substitute ( 公差; "-"; ¶) ;2);0)
))
判定フィールド テキスト
Case ( 実測 = "" ; "未入力" ; 判定式= 1 ; "〇" ; 判定式= 0 ; "×" )
Pages: 1
[ Generated in 0.004 seconds, 9 queries executed - Memory usage: 520.37 KiB (Peak: 524.91 KiB) ]