Table of contents
受日期影响的变量(如商品价格、股票、利率等)会引起一般人的恐慌,因为它们的价格取决于日期。 指数匹配 多标准日期范围可以从给定的日期范围内提取价格。
假设我们有某些产品,其价格在一定时期内是稳定的。 而我们想 指数匹配 的价格为给定的标准。
在这篇文章中,我们使用多个函数来 指数匹配 多个标准日期范围。
下载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 ,以及 砾石 希望上述方法能帮助你处理你的情况。 如果你有进一步的疑问或有什么要补充的,请发表意见。