【发布时间】:2016-10-19 08:26:34
【问题描述】:
我正在尝试做一个足够简单的任务:找到数组中与某个值匹配的最后一个单元格的索引。
我正在使用 MATCH-INDEX 函数组合,结果不正确、不一致。我无法弄清楚问题所在。
在这个例子中,我使用了一个值为 1 或 -1 的数组,并试图找到数组中最后一个 1 的索引。
我的理解是(并使用评估公式工具确认),INDEX(A1:F1=1,0) 应该返回一个数组
{FALSE,TRUE,FALSE,TRUE,FALSE,FALSE}
为什么 MATCH(TRUE,...) 在输入这个索引数组时没有给出 4 的结果? MATCH 在数组中向后工作,应该返回最后一个匹配项的索引,即第 4 个位置的 TRUE 值。
但是这里的代码给出的结果是 6。
更糟糕的是,如果我使用相同的代码,但改变馈入 INDEX 的数组,结果会不一致。当我将数组值更改为 1 或 -1 时,有时公式结果会发生变化,有时不会,我不知道为什么。
下面,仅更改第 3 个数组值会将公式的结果从 4 更改为 6。这是怎么回事?!
【问题讨论】:
-
Match 有第三个参数
match_type,如果该参数为 1 或省略,则:“MATCH 找到小于或等于lookup_value 的最大值。lookup_array 参数中的值必须按升序排列,例如:...-2、-1、0、1、2、...、A-Z、FALSE、TRUE。" -
@AxelRichter 如果是这样的话,那么我似乎无法使用 MATCH 来完成我想要做的事情。你能建议一种方法让我搜索这个数组并找到 1 或 -1 的最后一个实例吗?或者,如果字符串搜索更容易,我可以将数字更改为“是”和“否”。
标签: excel excel-formula excel-match