通过数据表向后看(Microsoft Excel)
柯克在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培训的来源。
本技巧(11745)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本:
链接:/ excel-Looking_Backward_through_a_Data_Table [向后看数据表]。