みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
マルチポストで失礼します
Win7 pro 64bit, FM pro13使用しています
あるフィールド「ア」にA、B、C、Dとチェックボックスセットで用意しました
A-Dは単語です
このうち、A or B or Dのどれかをチェックしたら
別のフィールド「イ」に「あり」を、どれも選ばないないしはCを選択した場合は「なし」と設定したいのです
case関数でトライしてみたのですが
ある方にご指導いただき
Case (
FilterValues ( ア ; "A" ) ; "あり" ;
FilterValues ( ア ; "B" ) ; "あり" ;
FilterValues ( ア ; "D" ) ; "あり" ;
IsEmpty ( ア ) ; "なし"
)
としたのですがうまく行きませんでした
非常に初歩的な質問ですが解決法をご存知の方いらっしゃいましたら教えて下さい
Offline
FilterValues の結果は論理値でなくテキストですから、そのままでは条件になりません。
Case ( FilterValues ( List ( "A" ; "B" ; "D" ) ; ア ) = "" ; "なし" ; "あり" )
ありがとうございます
FilterValues の結果は論理値でなくテキストですから、そのままでは条件になりません。
Case ( FilterValues ( List ( "A" ; "B" ; "D" ) ; ア ) = "" ; "なし" ; "あり" )
A,B,Dを再度チェックしなおしたら(こちらの数は少ないので)ありと表示されました
しかし、残りの大半(400ちかく)のなしが表示されず空欄のままです
何か良い解決策はあるでしょうか?
Offline
値が、"A" "B" "D" で無い物があるのでしょうね。例えば、"A "
Offline
ありがとうございます
値が、"A" "B" "D" で無い物があるのでしょうね。例えば、"A "
一応慎重にコピーしたので、余分なスペースは入っていませんでした
過去のなしに反応しないのはどうしてなのでしょうかね・・
Offline
●チェックボックスは複数値選択可能ですが、その場合の式は、
Case(
FilterValues(ア; List("A";"B";"D"))=FilterValues(ア;ア); "あり";
"なし"
)
※ □式内の全フィールドの値が空欄の時、計算しない → デフォルトチェックを外す
●ラジオボタンなら択一値選択ですが、その場合の式は、
(上のチェックボックスの式は、ラジオボタンでも汎用で使えますが、一応専用式は)
Case(
FilterValues(ア; List("A";"B";"D"))<>""; "あり";
"なし"
)
※ □式内の全フィールドの値が空欄の時、計算しない → デフォルトチェックを外す
Offline
ありがとうございます
●チェックボックスは複数値選択可能ですが、その場合の式は、
Case(
FilterValues(ア; List("A";"B";"D"))=FilterValues(ア;ア); "あり";
"なし"
)
※ □式内の全フィールドの値が空欄の時、計算しない → デフォルトチェックを外す●ラジオボタンなら択一値選択ですが、その場合の式は、
(上のチェックボックスの式は、ラジオボタンでも汎用で使えますが、一応専用式は)
Case(
FilterValues(ア; List("A";"B";"D"))<>""; "あり";
"なし"
)
※ □式内の全フィールドの値が空欄の時、計算しない → デフォルトチェックを外す
A,B,Dをチェックするとありになりますが、その後、チェックを外すとなしになりませんでした
また、過去のなしも反映されず新規のデータはありになりました
Offline
A,B,Dをチェックするとありになりますが、その後、チェックを外すとなしになりませんでした
検証不足すみません。
では、データ削除のケースも加味した式、
Case(
IsEmpty(ア)=0 and FilterValues(ア; List("A";"B";"D"))=FilterValues(ア;ア); "あり";
"なし"
)
※ □式内の全フィールドの値が空欄の時、計算しない → デフォルトチェックを外す
また、過去のなしも反映されず新規のデータはありになりました
計算フィールドなら通常考えられませんが、
●入力の自動化(+既存値書換え)で計算値代入しているなら、入力済みデータには発火しません。
その場合は、自フィールド値で自フィールドを「全置換」してデータ上書きすることで、発火させます。
●計算フィールドなら、Shinさんが言われたように旧データに規定外の文字列が含まれているとしか?
その場合、フィルターでクリーニングして最適化を試みるとか、
Last edited by Hiro (2016-07-11 22:54:13)
Offline
ありがとうございます
LITT wrote:A,B,Dをチェックするとありになりますが、その後、チェックを外すとなしになりませんでした
検証不足すみません。
では、データ削除のケースも加味した式、Case(
IsEmpty(ア)=0 and FilterValues(ア; List("A";"B";"D"))=FilterValues(ア;ア); "あり";
"なし"
)
※ □式内の全フィールドの値が空欄の時、計算しない → デフォルトチェックを外すLITT wrote:また、過去のなしも反映されず新規のデータはありになりました
計算フィールドなら通常考えられませんが、
●入力の自動化(+既存値書換え)で計算値代入しているなら、入力済みデータには発火しません。
その場合は、自フィールド値で自フィールドを「全置換」してデータ上書きすることで、発火させます。
●計算フィールドなら、Shinさんが言われたように旧データに規定外の文字列が含まれているとしか?
その場合、フィルターでクリーニングして最適化を試みるとか、
チェックを外すと「なし」にすることが出来ました
大変助かります
やはり過去の分は反映されませんでした
地道に全置換してみることにします
ありがとうございました
Last edited by LITT (2016-07-11 23:20:05)
Offline
>計算フィールドなら通常考えられません
と書いているように、私が書いてた最初の式は必ずどっちかの値になるので「空欄のままです」の原因は計算されてないということです。
「計算」タイプのフィールドに設定すればよいのでは。
ありがとうございます
返信遅くなり申し訳ありません
>計算フィールドなら通常考えられません
と書いているように、私が書いてた最初の式は必ずどっちかの値になるので「空欄のままです」の原因は計算されてないということです。
「計算」タイプのフィールドに設定すればよいのでは。
イのフィールドを「計算」にして教えていただいた式を入力したら
過去分も「なし」となりました
これでズバッと解決できました
ありがとうございました
Offline
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 545.7 KiB (Peak: 566.23 KiB) ]