Excel:从单独的查找列表中检查单元格中的文本,并返回查找列表中同一行但不同列的文本

问题描述 投票:0回答:1

我希望通过鸟类研究获得最后一点帮助。 我想在患者的诊断列表中搜索特定的诊断(文本线程),然后返回与该诊断相关的身体系统。

在下面的示例中,A、B、C 列是查找列表。 D 列是患者编号。 E 列是搜索列表。 F 列和 G 列是所需的输出列表。

在此示例中,第一位患者 (D2,E2) 被诊断患有心肌纤维化和肺部休克。 从“所有诊断”列表中,我们可以找到这两个诊断,并看到“纤维化、心肌”(A3) 影响心血管系统 (CARDIO) (B3=Y)。 因此,期望的输出是第一位患者的心血管系统受到影响,Y (F2=Y)。 第一个患者(D2,E2)也出现肺部休克。 肺部休克 (A2) 不影响心脏系统 (B2=空白),但会影响呼吸系统 (RESP) (C2=Y)。 因此,第一个患者的呼吸系统的输出也会受到影响,Y (G2=Y)。

对于第二名患者 (D3,E3),所需输出为 G3=Y(RESP 受影响),但 F3=空白(CARDIO 不受影响)。对于第三位患者(D4、E4),CARDIO 或 RESP 系统均不受影响,因此所需的输出是 F4=空白且 G4=空白

所有诊断列表 有氧运动 响应 PT# 患者的诊断(ES) 有氧运动 响应
肺部休克 1 纤维化、心肌;肺部休克
纤维化,心肌 2 肺部血栓
肺部血栓 3 脑部水肿

我希望我已经充分解释了我的困境,并且感谢所有帮助!

劳伦。

我尝试了一些简单的 SEARCH 和 XLOOKUP 和 (IFERROR(INDEX 公式,但我似乎找不到从查找列表中的不同列返回文本的方法。

excel excel-formula
1个回答
0
投票

您需要对 CARDIO 列(F 列)使用功能组合:

=IF(SUMPRODUCT(--ISNUMBER(SEARCH(A$2:A$4,E2)))>0,XLOOKUP(TRUE,ISNUMBER(SEARCH(A$2:A$4,E2)),B$2:B$4,""),"")

对于 RESP 列(G 列):

=IF(SUMPRODUCT(--ISNUMBER(SEARCH(A$2:A$4,E2)))>0,XLOOKUP(TRUE,ISNUMBER(SEARCH(A$2:A$4,E2)),C$2:C$4,""),"")

在 F2 中输入第一个公式,在 G2 中输入第二个公式,并将其复制给所有患者。

© www.soinside.com 2019 - 2024. All rights reserved.