初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2018-05-23 14:54:03

tonton
Member

日付の条件付き書式について

いつもお世話になっております。

検査値を条件付き書式で色分けを下記の式でしています。
Case(IsEmpty(検査データ_患者::RF);0;GetAsNumber(検査データ_患者::RF) > 20)

今回検査値の基準が変わりまして
2016/4/1以降は 15以上を色分けするという風になりました。

ですので、2016/3/31までは 20以上を色付け、2016/4/1以降は 15以上を色付けという風に二つ式を入れたいのですが
どのように変更すればよろしいでしょうか?

Offline

#2 2018-05-23 16:35:42

Hiro
Member

Re: 日付の条件付き書式について

Self*1 >= Case(検査日<Date(4;1;2016); 20; 15)

Offline

#3 2018-05-24 10:03:34

tonton
Member

Re: 日付の条件付き書式について

Hiroさん返信ありがとうございます。

もう少し質問させてください。

検査データ_患者::PT*1 < Case(検査データ_患者::受付日<Date(4;2;2018); 10; 9.4)
検査データ_患者::PT*1 > Case(検査データ_患者::受付日<Date(4;2;2018); 13; 12.5)

上記の様に条件付き書式を設定した場合LowとHiを表示したいのですが
空欄の場合にLowが反応してしまいます。

また、男女でわける場合は

Case(IsEmpty(検査データ_患者::PT);0;検査データ_患者::性別="M" and GetAsNumber(検査データ_患者::PT)  < 10)
今までは上記の計算式でしていたのですが、
検査データ_患者::PT*1 < Case(検査データ_患者::性別="M" and 検査データ_患者::受付日<Date(4;2;2018); 10; 9.4)
でよろしでしょうか?

Offline

#4 2018-05-24 11:19:57

Shin
Member

Re: 日付の条件付き書式について

将来の変更もあるでしょうから、内部でテーブル構成にしてもいいかもしれません。
Let (
[
SEX = ( 患者::性別 = "M" ) ; // 男性は1;女性は0
YM = ( 検査データ_患者::受付日 ≥ Date ( 4 ; 1 ; 2018 ) ) ; // 2018/4/1 以降は1
lmt = Choose ( SEX + YM * 2 ;
  10 ; 13 ;
  9.4 ; 12.5
)
] ;
検査データ_患者::PT*1 > lmt
)
みたいな式で。

Last edited by Shin (2018-05-24 21:07:55)

Offline

#5 2018-05-24 11:59:59

Hiro
Member

Re: 日付の条件付き書式について

>#3 条件付き書式を設定した場合LowとHiを表示したい
Shinさん#4 論理式の結果に論理書式を掛け、真はHi、偽はLow と表示書式指定します。

Offline

#6 2018-05-24 15:34:25

tonton
Member

Re: 日付の条件付き書式について

すみません、理解が出来ず、、、

Lowという文字 と Hi という文字に別々に条件付き書式を設定しようと思ってます。
また、検査項目によって、性別を判断しなくてよいものもあり
検査項目によって条件付き書式の内容を変更しようと思っています。
この説明が出来ておらず申し訳ございません。

Shinさんの式を条件付き書式に記入すると思うのですが
PTという検査項目は性別を判断しなくてよい項目になります。
また、Lowのみの判定の場合はどのように変更すればよろしいでしょうか?

Offline

#7 2018-05-24 15:42:52

チポ
Member

Re: 日付の条件付き書式について

> Lowという文字 と Hi という文字に別々に条件付き書式を設定
ならば、条件式は
  Self = "Low"
とかでいいのでは。

文字色の変更ならば、条件付き書式にしなくても、
フィールドの計算式に書式指定できますよね。

Offline

#8 2018-05-24 15:56:04

tonton
Member

Re: 日付の条件付き書式について

