在一个列中查找几个关键字(如果找到),则返回4列

时间:2019-07-18 13:55:54

标签: excel excel-formula formula

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

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

我认为类似的方法可能有用-

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

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

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

Smaller database example

Larger database example

1 个答案:

答案 0 :(得分:0)

正如您所问的一样,@ Scott Craner的评论代表已被关闭

答案

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