假设我有一张包含三列的表格(顺序很重要且不能更改),行按 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)并向下拖动。
编辑:好吧没关系,显然数组不起作用?您能解释一下“表格上下文”是什么意思吗?据我所知,数组公式应该仍然适用于表格,不是吗?