【发布时间】:2017-06-26 09:43:49
【问题描述】:
我在 Microsoft Excel 中应用 MATCH 函数时遇到问题。
我已经习惯了使用INDEX-MATCH 组合并且以前从未遇到过这样的问题。
问题是MATCH 函数返回的行号在查找数组之外。
输入数据可能看起来有点复杂:
-
A列包含以 10 分钟为间隔的日期时间(例如:08.03.2016 00:00、08.03.2016 00:10、08.03.2016 00:20、dd.mm.yyyy hh:mm)。 -
B列包含查找数组,由与每个日期时间相关的不同值集组成。
列表很长,B 列不是唯一的结果值列,这也是我创建一些命名范围的原因。
有问题的函数是:
=MATCH(E37;INDEX(MainData;MATCH(E18+E19;DateSelector;0);COLUMN(hex1_cur)):INDEX(MainData;MATCH(E21+E20;DateSelector;0);COLUMN(hex1_cur));1)
命名范围在哪里:
-
MainData= 所有日期时间和结果单元格,大约为A4:D2000。 -
DateSelector= 日期时间单元格(动态数组,确认A列中的单元格数量)。 -
hex1_cur= 结果列的标识符,在本例中指示列B。
E18+E19 形成评估期的开始日期时间,E21+E20 标记结束点。
E37 具有查找值,如您所见,我使用 match_type 1,因为我想找到小于或等于我的查找值的最大值。
为什么该功能在屏幕截图的第一个评估期有效(公式在D38),但在下一个评估期(E38)不再有效?
请注意,主 MATCH 搜索的查找数组部分中的 INDEX-MATCH 数组工作正常,因此故障不应该在我的命名范围内。
我在此工作表中也将这个完全相同的结构用于其他目的,到目前为止它是正确的。
那么我的公式中的主 MATCH 函数如何返回 INDEX-MATCH-restricted 查找数组之外的行号?
在这个测试用例中,INDEX-MATCH 查找数组会生成从行187 到行309 的准确位置结果,但结果行号是39,如E38 中的图片所示。
相反,D38 公式的结果行61 准确地位于其自己的INDEX-MATCH 定义的查找数组中:
对于不清楚的解释,我深表歉意。请询问您是否没有正确理解情况。
【问题讨论】:
标签: arrays excel excel-formula match excel-match