Cảm ơn bạn đã giúp đỡ.
Trong sheet BN thì những BN nào có kết quả là 1 tức là khỏi, 2 là đỡ, 3 là không đỡ
Còn câu hỏi số 2 nhờ bạn hướng dẫn nốt (tính kết quả cho các ô màu vàng).
Bệnh khác ở đây ví dụ như những bệnh có mã là M19, G52, R69 (vì ít gặp nên xếp thành 1 nhóm)
Tính số BN theo tháng của nhóm này, số khỏi đỡ, ngày điều trị.
Xét bệnh nhân có mã bệnh ở BN!J5:
- Để xem có"bệnh khác" hay không ta dùng công thức =ISNA(MATCH(BN!J5,TK!$M$6:$M$15,0))
- Để biết bệnh nhân có điều trị trong khoảng thời gian từ D3 đến G3 ta dùng công thức =AND(RV>=D3,VV<=G3), trong đó VV là ngày vào viện (BN!G5), RV là ngày ra viện (BN!H5) hoặc TODAY() nếu ngày ra viện trống (RV=IF(ISBLANK(BN!H5),TODAY(),BN!H5)
- Để tính số ngày nằm viện từ D3 đến G3 ta xét các trường hợp
1. VV <= D3< RV <=G3 số ngày là RV-D3
2. VV<=D3<G3<=RV số ngày là G3-D3
3. D3<VV<RV<G3 số ngày là RV-VV
4. D3<VV<G3<=RV số ngày là G3-VV
Công thức chung cho 4 trường hợp trên là MIN(RV,G3)-MAX(VV,D3)
5. RV=D3 hoặc VV=G3 hoặc D3<=VV=RV<=G3 (nếu ngày ra viện trùng ngày vào) số ngày là 1
6. RV<D3 hoặc VV>G3 số ngày là 0
Công thức chung cho 6 trường hợp trên là =IF(MIN(RV,G3)>MAX(VV,D3),MIN(RV,G3)-MAX(VV,D3),IF(MIN(RV,G3)=MAX(VV,D3),1,0)), đây là số ngày nằm viện của một bệnh nhân.
Công thức ở ô R16 tính tổng ngày nằm viện của các bệnh nhân có bệnh khác trong khoảng D3 đến G3 là
=SUMPRODUCT(ISNA(MATCH(BN!J5:J53,TK!$M$6:$M$15,0))* IF(IF(IF(ISBLANK(BN!H5:H53),TODAY(),BN!H5:H53)>G3,G3,IF(ISBLANK(BN!H5:H53),TODAY(),BN!H5:H53))>IF(BN!G5:G53>D3,BN!G5:G53,D3),IF(IF(ISBLANK(BN!H5:H53),TODAY(),BN!H5:H53)>G3,G3,IF(ISBLANK(BN!H5:H53),TODAY(),BN!H5:H53))-IF(BN!G5:G53>D3,BN!G5:G53,D3),IF(IF(IF(ISBLANK(BN!H5:H53),TODAY(),BN!H5:H53)>G3,G3,IF(ISBLANK(BN!H5:H53),TODAY(),BN!H5:H53))=IF(BN!G5:G53>D3,BN!G5:G53,D3),1,0)))
Để dễ theo dõi, bạn copy công thức =IF(MIN(RV,G3)>MAX(VV,D3),MIN(RV,G3)-MAX(VV,D3),IF(MIN(RV,G3)=MAX(VV,D3),1,0)) ra file word rồi dùng chức năng thay thế MIN(RV,G3) thành IF(RV>G3,G3,RV), MAX(VV,D3) thành IF(VV>D3,VV,D3). Thay RV thành IF(ISBLANK(BN!H5:H53),TODAY(),BN!H5:H53). Thay VV thành BN!G5:G53. Mình không dùng hàm MIN và MAX vì MIN(BN!G5:G53,G3) là giá trị nhỏ nhất của 49 số gồm tất cả cột ngày vào viện và G3 dẫn đến kết quả sai.