上一个第N次出现

时间:2018-03-03 23:42:01

标签: excel excel-formula excel-2016

我在下面有一个Excel查询,我试图从当前单元格中获取前一个第n次出现的单元格的值。

基本上我正在努力获得当天最后一周的价值, 从下表可以看出,我希望上周同一天销售分支机构。

通过搜索能够获得第N次出现,但不是基于当前单元格的匹配和前一次出现。

同一天,上周:
same day, last week

1 个答案:

答案 0 :(得分:0)

您可以将Index()Match()用于此目的。

=IFERROR(INDEX(A:D, MATCH(B1-7,B:B),4),"")

将此公式放在E1中并向下拖动。显然,E列中的前7行将是空白的,因为没有任何内容可以匹配(因此IFERROR()部分的原因。

enter image description here

在回应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),"")}
  

您不能“手动”输入括号,必须使用提供的键组合!!

现在,您可以根据需要向下拖动