如何使用INDEX MATCH的多个日期范围的标准

  • Share This
Hugh West

受日期影响的变量(如商品价格、股票、利率等)会引起一般人的恐慌,因为它们的价格取决于日期。 指数匹配 多标准日期范围可以从给定的日期范围内提取价格。

假设我们有某些产品,其价格在一定时期内是稳定的。 而我们想 指数匹配 的价格为给定的标准。

在这篇文章中,我们使用多个函数来 指数匹配 多个标准日期范围。

下载Excel工作簿

多重标准日期范围.xlsx

使用INDEX MATCH的3种简单方法来处理日期范围的多个标准

方法1:使用INDEX MATCH函数处理日期范围的多个标准

我们想提取某一产品在某一特定日期的价格。 假设我们想看某一产品在某一日期的价格。 冰淇淋 关于 02-10-22 ( 月-日-年 )。 如果给定的日期在提供的时间段之间,我们将在任何空白单元格中提取价格。

步骤。 在任何空白单元格中插入以下公式(即:。 I5 ).作为一个数组公式中的公式,按 ctrl+shift+enter 瞬间,该公式就会返回 产品 价格,如果它在给定的时间段内下跌(即:。 日期 范围),如下图所示。

=INDEX($E$5:$E$16,MATCH(1,(($B$5:$B$16=G5)*($D$5:$D$16>=H5)*($C$5:$C$16<=H5)),0))

🔄 公式解剖。

ǞǞǞ 索引 函数在一个给定的范围内找到一个给定位置的值。 在我们的例子中,我们用 匹配 诱导出的函数与 索引 职能。 匹配 函数将其结果作为一个 行数 的语法,以获取满足给定标准的条目。 索引 功能是

INDEX(array, row_num, [col_num])

在这个公式中。 E$5$E$16 指的是 阵列 争论。 内部 匹配 功能 $B$5:$B$16=G5 , $D$5:$D$16>=H5 ,以及 $C$5:$C$16<=H5 为了提供更好的识别,我们把各自的范围涂成矩形。

ǞǞǞ 匹配 函数定位一个给定值在行、列或表中的位置。 正如我们前面所说,在 匹配 部分传递的行号为 索引 函数的语法。 匹配 功能是

MATCH (lookup_value, lookup_array, [match_type])

ǞǞǞ 匹配 部分是

=MATCH(1,(($B$5:$B$16=G5)*($D$5:$D$16>=H5)*($C$5:$C$16<=H5)),0)

ǞǞǞ 匹配 部分分配给 1 作为 查找_值 , ($B$5:$B$16=G5)*($D$5:$D$16>=H5)*($C$5:$C$16<=H5) 作为 lookup_array ,以及 0 宣布 [match_type] 作为完全匹配。

使用过的 匹配 公式回报 3 因为它发现 冰淇淋 在行号中 3 .

在某些情况下,我们有多个产品要从数据集中提取它们的价格。 它看起来有点像下面的图片。

ǞǞǞ 指数匹配 综合公式的取舍 价格 否则就会产生一个 #N/A 错误,如上面的截图所描述。

阅读更多。 在Excel中基于多个标准的VBA索引匹配(3种方法)

方法2:用XLOOKUP函数处理多个标准的问题

类似于 方法一 ,我们可以用 XLOOKUP 功能(仅在 Excel 365 )到 指数匹配 多个标准日期范围。 XLOOKUP 功能是

XLOOKUP (lookup, lookup_array, return_array, [not_found], [match_mode], [search_mode] )

步骤。 在单元格中使用以下公式 I5 然后打 进入 .

=XLOOKUP(1,(H5>=$C$5:$C$16)*(H5<=$D$5:$D$16)*($B$5:$B$16=G5),$E$5:$E$16,"NotFound")

ǞǞǞ XLOOKUP 公式返回满足给定条件的被尊重的价格(即。 产品 日期 ),如上图所示。

🔄 公式解剖。

