我正在尝试根据 2021 年就诊过的患者来筛选报告,但如果患者在前几年也有就诊,我想将他们排除在报告之外。(因此,如果患者在 2018 年和 2021 年都曾就诊过,我不希望他们被提取)我还希望另一列中的数字大于等于且大于 10.0
B 列 = 服务日期 C 列 = 患者姓名 F 列 = 数字指示符
过滤这个或 =IF 公式的最佳方法是什么?
这是一份医疗保健报告,因此由于患者信息的原因,我无法提供报告内容。
答案1
正如评论中所建议的,这可以通过辅助列使用如下公式来完成:
=AND(F2>=10,COUNTIFS(C:C,C2,B:B,"<"&DATE(2021,1,1))=0)
确保调整引用F2
并C2
匹配您粘贴公式的行。之后,您可以上下复制该列,这些引用将自动更新。以下是其工作原理的基本原理:
AND()
要求里面的所有条件都为真,否则返回 false。我们有 2 个条件:
F2>=10
很简单。COUNTIFS()
计算满足多个条件的记录数。它们以范围+条件对的形式出现,一共有两个。:C:C,C2
仅计算整个 C 列中与此行值(此行的患者姓名)匹配的值B:B,"<"&DATE(2021,1,1)
仅计算 2021-01-01 之前(即 2021 年之前的日期)。
如果COUNTIFS()
返回 0(表示在之前的任何年份都没有找到该患者)并且 F 中的数字大于或等于 10,则该AND()
函数将返回 true。否则,它返回 false。
将公式复制/粘贴到表格的每一行,然后按该列进行过滤。您需要返回 true 的那些。
答案2
请检查以下信息是否对您有帮助。
=IF(D4>=10,IF(ISNA(VLOOKUP(C4,$C$10:$C$13,1,FALSE)),B4:D4,""),"")
生成结果表后,只需将结果表的值复制到新的即可。然后参考这删除所有空白行。