在一列中查找几个关键字,如果找到,return 4列

Lookup several keywords in a column, if found, return 4 columns

我有两个数据库,一个有 11,000 个条目,另一个我缩小到大约 600 个。它们是包含公司名称和该公司人员联系信息的数据库。所以column A - Company Name. Column B - last name, column C - first name, column D - position, and column E - email address。我想做的是搜索 D 列 - 几个关键字的位置 - 恶习、利益、资源,如果找到,return 四列 - 姓氏、名字、职位和电子邮件地址。因此,对于公司名称 X,我们可能有 10 个联系人姓名,并且一对夫妇可能拥有属于这些关键字的人员的联系信息。我想 return 那些特定的人。

我已经设法在两个列表之间规范化了公司名称之间的格式,使用蛮力和一些​​索引匹配公式(这很有趣!),所以它们是一样的,我可能会这样做比如在每个唯一的公司名称后添加 5 或 6 行,以容纳我们可能拥有的每个公司的潜在联系人数量,但我不知道如何 return 多个特定单元格进行关键字搜索。

我认为这样的方法可能有效 -

=index(columntoreturn, small(if(isnumber(search(keywords, columntosearch)), match(row(column), row(column))), rows(array)))

但这只会 return 一个单独的单元格,而不是我需要的四个单元格。

这是我正在使用的两个数据库的示例。

正如您所问,代表@Scott Craner

回答的评论已经关闭

回答

正如我在第一条评论中所说,高级过滤器就是为此而设计的。您可以放置​​代码以根据页面上更改值的某些单元格自动执行此操作。公式并不理想,因为它要求它是数组公式,数组公式越多,数据集越大,计算时间就会越长。请参阅 here for an example 了解如何使用 vba 设置高级过滤器。