Excel:搜索字符串,同时排除连续一组单元格中的其他字符串

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

我希望得到帮助。我正在对一大组病例进行兽医病理学研究。我想分别检查一行上的一组单元格是否包含字符串。在大多数情况下,它都可以工作,但在许多行中,它没有拾取应有的字符串。我尝试过不同的公式都没有效果。

作为示例,我使用

=IF((COUNT(SEARCH({"fat atrophy,""inanition","serous atrophy of fat","negative energy balance","emaciation"},$E:$3))>0),"Y","N")
来包含营养疾病的所有代码字
检查组中的每个单元格是否存在数组中的一个或多个
Check each cell in group for presence of one or more in array

为了更上一层楼,我还希望能够添加排除标准。在上面的示例中,我想排除具有特定字符串的细胞(例如,我想要两列,一列表示“肉芽肿(未提及细菌)”和“肉芽肿(提及细菌)”。B6会放在后者中,所以我想在第一栏中排除“细菌”的提及。

我确实使用 CTRL-SHIFT-ENTER 输入数组公式,但这似乎没有帮助。还有另一个公式可以实现我想要的吗?我尝试过其他几个。或者我需要为此进行特殊编码吗?

谢谢, 劳伦.

arrays excel search excel-formula
1个回答
0
投票

如果您有 Microsoft 365,您可以尝试以下操作:

为您的列表定义表格,以便更轻松地在公式中管理和使用(在空白区域或新工作表中创建这些表格,并在它们之间有一个空列)

包含_列表1包含_列表1排除_列表2脂肪萎缩缺乏活力浆液性脂肪萎缩能量负平衡消瘦
*granuloma*

*bacteria*

*
 
匹配包含该术语的单元格

定义名称使公式易于管理

姓名参考数据区在列表中is_in_exclusion_list2is_in_inclusion_list1is_in_inclusion_list2是_否
=Sheet1!$D$3:$I$12 (to match all the cells with data)

=LAMRBDA(array,list,SUM(COUNTIF(array,list)))

=BYROW(Data_area, LAMBDA(row,is_in_list(row,Exclusion_list2)))

=BYROW(Data_area, LAMBDA(row,is_in_list(row,Inclusion_list1)))

=BYROW(Data_area, LAMBDA(row,is_in_list(row,Inclusion_list2)))

=LAMBDA(if_true,IF(if_true,"Y","N"))

既然我们已经定义了

Data_area

,我们就可以使用
动态数组公式来获取你的详细信息(首先清除NUTRITIONAL
中的内容);在第一行输入以下内容:

营养肉芽肿(未提及细菌)肉芽肿(提到细菌)=yes_no(is_in_inclusion_list1)=yes_no(is_in_inclusion_list2*(--NOT(is_in_exclusion_list2)))=yes_no(is_in_inclusion_list2*is_in_exclusion_list2)横纹肌溶解症消瘦
这是使用您的示例的结果:

营养肉芽肿(未提及细菌)肉芽肿(提到细菌)是NN横纹肌溶解症消瘦安乐死NNN外伤卵巢卵泡破裂肺出血肠道线虫病NNN头部坏死性骨髓炎肺休克缺氧是NN震惊脂肪萎缩真菌性脑室炎隐孢子虫病肠系膜炎缺氧NN是细菌性口腔肉芽肿NNN血液污染细胞学NNN明显的含铁血黄素沉积肝脏是NN真菌性脑室炎肺血栓肺休克多灶性坏死性肝炎缺乏活力是NN系统性淋巴结节增生肾炎肠炎胆道增生和门脉性肝炎大脑血管充血脂肪萎缩是NN肺休克缺乏活力小肠结肠炎门静脉性肝炎心肌炎
© www.soinside.com 2019 - 2024. All rights reserved.