みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
今回相談させていただくのはフィールドの計算で次のような合否判定をしたいと思っています。
①偏芯基準 1±0.5
②偏芯基準 1mmMAX
合否判定で上記のような2つ基準が入ってくる可能性があります。
その場合に下記のような計算式を入れましたが受け付けられませんでした。
どこが悪いのか、それともこのような二つの基準を入れ込むのは無理なのか教えていただけませんか?
宜しくお願いします。
Let([if Right(偏芯基準 ; 1) = "X" ; A3= Substitute (偏芯基準 ; "mmMAX" ; "" ) ; A= Substitute ( 偏芯基準; ["±" ; ¶ ]) ; A1 = GetValue (A ; 1) ;
A2= GetValue (A ; 2) ; B = 偏芯値 ] ; Case ( A1- A2 ) ≤ B and B ≤ (A1+A2) or B ≤ A3 ; "○" ; "X" ))
Offline
Case(
Case(
Right(偏芯基準 ; 1) = "X" ; 偏芯値 ≤ Substitute (偏芯基準 ; "mmMAX" ; "" ) ;
Let([
A= Substitute ( 偏芯基準; ["±" ; ¶ ]) ;
A1 = GetValue (A ; 1) ;
A2 = GetValue (A ; 2) ;
B = 偏芯値 ] ;
A1- A2 ≤ B and B ≤ A1+A2
) ) ; "○" ; "X" )
Let関数の構文が間違ってるのでは?
変数指定が無いみたいだから。
travelar様
concat様
ありがとうございます。試してみます。
Offline
その基準は、or での基準? それとも and の基準?
基準値内、という判定をするより、基準値外、という判定をする方が式は単純になりますね。
Let(
[
A = Substitute ( 偏芯基準 ; ["±" ; ¶ ]) ;
A1 = GetValue ( A ; 1 ) - GetValue ( A ; 2 ) ;
A2 = GetValue ( A ; 1 ) + GetValue ( A ; 2 ) ;
A3 = Substitute ( 偏芯基準 ; "mmMAX" ; "" ) ;
B = 偏芯値
] ;
Case (
Right(偏芯基準 ; 1) = "X" and 偏芯値 > A3 ; "X" ;
偏芯値 < A1 ; "X" ;
偏芯値 > A2 ; "X" ;
"○"
)
Offline
Shin様
ありがとうございました。解決できました。
ただ
Case( Right(偏芯基準;1= "X" and B > A3; "X";
B < A1 ; "X";
B > A2 ; "X";
"〇" ))
テキストだと1番目の条件が満たされると2,3番目の条件が合致しても
1番目の結果が返されると書かれていますが今回の計算式では
2番や3番目の結果が返されました。
したがって
Case( Right(偏芯基準;1) = "X" and B > A3; "X";
Right(偏芯基準;1) ≠ "X" and B < A1 ; "X";
Right(偏芯基準;1) ≠ "X" and B > A2 ; "X";
"〇" ))
のように変更しました。
1行書き忘れていました。
Let(
[
A = Substitute ( 偏芯基準 ; ["±" ; ¶ ]) ;
A1 = GetValue ( A ; 1 ) - GetValue ( A ; 2 ) ;
A2 = GetValue ( A ; 1 ) + GetValue ( A ; 2 ) ;
A3 = Substitute ( 偏芯基準 ; "mmMAX" ; "" ) ;
B = 偏芯値
] ;
Case (
Right(偏芯基準 ; 1) = "X" and 偏芯値 > A3 ; "X" ;
Right(偏芯基準 ; 1) = "X" ; "○" ;
偏芯値 < A1 ; "X" ;
偏芯値 > A2 ; "X" ;
"○"
)
Offline
Pages: 1
[ Generated in 0.030 seconds, 10 queries executed - Memory usage: 513.1 KiB (Peak: 517.64 KiB) ]