INDEX / MATCH - 日期范围内的匹配数组

INDEX / MATCH - 日期范围内的匹配数组

我正在尝试创建一个Name匹配数组来填充I具有以下条件的列:

  • 列在和的G范围内B2D2

类似的答案使用了这种索引/匹配方法:

=INDEX($F$2:$F$5,MATCH(1,(($G$2:$G$5>=$B$2)*($G$2:$G$5<=$D$2)),0))

但是这只返回一个匹配项:Test D,它是数组中的最后一个匹配项。

如何在 列 中I为每个创建一个匹配的运行列表,Name其日期在和G范围内?B2D2

在此处输入图片描述

答案1

首先,看起来您保存日期的单元格格式为文本。其中有 31/04/2019。

因此,请确保您的单元格正确格式化为日期,以便 Excel 将其解释为日期,从而可以进行相关的数学计算。

此解决方案认为您的列表有一个标题行,如上所示,并且您从第 2 行开始数据。否则,需要基于 ROW() 函数对 Index 进行轻微操作。

在单元格 I2 中输入以下公式,然后按公式栏中的CTRL+ SHIFT+创建数组公式。该公式现在应括在花括号中,以表明它是一个数组公式。ENTER

=IFERROR(INDEX($F$2:$F$5,SMALL(IF($G$2:$G$5>=$B$2,IF($G$2:$G$5<=$D$2,ROW($F$2:$F$5)-ROW($F$1),9^99),9^99),ROW()-ROW($F$1))),"")

现在将其沿着列的长度向下拖动,直到出现空白。所有在指定日期范围内的适用名称都应列在该列的连续单元格中。

公式使用 INDEX,但其内部会按顺序生成行号数组,只要数据适用,则返回大数字。与 SMALL 函数结合,INDEX 会仅提取连续单元格中适用的行。

在此处输入图片描述

相关内容