查找具有给定值的上一行

查找具有给定值的上一行

假设我有一张包含三列的表格(顺序很重要且不能更改),行按 A 排序:

   A                B            C
      date              ID     last_date
10/05/2015        29A06E95     
10/08/2015        E5A884C4
10/12/2015        D24F4975
10/12/2015        D24F4976
10/21/2015        29A06E95

对于任何行,如果 ID 也显示在当前行上方的任何行中,我想用最近的日期填充 C 列(或者,由于行按 A 排序,因此使用上一行具有相同 ID 的日期值)。例如,这里的结果将如下所示:

   A                B            C
      date              ID      prev_date
10/05/2015        29A06E95        <blank>
10/08/2015        E5A884C4        <blank>
10/12/2015        29A06E95     10/05/2015
10/12/2015        D24F4976        <blank>
10/21/2015        29A06E95     10/12/2015

我该怎么做呢(我无法使用 MATCH 或 VLOOKUP,因为前者找到第一个匹配项而后者想要第一列中的搜索值)?

另外,我已经看到了使用数组公式的解决方案,但是这些解决方案似乎在数据表上下文中不起作用。

答案1

这从 Excel 2007 开始有效。选择C3并将以下公式放入其中:

=IFERROR(INDIRECT("A"&MAX(ROW(B$2:B2)*(B$2:B2=B3))),"")

ctrl通过+ shift+确认公式enter

拖动(或复制)至需要的位置。

答案2

您不能直接创建第二张表,将列和日期反转吗?因为这样解决方案就是一个简单的 vlookup。

答案3

我认为应该这样做:

=IFERROR(IF(A2=INDEX(MIN($A$2:$A$6),MATCH(B2,$B$2:$B$6,0)),"",INDEX(MIN($A$2:$A$6),MATCH(B2,$B$2:$B$6,0))),"")

将其放在 C2 中,根据需要编辑范围,作为数组输入(带有CTRL+SHIFT+ENTER)并向下拖动。

编辑:好吧没关系,显然数组不起作用?您能解释一下“表格上下文”是什么意思吗?据我所知,数组公式应该仍然适用于表格,不是吗?

相关内容