ǞǞǞ XLOOKUP 指定 1 作为其 查询 争论。 (H5>=$C$5:$C$16)*(H5<=$D$5:$D$16)*($B$5:$B$16=G5) 作为 lookup_array, $E$5:$E$16 作为 return_array 另外,该公式显示 未找到 我们用彩色的矩形表示分配的标准,如下图所示。

对于多个 产品。 你可以应用 XLOOKUP 此外,该公式还显示了 未找到 如果给定的日期标准没有在给定的日期范围内展开。

你可以添加比公式中使用的更多的标准。 为了给出简单明了的方案,我们使用了最低标准。

阅读更多。 在Excel中使用多个标准的XLOOKUP(4种简单方法)

方法3:用INDEX和AGGREGATE函数从日期范围中提取波动的价格

有些产品的价格(如原油、货币等)是非常不稳定的,它们会在几周甚至几天内波动。 我们有某种产品在一周内的价格。 我们想找到给定日期的价格。 要找到给定日期范围的价格,我们可以使用组合的 索引 砾石 函数的语法。 砾石 功能是

AGGREGATE (function_num, options, ref1, ref2)

步骤。 在任何空白单元格中键入以下公式(即:。 E8 ).

=iferror(index(c$5:c$13,aggregate(15,6, row(b$5:b$13)/) ((B$5:B$13>=F$4)*(B$5:B$13<=F$5))-ROW(B$5)+1,ROWS(E$8:E8))),"")

ǞǞǞ 第一届 某些产品的价格日期 02-15-22 02-25-22 $0.84 可能有一个 第2次 第三届 价格可用,但一开始,我们坚持以 第一届 一。

🔄 公式解剖。

在这个公式中。 =iferror(index(c$5:c$13,aggregate(15,6, row(b$5:b$13)/) ((B$5:B$13>=F$4)*(B$5:B$13<=F$5))-ROW(B$5)+1,ROWS(E$8:E8))),"") ;

AGGREGATE(15,6,ROW(B$5:B$13)/((B$5:B$13>=F$4)*(B$5:B$13<=F$5))-ROW(B$5)+1,ROWS(E$8:E8)) 部分提供行号给 索引 功能。 5加元:13加元 是指 阵列 的论点。 索引 功能。

内幕 砾石 公式。

(B$5:B$13>=F$4)*(B$5:B$13<=F$5) 返回 1 0 取决于数据集的日期是否在该范围内。

ROW(B$5:B$13)/((B$5:B$13>=F$4)*(B$5:B$13<=F$5)) 返回一个行数组,取决于是否满足日期条件。 否则,会产生错误值。

ROW(B$5:B$13)/((B$5:B$13>=F$4)*(B$5:B$13<=F$5))-ROW(B$5)+1 作为 ref1 的结果是将行号转换为索引号的数组,否则为错误值。

ROWS(E$8:E8) 作为 ref2 结果是行号,这是在你向下应用公式时获得行号的一个简单方法。

数目 15 功能_num (即。 小型 ), 6 选项 (即。 忽略错误值 ).你可以选择 功能_num 19 不同的功能和 选择 8 不同的选择。

终于到了。 AGGREGATE(15,6,ROW(B$5:B$13)/((B$5:B$13>=F$4)*(B$5:B$13<=F$5))-ROW(B$5)+1,ROWS(E$8:E8)) 通过 第1次 符合给定条件的行的最小索引号。

如果发生任何错误。 iferror(index...)," ") 忽略所有类型的错误并将其转化为空白。

➤ 拖动 填充手柄 来获取标准日期范围内的其他匹配价格。 而 误差(IFERROR 如果公式遇到任何错误,函数的结果就是空白单元格。

阅读更多。 在Excel中使用包括日期范围在内的多个标准的VLOOKUP (2种方法)

总结

在这篇文章中,我们展示了多种方法来 指数匹配 我们使用以下函数 索引 , 匹配 . XLOOKUP ,以及 砾石 希望上述方法能帮助你处理你的情况。 如果你有进一步的疑问或有什么要补充的,请发表意见。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.