如何查找给定单元格中包含的单元格文本

How to find from which cell text is contained in given cell

提问人:Kris_Toor 提问时间:5/19/2022 最后编辑:Kris_Toor 更新时间:6/22/2022 访问量:58

问:

因此,我有一个公式来显示单元格是否包含列表中的文本:

=SUMPRODUCT(--ISNUMBER(SEARCH("List of companies in Worksheet A",A1)))>0

它工作正常,但我需要进一步扩展这个公式。

我有两个数据工作表:

W1 是公司列表,显示给定国家/地区给定产品的首选公司,

W2 是一个文件列表,显示哪家公司在哪个国家/地区使用了哪个产品。

我需要公式来显示对于给定文件,公司是否是给定国家/地区和产品的首选。

上面的公式解决了公司的问题,因为它检查了 W2 中提到的公司是否出现在 W1 中,现在我需要再添加两个条件来检查国家和产品。

目前的公式是这样的:

=IF(AND(SUMPRODUCT(--ISNUMBER(SEARCH("List of companies in Worksheet A",A1)))>0,"Preferred", "Non Preferred")

如何反转公式,以便它将在哪个单元格中显示 W1 中找到的值,以便我可以使用简单的 VLOOKUP 和 = 公式和条件,例如:

=IF(AND(SUMPRODUCT(--ISNUMBER(SEARCH("List of companies in Worksheet A",A1)))>0,B1=Vlookup(SUMPRODUCT(--ISNUMBER(SEARCH("List of companies in Worksheet A",A1))>0,Table in W1,1,"Preferred", "Non Preferred")

我真的被困住了,请帮忙。

工作表 A 的示例

公司名称 公司代码 国家
阿卜杜勒 12355 德国
AAA级 23322 奥地利
ASC公司 432 法国
ASC公司 123 美国
ASCE公司 1234 波兰

工作表 B 的示例

公司名称 国家
阿卜杜勒 - 111 德国
AAA - 234 奥地利
ASC - 432型 法国
ASC - 123型 英国
ASCE - 1234年 罗马尼亚

如果我使用:

=SUMPRODUCT(--ISNUMBER(SEARCH("List of companies in Worksheet A",A1)))>0

它将突出显示底部的 3 行,但是我需要应用第二个条件,因此它只会突出显示第 3 行,即法国的那行。

Excel 搜索 匹配 vlookup

评论

0赞 Foxfire And Burns And Burns 5/19/2022
您可以发布数据示例和预期输出吗?
0赞 Solar Mike 5/19/2022
带有 match() 的 index() 可能会起作用。
0赞 Kris_Toor 5/23/2022
您好@SolarMike我添加了一个具有预期结果的数据示例。你能帮我写公式的第二部分吗,我实际上厌倦了使用索引和匹配公式,但它不起作用。提前非常感谢!
0赞 Foxfire And Burns And Burns 5/24/2022
@Kris_Toor 看看你的示例,你只想根据公司名称从工作表 A 中获取工作表 B 中的国家/地区?在这种情况下,不应该代替?与(它应该代替asc -123USAUKasce - 1234PolandRomania)
0赞 Kris_Toor 5/27/2022
@Foxfire And Burns And Burns 感谢您的留言。实际上不是,正如你所看到的,我在这里谈论的是突出显示,也就是说,这个公式是用于条件格式的(对不起,我可能不清楚)。所以我需要一个公式,即 1.将检查公司是否在工作表 A 的列表中,然后是 2。如果存在,如果国家/地区匹配。该公式不是从一个电子表格获取任何信息到另一个电子表格,而是比较它们。

答:

0赞 Foxfire And Burns And Burns 6/22/2022 #1

突出显示非常困难,因为 CF 规则不允许使用对当前工作表之外的其他工作表的引用,也不允许使用数组公式。但是,您可以使用帮助程序列来获取所需的输出,然后根据该输出突出显示:

工作表 A

enter image description here

工作表 B

enter image description here

Notice 是唯一突出显示的值,因为是唯一符合模式的国家/地区FranceCompany Name - Company&CodeCountry

C列中的公式(数组公式,因此您必须按++引入它:CTRLENTERSHIFT

={ISNUMBER(MATCH(A2&B2;'Worksheet A'!$A$2:$A$6&" - "&'Worksheet A'!$B$2:$B$6&'Worksheet A'!$C$2:$C$6;0))}

应用于 B 列的突出显示的 CR 规则基于以下公式:

=C2=TRUE()

更新:如果你真的需要跳过帮助程序列,你可能会从函数 INDIRECT 中受益:

间接 功能

但是,如果你的数据集很大,我不推荐这个解决方案,因为它可能真的会给你的文件多收费用,因为INDIRECT是一个易失性函数:

间接 – Excel 最邪恶的 功能

此外,如果您的数据集是固定的(我的意思是它总是在相同的地址中,例如 A2:C6 或 A2:A1000,无论但始终相同),您可以使用它,但它一直在变化,它会减慢您的文件速度。

无论如何,您可以根据以下公式制定 CF 规则:

enter image description here

=ISNUMBER(MATCH(A2&B2;INDIRECT("'Worksheet A'!$A$2:$A$6")&" - "&INDIRECT("'Worksheet A'!$B$2:$B$6")&INDIRECT("'Worksheet A'!$C$2:$C$6");0))