从Excel中的INDEX函数返回数组?

时间:2018-06-19 13:49:10

标签: excel excel-formula quantlib

我正在尝试在Excel中以数组格式使用INDEX,但是遇到了问题。

从以下问题开始:Return array from INDEX function?,似乎“ INDEX(如VLOOKUP)不返回值数组(在某些复杂情况下除外)”

所以我想知道有什么替代方案。

我正在尝试这样做:

=qlTimeSeries( ,
               INDEX({39618,39619,39638,39639},{2,3,4}),
               INDEX({18,19,38,39},{2,3,4})
               )

并且Index不返回数组。

是否有其他想法如何通过INDEX({39618,39619,39638,39639},{2,3,4})得到我想要得到的结果? 即从{39618,39619,39638,39639}退回{39619,39638,39639}?

注意:我的电子表格实际上不是使用INDEX({39618,39619,39638,39639},{2,3,4}),而是使用动态日期数组,目的是删除数组的第一个元素{ 39618,39619,39638,39639},这就是为什么我使用INDEX的原因。

编辑:寻找避免使用VBA的解决方案

1 个答案:

答案 0 :(得分:4)

尝试以下数组公式:

= INDEX({39618,39619,39638,39639},N(IF({1},{2,3,4})))

这将返回您想要的内容:{39619,39638,39639}

请注意,这是一个数组公式,因此在键入此公式后,您必须按键盘上的 Ctrl + Shift + Enter ,而不是按 Enter

(还要注意,它适用于动态范围,而不仅仅是硬编码数组。)