柯克在Excel中有一个大数据表。每行都有车辆编号,日期(该表按此列排序),开始里程和结束里程。他想在数据表中向后搜索,以找到与同一行号相同的结束里程,以用作当前行中的开始里程-与VLOOKUP类似,但从下到上而不是从上到下。

您可以通过几种方法来使用公式。对于此示例,假设车辆编号在A列中,B列中的日期,C列中的起始里程,D列中的结束里程。您需要一个公式,您可以在C列中查找当前车辆的最近行驶里程。以下公式提供了一种方法:您应该将其放在单元格C3中:

=LOOKUP(2,1/FIND(A3,A$2:A2,1),D$2:D2)

您可以根据需要将公式沿列向下复制。如果A列中的车辆编号未早出现在数据表中,则该公式将返回诸如#VALUE!之类的错误。或#N / A。在这种情况下,您可以轻松键入要用于车辆的起始里程的公式。

这是另一种公式化方法,但是应将其作为数组公式输入(通过按Ctrl + Shift + Enter):

=IF(A3="","",MAX(IF(($A$2:A2=A3)*($D$2:D2),$D$2:D2)))

同样,将公式放在单元格C3中,并根据需要向下复制。

如果车辆没有早早出现在数据表中,则此值不会返回错误值;它将返回0值。然后,您可以在公式上键入该车辆的实际起始行驶里程。也可以使用以下数组公式:

=IF(A3="","",INDIRECT("D"&LARGE(($A$2:A3=A3)*ROW($2:3),2)))

此数组公式的区别在于,如果车辆未在数据表中更早出现,它将返回#REF!。错误。

这是两个可以在C3中使用的甚至更短的数组公式(并且再次根据需要向下复制):

=MAX((D$2:D2)*(--(A$2:A2=A3)))

=MAX(IF(A$2:A2=A3,D$2:D2))

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(11744)适用于Microsoft Excel 97、2000、2002和2003。您可以在以下位置找到用于Excel功能区界面(Excel 2007及更高版本)的本技巧的版本:

链接:/ excelribbon-Looking_Backward_through_a_Data_Table [向后看数据表]。