我在下面有一个Excel查询,我试图从当前单元格中获取前一个第n次出现的单元格的值。
基本上我正在努力获得当天最后一周的价值, 从下表可以看出,我希望上周同一天销售分支机构。
通过搜索能够获得第N次出现,但不是基于当前单元格的匹配和前一次出现。
答案 0 :(得分:0)
您可以将Index()
和Match()
用于此目的。
=IFERROR(INDEX(A:D, MATCH(B1-7,B:B),4),"")
将此公式放在E1
中并向下拖动。显然,E列中的前7行将是空白的,因为没有任何内容可以匹配(因此IFERROR()
部分的原因。
在回应OP's comment时,我没有看到有两套标准。您可以使用公式数组来执行您需要的操作。
警告:建议您不要包含整个列,如下面的公式所示。这会降低性能 - 尤其是在计算设置为自动时。 您应该包含覆盖所有数据的列的重要部分,而不是整个列(即:代替
$A:$D
,您可以使用$A1:$D500
)
在 A1 中输入以下公式,但请勿按Enter键:
=IFERROR(INDEX($A:$D, MATCH(1,($B:$B=B1-7)*($C:$C=C1),0),4),"")
您的光标仍应在公式栏中闪烁。现在同时按 Ctrl Shift Enter 。
如果操作正确,则栏中的公式现在应位于这些括号之间:{}
。
这是最终结果应该是这样的:
{=IFERROR(INDEX($A:$D, MATCH(1,($B:$B=B1-7)*($C:$C=C1),0),4),"")}
您不能“手动”输入括号,必须使用提供的键组合!!
现在,您可以根据需要向下拖动