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

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

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

You are not logged in.

Announcement

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


#1 2015-10-13 15:58:54

よこん
Guest

計算式の条件追加について

いつもお世話になっています。
今回もよろしくお願いします。

Case (
IsEmpty ( 入院日 ) ; "" ;
退院日 = "" ; 終了日 - Max ( 入院日 ; 開始日 ) + 1 - _2 ;
移行先判定="転棟" and 退院日   >  _3か月後; Min ( 終了日 ; 退院日 ) - Max ( 開始日 ; 入院日 ) +1-_2 ;
退院日   >   _3か月後 ; Min ( 終了日 ; 退院日 ) - Max ( 開始日 ; 入院日 ) +1-_2 ;
再入院判定 = "再入院" or "転入" ; Min ( 終了日 ; 退院日 ) - Max ( 開始日 ; 入院日 ) +1-_2 ;
0
)

上記の式で計算をさせています。

移行先判定="転棟" and 退院日   >  _3か月後; Min ( 終了日 ; 退院日 ) - Max ( 開始日 ; 入院日 ) +1-_2 ;
の所だと思うのですが、
移行先判定に転棟が入っている場合で
退院日が検索に使用しているグローバルフィールドの開始日と終了日の範囲の場合のみ
移行先判定="転棟" and 退院日   >  _3か月後; Min ( 終了日 ; 退院日 ) - Max ( 開始日 ; 入院日 ) -_2 ;

と+1を抜きたいのですが、どの様に変更をすれば宜しいでしょうか?

#2 2015-10-13 16:32:46

NoName
Guest

Re: 計算式の条件追加について

+1のところをIf文にすればいいんではないでしょうか
(略) Max ( 開始日 ; 入院日 ) +if(G開始 <= 退院日 and G終了 >= 退院日; 1;0)-_2

#3 2015-10-14 09:23:49

やっぴ
Member

Re: 計算式の条件追加について

if文を入れると、長くなって見にくくなるので、Let関数を使って
Let(
[
X=Max ( 入院日 ; 開始日 ) ;
N=Min ( 終了日 ; 退院日 ) ;
A=if(G開始 <= 退院日 and G終了 >= 退院日; 1;0)
];
Case (
IsEmpty ( 入院日 ) ; "" ;
退院日 = "" ; 終了日 - X + A - _2 ;
移行先判定="転棟" and 退院日   >  _3か月後; N - X + A-_2 ;
退院日   >   _3か月後 ; N - X + A-_2 ;
再入院判定 = "再入院" or "転入" ; N - X + A-_2 ;
0
)
)
のようにすればすっきりすると思います。

Offline

#4 2015-10-16 08:59:49

Shin
Member

Re: 計算式の条件追加について

計算の前提がよくわかりませんね。

3条件目以降が、Min ( 終了日 ; 退院日 ) - Max ( 開始日 ; 入院日 ) +1-_2 で同じなんだけど、これで良いのかな。特に、3条件目と4条件目は同じ事をやってないのかな。

Min ( 終了日 ; Max ( 終了日 ; 退院日 )  ) にしておくと、退院日の未入力の条件は考え無くてよくなりますよ。

Offline

#5 2015-10-20 16:27:28

よこん
Guest

Re: 計算式の条件追加について

NoName様
やっぴ様
Shin様

お礼が遅れ大変申し訳ありません。

やっぴ様の案を軸に変更を行い、おかげさまでうまく動作している様です。
ありがとうございました。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 509.19 KiB (Peak: 516.03 KiB) ]