みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FMP16 Macです。
フィールドAにチエック項目をチエックボックスで表示し、その答えによってフィールドBに値を入力する方法を教えてください。
フィールドA
□痛みがない □動作ができない □膝は足の上 □棒は足の上 □上半身は地面に対して □肩か平行 □上半身は脛骨と平行
フィールドB
「動作ができない」以外全てチエックの場合は3点
「痛みがない」と「動作ができない」以外に一つでも空欄がある場合は2点
動作ができないにチエックがある場合は1点
痛みがないにチエックがついていない場合は0点
今までこのようなケースはcaseを使用していましたが複雑である為困っています。
よろしくお願いいたします。
Last edited by yadashitanaka (2018-07-24 17:17:39)
Offline
説明理解も動作検証も甘々ですが、一応こんな事?
Case(
PatternCount(フィールドA; "痛みがない")=0 ; 0 ;
PatternCount(フィールドA; "動作ができない") ; 1 ;
FilterValues(List("痛みがない"; "動作ができない"); フィールドA)=FilterValues(List("痛みがない"; "動作ができない"); List("痛みがない"; "動作ができない"))
and ValueCount(フィールドA)<7 ; 2 ;
PatternCount(フィールドA; "動作ができない")=0 and ValueCount(フィールドA)=6 ; 3
)
考えてみたら、上のような逆順ではなく、説明通りの順が正しいのかな?
Case(
PatternCount(フィールドA; "動作ができない")=0 and ValueCount(フィールドA)=6 ; 3 ;
FilterValues(List("痛みがない"; "動作ができない"); フィールドA)=FilterValues(List("痛みがない"; "動作ができない"); List("痛みがない"; "動作ができない"))
and ValueCount(フィールドA)<7 ; 2 ;
PatternCount(フィールドA; "動作ができない") ; 1 ;
PatternCount(フィールドA; "痛みがない")=0 ; 0
)
Last edited by Hiro (2018-07-24 19:53:28)
Offline
Hiroさま
ありがとうございます。
ご提示頂いた内容で確認してみましたが、
Case(
PatternCount(フィールドA; "動作ができない")=0 and ValueCount(フィールドA)=6 ; 3 ;
FilterValues(List("痛みがない"; "動作ができない"); フィールドA)=FilterValues(List("痛みがない"; "動作ができない"); List("痛みがない"; "動作ができない"))
and ValueCount(フィールドA)<7 ; 2 ;
PatternCount(フィールドA; "動作ができない") ; 1 ;
PatternCount(フィールドA; "痛みがない")=0 ; 0
)
痛みがない=空欄
痛みがない+動作ができない=2
動作ができない=1
痛みがない・動作ができない以外=0
となってしまいました。動作ができない=1だけが望んだ結果でした。
説明に1点入力ミスがありました。申し訳ありません。
整理しますと
0点の場合=「痛みがない」にチエックがつかない (痛みがある)にチエックをつけ0点の方がわかりやすいでしょうか?
1点の場合=「動作ができない」のみにチエック
2点の場合=「痛みがない」「膝は足の上」「棒は足の上 」「上半身は地面に対して」「肩か平行」 「上半身は脛骨と平行」の中でひとつでも空欄があるとき
3点の場合=「動作ができない」以外にチエックです。
重ねてすみません。
「痛みがない」ではなく「痛みがある」とした方が簡便になりますでしょうか?
0点の場合=「痛みがある」にチエック
1点の場合=「動作ができない」のみにチエック
2点の場合=「痛みがある」「動作ができない」以外でひとつでも空欄があるとき
3点の場合=「痛みがある」「動作ができない」以外が全てにチエック
私なりにご提示頂いた内容を考え簡便にと考えました。
ご教授いただけると幸いです。
Offline
Case ( PatternCount ( A ; "痛みがある" ) ; 0 ;
Case ( A = "動作ができない" ; 1 ;
Case ( PatternCount ( A ; "動作ができない" ) ; Case ( ValueCount ( A ) <= 5 ; 2 ; 3 ) ; Case ( ValueCount ( A ) <= 4 ; 2 ; 3 ) ) ) )
検証不十分です-_-
Offline
チポ さま
ありがとうございます。
実際に検証してみました。
チエックがひとつもない時=2
「痛みがある」にチエックが入った時はどのパターンでも=0
「膝は足の上 」「棒は足の上 」「上半身は地面に対して 」「肩か平行 」「上半身は脛骨と平行」全てにチエック=3
「膝は足の上 」「棒は足の上 」「上半身は地面に対して 」「肩か平行 」「上半身は脛骨と平行」にひとつでも空欄=2
「動作ができない」にチエック=2
となり、1点が出てきません。
Case ( PatternCount ( A ; "痛みがある" ) ; 0 ;
Case ( A = "動作ができない" ; 1 ;
Case ( PatternCount ( A ; "動作ができない" ) ;
Case ( ValueCount ( A ) <= 5 ; 2 ; 3 ) ;
Case ( ValueCount ( A ) <= 4 ; 2 ; 3 ) ) ) )
ご教授いただけますでしょうか?
Offline
未だに説明の理解が自信ありませんが、
一応、こんな式ではどうでしょう?
Case(
PatternCount(Aフィールド; "痛みがある"); 0;
Aフィールド="動作ができない"; 1;
Choose(
ValueCount(FilterValues(Aフィールド;List("膝は足の上";"棒は足の上";"上半身は地面に対して";"肩か平行";"上半身は脛骨と平行")))
; 2
; 2
; 2
; 2
; 2
; 3
)
)
【補足】
こちらも、上式の短縮例をば、補足してみます。
Case(
PatternCount(Aフィールド; "痛みがある"); 0;
Aフィールド="動作ができない"; 1;
2 + (ValueCount(Substitute(Aフィールド;["動作ができない";""]))=5)
)
Last edited by Hiro (2018-07-26 11:48:08)
Offline
> チエックがひとつもない時=2
計算式指定のオプションで、
式内の全フィールドの値が空欄の時、計算しない
にチェックが入っていますか?
> 1点が出てきません
Case ( A = "動作ができない" ; 1 ;
ここで評価していますから、
1点にならないのは式が間違えているのでは。
後が正しいのか間違っているのか書き込みからは理解できません。
前式、冗長すぎました、訂正です。
Case ( PatternCount ( A ; "痛みがある" ) ; 0 ;
A = "動作ができない" ; 1 ;
PatternCount ( A ; "動作ができない" ) ; Case ( ValueCount ( A ) <= 5 ; 2 ; 3 ) ;
Case ( ValueCount ( A ) <= 4 ; 2 ; 3 ) )
式のロジックは前式と変わりません。
Offline
チポ さま
Hiro さま
ありがとうございます。
再起動しましたら1点が出ました。
Case ( PatternCount ( A ; "痛みがある" ) ; 0 ;
A = "動作ができない" ; 1 ;
PatternCount ( A ; "動作ができない" ) ; Case ( ValueCount ( A ) <= 5 ; 2 ; 3 ) ;
Case ( ValueCount ( A ) <= 4 ; 2 ; 3 ) )
Case(
PatternCount(Aフィールド; "痛みがある"); 0;
Aフィールド="動作ができない"; 1;
2 + (ValueCount(Substitute(Aフィールド;["動作ができない";""]))=5)
)
の場合どちらも3点になりません。
お忙しい中恐縮ですがご確認いただけますでしょうか。
Offline
私のテストでは、
痛みがある のチェックはなし
かつ
動作ができない のチェックは問わず
かつ
他の5項目全てにチェック
で3点になりますよ。
私はここでのファイルのアップダウンはできません。
Offline
サンプルを診て、即 原因が分かりましたよ!
当初説明の「他の5項目」は、サンプルでは「肩か平行」項が抜けて「他は4項」になっているからです。
もし、他は4項が正しいなら、>#6式の最後の行は、以下としなければ、
2 + (ValueCount(Substitute(Aフィールド;["動作ができない";""]))=4)
Offline
チポ さま
Hiro さま
申し訳ありませんでした。
無事解決いたしました。
ありがとうございます。今後ともよろしくお願いいたします。
Offline
Pages: 1
[ Generated in 0.038 seconds, 9 queries executed - Memory usage: 592.85 KiB (Peak: 609.76 KiB) ]