【发布时间】:2019-01-26 13:35:39
【问题描述】:
我有一个电子表格,其中 B:B 列显示超过 30k 个条目。 我正在尝试找到一种方法: - 检查这些单元格中的每一个是否作为“content1”范围内的内容 - 如果是这样,那么也检查相同的单元格是否也有来自“content2”范围的内容与第一个相邻(但范围不一定与“content1”相同,如果可能的话,不一定存在; - 理想情况下,可以添加更多范围来搜索...... 如果在 B:B 列的单元格中找到 range1 AND 2 [AND x] 的内容,则获取显示“content1”...“content2”...的第一个单元格右侧的单元格内容...并写入公式所在的位置... 可能更容易展示一个例子:
Colum B:B Range1 Range2 Range3 Rangexx Result
The quick brown fox jumps fox brown quick jumps Fast Animal
The green tree moves slowly tree green fast Green Vegetal
The brown tree moves slowly tree brown slow Brown Vegetal
The green house in the tree house green House green
Hitchhiker guide to the galaxy galaxy guide Space
结果将是:
Column B:B Column C:C
The quick brown fox jumps Fast Animal
The green tree moves slowly ""
The brown tree moves slowly Brown Vegetal
The green house in the tree House green
Hitchhiker guide to the galaxy Space
我想要实现的是使用多个标准对大量单词进行分类......
我找到(并测试了)一个公式,它允许我根据一个标准测试 B:B 列中的文本(使用数组)并返回一个类别 - 这已经很棒了...
但想知道你们的专家是否能够真正推动这一点,并且 - 使用 VBA 我们的 excel 公式 - 允许我使用多个标准进行此分类!
公式是=INDEX(result_text;MATCH(TRUE;ISNUMBER(SEARCH(search_text;B2));0))
用result_text访问的偏移量类别是B2中search_text的搜索已经成功! :)
我还发现了一个 VBA 宏,它似乎与我想要实现的目标相距不远,但我的 VBA 技能太有限而无法适应它(搜索和循环似乎已经存在):Search Multiple different string in excel VBA .. .
另外,我第一次在这里发帖 - 所以请告诉我我在写这篇文章时是否做错了什么! :)
发送! M.
https://drive.google.com/open?id=1OceFTFVz_-isGNkBXcKdIY4cxQ4vqKSf
【问题讨论】:
-
我不确定,但不会 =INDEX(result_text;MATCH(TRUE;AND(ISNUMBER(SEARCH(search_text1;B2);ISNUMBER(SEARCH(search_text2;B2)));0) ) 工作吗?
-
txs 回复我!让我试试:)
-
OK - 不起作用,因为您的公式每次应该循环遍历该范围中的每个项目时,只取两个范围中的每一个的第一个元素。我需要公式来依次查找每个元素,并检索其中包含前 2 个(或更多,如果更多)值的那个...布列斯特国际中学收费标准 国际中学伏尔泰 奥尔良国际中学收费标准
-
我已在 mt 初始帖子中添加了一个示例,以尝试阐明要实现的目标... :)
-
我目前无法访问 excel 来测试任何东西,但这样的事情应该接近正确的解决方案:=INDEX(result_text;MATCH(1;SUMPRODUCT(ISNUMBER(SEARCH(search_range1) ;B2);ISNUMBER(SEARCH(search_range2;B2)));0))。您可能需要将其作为数组公式输入,但不确定。
标签: excel vba excel-formula excel-2016