【问题标题】:Excel - How to find output from two separate look ups and between valuesExcel - 如何从两个单独的查找和值之间查找输出
【发布时间】:2019-04-22 10:34:40
【问题描述】:
我正在尝试根据第一列(A1 和 B2)中的值的组合以及介于最小和最大条带之间的另一个数字来查找输出(以下示例中的条带)。
我很难解释,但举个例子,假设第一列(A1 和 B2)是汽车品牌。对于 A1 且价格为 2 的汽车品牌,我希望输出为 AAA 级。对于 B2 且价格为 9 的汽车品牌,我预计输出将是 CCC 条带。
如何使用 Excel 公式填充输出,我已经研究过 Index-Match 函数,但我目前很难过,因为条带可能相同,但它们之间的值因汽车品牌而异.
【问题讨论】:
标签:
excel
indexing
match
vlookup
【解决方案1】:
没有数组公式也可以进行索引/匹配。将公式与屏幕截图进行比较。
=INDEX(INDEX(D:D,MATCH($H$2,A:A,0)):INDEX(D:D,MATCH($H$2,A:A,1)),MATCH($H$3,INDEX(B:B,MATCH($H$2,A:A,0)):INDEX(B:B,MATCH($H$2,A:A,1)),1))
【解决方案2】:
使用以下数组公式。数组公式意味着您必须在单元格中输入公式后按CTRL+SHIFT+ENTER。
=INDEX(D2:D9,MIN(IF(A2:A9=F2,IF(B2:B9<=G2,IF(C2:C9>=G2,ROW(D2:D9)-ROW(D1))))))
按 CTRL+SHIFT+ENTER 计算公式,因为它是一个数组公式。
如果你更喜欢非数组公式,那么你可以使用这个公式。
=INDEX(D2:D9,AGGREGATE(15,6,(ROW(D2:D9)-ROW(D1))/((A2:A9=F2)*(B2:B9<=G2)*(C2:C9>=G2)),1))
【解决方案3】:
您需要执行所谓的双重 VLOOKUP:VLOOKUP with two criteria?
那里有几个选项,请注意 INDEX(MATCH()) 方法使用数组公式。
以下是公式的示例:
=INDEX(D2:D9,SUMPRODUCT(MATCH(1,(A2:A9=[car])*(B2:B9<=[price])*(C2:C9>[price]),0)))
只需将[car] 和[price] 替换为单元格引用(或硬编码值)即可。