具有两个条件的VLOOKUP文本

时间:2019-01-17 15:42:25

标签: excel vlookup

我正在寻找一种基于两个条件插入列的方法,如下所示。我有一个主表,每个公司一行,并且我想在其中添加一列城市名称。但是,某些公司的查询表有两行-一行代表“小”,另一行代表“大”。我只想为规模较小的公司检索城市。

enter image description here

我知道如果列的内容是数字而不是文本,则可以使用= SUMIFS来实现。但是,由于由文字组成的“城市”列,我不知道如何进行。理想情况下,我希望不需要使用辅助列的解决方案。

编辑:这只是我的数据的一个示例。我有数百行,建议重复的答案使用INDEX / MATCH,这需要我给出每种条件的确切单元格位置。在我的数据中情况并非如此。

3 个答案:

答案 0 :(得分:0)

我通常将一些解决方案用于这些任务。它们并不优雅,即本身不是按2个标准进行查找,但可以完成工作。

根据数据结构,您有以下选择:

  1. 按大小公司对查找表进行排序,大小按降序排列。此后,这很简单,因为您的大公司与小公司被隔离了。

  2. 构建一个由公司大小即CONCAT(company,size)组成的新密钥,并基于此密钥进行vlookup。

答案 1 :(得分:0)

使用VLOOKUP无法实现。使用数组公式在图片中查看我的解决方案。

Solution using array formulas

  

F2中的公式:= INDEX($ C $ 1:$ C $ 6; SUM(IF(E2 = $ A $ 2:$ A $ 6; 1)* IF($ B $ 2:$ B $ 6 =“ small”; 1 )* ROW($ C $ 2:$ C $ 6)); 1)

Ps:不要忘记使用 Ctrl + Shift + Enter 确认公式。

答案 2 :(得分:0)

根据实际情况,可以进行多列查找,但不能使用VLOOKUP。您需要使用INDEX和MATCH。由于将数组公式与布尔逻辑结合在一起,这变得相当复杂。这是一个很好的解释。

https://exceljet.net/formula/index-and-match-with-multiple-criteria

在您的示例中,假设“期望结果公司”位于第一列中。

=INDEX($F$4:$F$5,MATCH(1,(D4:D5=I4)*(E4:E5="small"),0))