チポさん
グラフィックオブジェクトの文字を「Low」と「Hi」の2つ配置していまして
通常は無色にして、異常値が出たときのみ条件付き書式で色をつけて表示しています。
この方法しか思い浮かばす・・・

Offline

#9 2018-05-25 09:01:49

チポ
Member

Re: 日付の条件付き書式について

テキストオブジェクトではなく、
計算フィールドにして、
空白
Low
Hi
の結果を返す様にして、それに書式を加えればいいのでは。

Offline

#10 2018-05-25 15:46:43

tonton
Member

Re: 日付の条件付き書式について

shinさんに教えていただいたものを変更して
Let (
[
YM = ( 検査データ_患者::受付日 ≥ Date ( 4 ; 1 ; 2018 ) ) ; // 2018/4/1 以降は1
lmt = Choose ( YM ;
  10 ;
  9.4
)
] ;
検査データ_患者::PT*1 < lmt
)
とすると値が入ったものに関しては正しく表示されるのですが
無記入の場合もLowが反応してしまいます。。
もう一度ご指摘していただけないでしょうか。

チポさん
すみません、僕の理解がおいつかずまったくイメージ出来ていません・・・

Offline

#11 2018-05-25 17:06:30

チポ
Member

Re: 日付の条件付き書式について

計算フィールドを作り、その計算式をShinさんの式をお借りして
  Let (
[
SEX = ( 患者::性別 = "M" ) ;
YM = ( 検査データ_患者::受付日 >= Date ( 4 ; 1 ; 2018 ) ) ;
lmt = Choose ( SEX + YM * 2 ;
                        10 ; 13 ; 9.4 ; 12.5 )
] ;
Case ( IsEmpty ( 検査データ_患者::PT ) ; "" ; 検査データ_患者::PT*1 > lmt ; "Hi" ; "Low" )
)

とすると条件により
空白
Hi
Low
と表示されます。

このフィールドに条件付き書式を設定すればいいのでは。

Offline

#12 2018-05-28 09:23:39

tonton
Member

Re: 日付の条件付き書式について

チポさん
色々書ていただきありがとうございます。
そういうやり方もあるのですね。

ただ今回は出来れば、条件付き書式だけでのみ処理をしたいと思っていまして、
※該当テーブルのフィールド追加が不可の為。

良かったら条件付き書式のみで処理ができるやり方をご教授願えないでしょうか。

>>無記入の場合もLowが反応してしまいます。。

が対応でいればうまくいくと思っているのですが・・・

本当にご面倒で申し訳ありませんがどうぞ宜しくお願いいたします。

Offline

#13 2018-05-28 10:05:24

Shin
Member

Re: 日付の条件付き書式について

条件付き書式の中に、上の式を設定しておき、結果を論理書式で表示させるだけですよ。空白は、空白として別に処理を含めればいいでしょう。

Offline

#14 2018-05-28 17:14:37

tonton
Member

Re: 日付の条件付き書式について

チポさん、shinさんへ

男女を分ける必要がある場合は下の式で
Let (
[
SEX = ( 検査データ_患者::性別="M" ) ;  // 男性は1;女性は0
YM  = ( 検査データ_患者::受付日 ≥ Date ( 4 ; 2 ; 2018 ) ) ; // 2018/4/2 以降は1
lmt  = Choose ( SEX + YM * 2 ;
  137 ; 281;
  177.6 ; 301.3
)
] ;
Case(IsEmpty(検査データ_患者::フェリチン);0;検査データ_患者::フェリチン*1 > lmt)
)

性別を分ける必要が無い時は
Let (
[
YM = ( 検査データ_患者::受付日 ≥ Date ( 4 ; 1 ; 2016 ) ) ; // 2016/4/1 以降は1
lmt = Choose ( YM ;
  20 ;
  15
)
] ;
Case(IsEmpty(検査データ_患者::RF);0;検査データ_患者::RF*1 > lmt)
)

で稼働するようになりました。

