Vlookup方程

时间:2019-06-05 00:07:58

标签: excel vba excel-formula

如果在col1中有一个日期,在sheet1中的col2中有一个名称,是否可以使用vlookup在sheet2中搜索该名称,并且如果sheet2中的名称具有多个日期,则返回唯一的第一个大日期?

1 个答案:

答案 0 :(得分:0)

您可以将vlookup嵌套在if(countif内,以便仅在满足条件时进行查找。无论您要查找什么内容,都必须在日期的左侧栏中。您还需要具有列表日期按降序排列。

以下示例中的公式为:IF(COUNTIF($A$2:$A$6,D2)>1,VLOOKUP(D2,$A$2:$B$6,2,0),"")

公式说明: 计算D2的值出现在A2:A6中的时间。如果出现次数超过1次,请在右侧返回相邻单元格的值,否则返回空白。

enter image description here

版本

具有近似匹配项的基本vlookup将对此起作用。当匹配类型设置为近似时,它将返回下一个更高的结果。

=VLOOKUP(A1,E1:F6,2,1)

enter image description here

版本2

为了省略等于或小于B列中的值的值,您将需要使用索引/匹配数组。在下方输入公式,然后在光标位于单元格中时,按Ctrl + Shift + Enter。然后,Excel将在公式周围添加花括号,并将其计算为数组并返回答案。

=IFNA(INDEX($F$1:$F$6,MATCH(1, ($E$1:$E$6=A1)*($F$1:$F$6>B1),0)),"")

没有将IFNA包裹在“索引/匹配”公式周围的情况,如果没有匹配的日期更大,Excel将返回#N / A错误。但是,如果您未正确完成control + shift + enter,它也会返回#N / A错误。

我建议您首先输入以下公式,其中不包括IFNA包装器,并确认返回了一些匹配项。如果您的商品没有任何匹配项,则将返回#N / A,但是您会知道该公式可以正常工作。然后将公式更改为不包含IFNA包装纸的公式,以便返回空白代替#N / A。

=INDEX($F$1:$F$6,MATCH(1, ($E$1:$E$6=A5)*($F$1:$F$6>B5),0))

完成第一个操作后,您可以双击单元格的右下角以填充其余的列。

enter image description here