[[20250422214920]] 『『退院』次に『入院』が出てきた場合、C列に1と普x(八家) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『『退院』次に『入院』が出てきた場合、C列に1と表示させる関数』(八家)

いつもお世話になっております。関数作成についてご教授願いたく投稿しました。

下記のような表があるとします。

日付 状態  氏名 判定
2025/4/1 入院 小倉
2025/4/23 退院 竹田
2025/4/24 入院 三井
2025/4/25 入院 大木
2025/4/26 退院 小倉
2025/4/27 入院 小倉 1
2025/4/28 退院 大木
2025/4/29 退院 小倉   
2025/4/30 退院 青山
2025/5/1 入院 小倉 1
2025/5/2 入院 大木 1
2025/5/3 入院 竹田
2025/6/3 退院 小倉
2025/11/4 退院 大木
2025/11/5 入院 大木 1   

同名の患者において、スパンが90日以内で、『退院』次に『入院』が出てきた場合、C列に1と表示させる関数を考えています 。
注意したいのは、2025年4月1日以降の入院患者であることです。
例えば、一見13行目の竹田は反応しそうであるが、入院が2025/4/1以前のものなので、反応してはいけないきまりです。

D2 に以下の数式を入力し、下にコピーしました。

=IF(AND(B2="入院", A2>=DATE(2025,4,1), COUNTIFS(B:B, "退院", C:C, C2, A:A, "<="&A2, A:A, ">"&A2-90)>0, COUNTIFS(B:B, "入院", C:C, C2, A:A, "<"&DATE(2025,4,1))=0), 1, "")

しかし、どうしても『13行目の竹田』が反応してしまいます。

反応しないような関数をご教授願います。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


>>どうしても『13行目の竹田』が反応してしまいます。
>>入院が2025/4/1以前のものなので

以降なのでは。。。^^;
m(__)m

(隠居Z) 2025/04/22(火) 22:11:41


隠居Z様 コメントありがとうございます。 13行目の竹田氏はぱっと見は入院二回目ではないかとなりますが、
対象範囲が2025年4月1日以降なので、入院一回目となり、反応しないようにしたいのです。2025年4月1日をスタートとして、それ以降、入院が2回目の方を1と表示させたいのですが・・なかなかうまくいかないため投稿させてもらいました。

(八家) 2025/04/22(火) 22:23:19


2025/5/3 入院 竹田

↑ とありますので。。。単純に 2025/5/3 は 20254/1 以降なのでは


思っただけです。


今わかりました。フィルターかけてみれば、解りやすいですね
確かに、入院は一回目でした。
済みませんでした。

数式に関しましては私が教えて戴かなくては成らない程、無知なので
他の回答者様のお出ましをお待ちください。VBAならと申し上げたいのですが
VBAでも難しそうな複雑な条件ですねぇ。。。← 私にとってはです^^;

こちらは すばらしい 先生方がたくさん おられますので お待ち下さいませ
私はこれにて失礼致します。お騒がせ致しました。m(__)m
(隠居Z) 2025/04/22(火) 22:33:25


 A列の日付が昇順なら

 D2セル
 =IF(OR(B2<>"入院",A2<DATE(2025,4,1)),"",IF(COUNTIFS($B$1:B1,"退院",$C$1:C1,C2,$A$1:A1,">"&A2-90)=0,"",IF(COUNTIFS($B$1:B1,"入院",$C$1:C1,C2,$A$1:A1,">="&DATE(2025,4,1))>0,1,""))) 

 13行目が反応しないことは確認済み。
 
(TI) 2025/04/22(火) 23:03:58

隠居Z様 コメントありがとうございました

TI様 ありがとうございました。まさに望んでいた関数です。大変助かりました。感謝します。 
(八家) 2025/04/22(火) 23:22:20


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.