年度もお手間を取らせて申し訳ありませんでした。
おかげさまで思い通りの式が完成しました^^
ありがとうございました。

Offline

#15 2018-05-28 17:39:00

Shin
Member

Re: 日付の条件付き書式について

もし、つぎの閾値の変更があれば、
YM  = ( 検査データ_患者::受付日 ≥ Date ( 4 ; 2 ; 2018 ) ) + ( 検査データ_患者::受付日 ≥ Date ( 4 ; 2 ; 2020 ) )  // 2018/4/2 以降は1 , 2020/4/2以降は2
としておき、閾値を下に続けていけばいいでしょう。

Offline

#16 2018-05-30 14:13:56

tonton
Member

Re: 日付の条件付き書式について

shinさんありがとうございます。
再度変更がある際に活用させていただきますね^^

Offline

#17 2019-11-25 15:49:10

tonton2
Guest

Re: 日付の条件付き書式について

お世話になります。
以前質問した続きで、閾値の変更が発生しました。
Shinさんの例をもとに下記の様に記入したのですが、うまく想定通りに反応してくれません。
どなたか見ていただけませんでしょうか?


Let (
[
YM = ( 検査データ_患者::受付日 ≥ Date ( 5 ; 1 ; 2019 ))+( 検査データ_患者::受付日 ≥ Date ( 11 ; 18 ; 2019 )) ;// 2019/5/1 以降は1、2019/11/18以降は2
lmt = Choose ( YM ;
  65 ; //古い方
  64; //20190501以降
  80  //20191118以降
)
] ;
Case(IsEmpty(検査データ_患者::ケッセイ_アエン);0;検査データ_患者::ケッセイ_アエン < lmt)
)

#18 2019-11-25 18:40:21

Shin
Member

Re: 日付の条件付き書式について

式に問題は無い様ですが。

これ以上増える様でしたら、
Let (
[
    lmt =
        Case (
            検査データ_患者::受付日 ≥ Date ( 11 ; 18 ; 2019 ) ; Choose ( sex ; 80 ; 80 ) ; //20191118以降
            検査データ_患者::受付日 ≥ Date ( 05 ; 01 ; 2019 ) ; Choose ( sex ; 64 ; 64 ) ; //20190501以降
            Choose ( sex ; 65 ; 65 )  //古い方
        )
] ;
    Case(IsEmpty(検査データ_患者::ケッセイ_アエン);0;検査データ_患者::ケッセイ_アエン < lmt)
)
のような形にする方が見通しがよくなります。または、マスターテーブルを作って、日付で比較して基準値を取得するといいでしょう。

Last edited by Shin (2019-11-26 10:20:51)

Offline

#19 2019-11-26 11:48:07

tonton2
Guest

Re: 日付の条件付き書式について

Shinさんありがとうございます。

現在該当のケッセイ_アエンフィールドタイプを『テキスト』にしているのですが、これが原因なのでしょうか?
数値タイプに変更したところ、うまく動いてくれるようになりました。

まれにこのフィールドに数値以外の文字列が入力されることがあり、出来ればテキストタイプのままで
処理できればと思っているのですが、妙案はありますでしょうか?

#20 2019-11-26 14:17:56

チポ
Member

Re: 日付の条件付き書式について

そのフィールドに入力される値で、
数値ではないテキストの部分に、数字がないのなら、
  GetAsNumber ( フィールド名 )
とすれば数値のみ取り出せます。


しかし、
数値を得たいフィールドにテキストを入力する、
というのもいかがなものでしょうか。。

Offline

#21 2019-11-26 15:15:24

Shin
Member

Re: 日付の条件付き書式について

テキストフィールドとの比較ですと、テキストとしての扱いになりますので、数値とは結果が異なることになりますね。
"01" は "002" より大きいです。

Last edited by Shin (2019-11-26 15:38:43)

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 613.6 KiB (Peak: 630.14 KiB) ]