如何在excel中返回用户定义函数中数组的索引?

时间:2015-07-13 18:18:59

标签: excel excel-formula

我有一个用户定义的函数(不是我的,在一个插件中),它在A列中返回一个值数组。我在B列中也有以下(数组)公式,它返回列中的所有单元格包含一些指定字符串的A:

=INDEX($A$1:$A$256,SMALL(IF(ISNUMBER(SEARCH($B$1,$A$1:$A$256)),ROW($A$1:$A$256)),ROW(2:2)))

这使用ROW()函数来获取匹配元素的行。一切正常。

但是,我想稍微清理一下我的表格,并执行以下操作:

=INDEX(UDF(),SMALL(IF(ISNUMBER(SEARCH($B$1,UDF())),ROW(UDF())),ROW(2:2)))

你会注意到我已经用我的UDF中返回的数组替换了数组'$ A $ 1:$ A $ 256'。这似乎在ROW(UDF(​​))部分中断。是否有类似的函数,它返回数组的索引,或'row'?

注意:我不想在VBA中这样做,我不能编辑UDF(它不是我的)。

编辑:

好的,我有更多的信息。如果我按照注释中的建议进行操作并评估公式,则所有评估返回值都是数组的第一个元素。这提出了一个相关的第二个问题。如何用UDF做到这一点?如果您熟悉Bloomberg,您会知道当您调用某些BDH或BDP公式(不将其称为数组公式)时,它会使用值填充范围。这是怎么发生的?!我觉得如果我知道这个问题的答案,它将帮助我理解这个特定UDF中发生的事情。

0 个答案:

没有答案