我目前正在开展一个项目,其中有一份患者就诊诊所的列表。每个患者都分配有一名初级保健提供者,但这并不总是特定就诊时的护理提供者。我的任务是查看该诊所有多少次患者实际就诊了他们的 PCP。实际上,几天前我在这个网站上解决了这个问题,并且能够使用 Excel 中的 IF 语句来确定所有这些。
(注意:从数据库中提取数据的方式中,PCP 字段包含提供商的全名和凭证,而 Rendering 字段仅包含姓氏)
=IF(COUNTIF([@PCP],"*"&[@Rendering]&"*")>0,"YES","")
它运行完美。问题是我了解到了一个新的变化:由于诊所的提供者以团队形式工作,如果患者与该 PCP 团队中的任何人会面,则该患者被认为已经见过他们的 PCP。所以我不能再只比较 Excel 列表中的 PCP 和渲染字段。
我知道需要做什么,但我不知道该怎么做。到目前为止,所有尝试都导致非特定的 Excel 语法错误。
我会尝试为大家提供更好的设置。假设有两个团队,每个团队有三个提供商。
Smith, John MD Brown, Bob MD
Jones, Mike MD Green, Ann MD
Doe, Jane MD White, Mary MD
我的表格并排显示了渲染和 PCP 名称,我想添加另一列,其中包含执行检查的 IF 语句(可能只是对肯定结果说“是”,而其他所有内容都留空)。它应该看起来像这样:
Rendering PCP Seen PCP/team?
---------------------------------------------------------------
Smith Smith, John MD YES
Smith Jones, Mike MD YES
Brown Smith, John MD
Green Brown, Bob MD YES
Doe White, Mary MD
Doe Jones, Mike MD YES
因此,只有当 Rendering 和 PCP 名称来自不同的团队时,结果才应该是负面的。而且由于我现在正在检查列表名称(或文本字符串)而不是简单地在单元格之间进行比较,我不能再使用我的@PCP
和@Rendering
参数了(除非我完全遗漏了什么)。我正在描绘一系列嵌套IF
语句,并花了一些时间勾勒出它需要的基本结构。
=IF(@PCP = Smith AND @Rendering = Smith, "YES", IF(@PCP = Smith AND @Rendering = Jones, "YES", IF(@PCP = Smith AND @Rendering = Doe, "YES", IF(@PCP = Jones AND @Rendering = Jones, "YES", IF(@PCP = Jones AND @Rendering = Smith, "YES", IF(@PCP = Jones AND @Rendering = Doe, "YES", IF(@PCP = Doe AND @Rendering = Doe, "YES", IF(@PCP = Doe AND @Rendering = Smith, "YES", IF(@PCP = Doe AND @Rendering = Jones, "YES", "")))))))))
显然,这种语法并不完全正确,而且这只是两支球队中的一支(我实际上正在处理四团队在现实生活中),但我走对路了吗?我尝试做一个只有两个提供商的精简版本,只是作为一个实验,Excel 只是弹出“看起来你正在尝试编写一个公式...”的窗口,并没有告诉我到底出了什么问题。我知道我需要使用通配符,除非我想在 PCP 字段中输入提供商的全名...
有人对如何实现这个功能有什么建议吗?
答案1
如果你有 上的访问列表Sheet1
和 上的团队列表Sheet2
。我会这样做(在 上Sheet1 C2
):
=IF(AND(COUNTIF(Sheet2!$A$1:$A$3,"*"&A2&"*")>0,COUNTIF(Sheet2!$A$1:$A$3,B2)>0),"YES",IF(AND(COUNTIF(Sheet2!$B$1:$B$3,"*"&A2&"*")>0,COUNTIF(Sheet2!$B$1:$B$3,B2)>0),"YES",""))
答案2
您必须创建一个团队名称,例如团队 A(Smith, John MD、Jones, Mike MD、Doe, Jane MD),团队 B(Brown, Bob MD、Green, Ann MD、White, Mary MD),您可以将所有团队添加到 2 列中,一列用于 PCP,第二列用于团队名称(A、B、C 和 D),使用 Vlookup 查找每个渲染和 PCP 的团队名称,并将其与 If 进行比较,如果是相同的团队,则写为 YES,否则为“”为空。
=IF(VLOOKUP("*"&A2&"*",$F$2:$G$7,2,FALSE)=VLOOKUP(B2,$F$2:$G$7,2,FALSE),"YES","")
=if(vlookup("*"&@Rendering&"*",PCP:Team,2,False)=vlookup(@PCP,PCP:Team,2,False),"YES","")
您的数据在 A1:B7 中作为您的第二个表格(渲染、PCP、已查看...)
F2:G7 是 2 列的数组(PCP:团队)
2 在 Vlookup 中读取第二列团队名称
False 以获得精确结果