みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
皆様お世話になります
1つのフィールドで
1.退院年月日が入力されているものは入院年月日から退院年月日までの日数
2.退院年月日が入力されていない場合は入院年月日から今日の日付(Get ( 日付 ))までの日数
を出したいのですが計算式を教えていただけないでしょうか?
Filemaker12
退院日に入力がなければ本日、
あればその退院日を
入院日から引けばいいですよね。
入力の有無は
IsEmpty関数
で判定できます。
そのフィールドの索引を非保存として、
日付が変わるたびに再表示をしないと、日ごとの日数が更新されません。
Offline
計算結果 ☑非保存 の式で、
Case(IsEmpty(退院日); Get(日付); 退院日) - 入院日
Offline
+1 しておかないとだめでしょう。当日退院の入院は、入院日数は1です。
Case ( 退院日 ; 退院日 ; Get(日付) ) - 入院日 + 1
でもいいです。
Offline
チポさん、Hiroさん、Shinさん
ご回答ありがとうございます。
連絡が遅れ申し訳ありません。
今回Shinさんの
Case ( 退院日 ; 退院日 ; Get(日付) ) - 入院日 + 1
を使わせていただいたのですが、未来の入院日(予定)の場合
マイナスで表示されてしまいます。
入院日が未来の場合は0日と表示したいのですが可能でしょうか?
どうぞよろしくお願いいたします。
Max( 0; Case(退院日; 退院日; Get(日付))-入院日+1 )
Offline
Hiroさんお返事ありがとうございます。
Max( 0; Case(退院日; 退院日; Get(日付))-入院日+1 )にすると確かに未来の日付は0になったのですが
新規レコードというかなにも入力していないフィールドに737159の様な
よくわからない数字が表示されるようになってしまいました。
この状態は解消できますでしょうか?
突然に失礼いたします。
別件で検索中に偶然に目にとまりました。
私の場合を表示してみます。
If ( 初診日 = " " ; " " ; If ( 退院日 = " " ; " " ; 初診日 - 退院日 + 1 ) )
基本的に(退院日が初診日より早い場合がなければ)マイナス表示にはならないと思います。
参考になるでしょうか?(Mac OS10.11 FMP ver. 11 です)
ごめんなさい
初診日ではなく入院日としてください。
因みに、入院日、退院日ともにフィールドタイプは日付ですよね。
ごめんなさいごめんなさい
最後の引き算を間違えています
If ( 入院日 = " " ; " " ; If ( 退院日 = " " ; " " ; 退院日 - 入院日 + 1 ) )
でした。
未来の入院日については 0 になずに申し訳有りません。
Case (
退院日 > Get ( 日付 ) ; 0 ;
退院日 ; Get(日付) ) - 入院日 + 1 ;
""
)
Offline
入院日に入力がなくて、退院日に入力がある。
これがないことを前提に、
Case ( IsEmpty ( 入院日 ) ; "" ; Max ( 0 ; Case ( 退院日 ; 退院日 ; Get ( 日付 ) ) - 入院日 + 1 ) )
Offline
Choose( IsEmpty(入院日); Max(0; Case(退院日; 退院日; Get(日付))-入院日+1) ) とか、
あるいは、
>#7『新規レコードというかなにも入力していない』
新規作成時に「入力の自動化」で今日の日付を仮代入して、
空の状態を回避するとか?更に、空欄禁止を設定とか?
Last edited by Hiro (2019-04-05 13:43:08)
Offline
皆様へ
返事が遅れ申し訳ございません。
おかげさまで無事修正する事が出来ました。
ありがとうございました^^
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 521.6 KiB (Peak: 526.14 KiB) ]