[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『『退院』次に『入院』が出てきた場合、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 >
以降なのでは。。。^^;
m(__)m
(隠居Z) 2025/04/22(火) 22:11:41
(八家) 2025/04/22(火) 22:23:19
↑ とありますので。。。単純に 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
TI様 ありがとうございました。まさに望んでいた関数です。大変助かりました。感謝します。
(八家) 2025/04/22(火) 23:22:20
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.