Excel INDEX函数搭配SEQUENCE引用行时丢失列数据问题咨询
问题原因
这是Excel INDEX 函数的数组参数隐式匹配规则导致的,并非列引用丢失:
- 当
INDEX的行、列参数为单值时,省略某一维度参数,Excel会识别为「返回该维度下的全部内容」:=INDEX($A$1:$B$3,,)行列均省略,返回整个二维区域=INDEX($A$1:$B$3,1,)行参数为单值1、列参数省略,返回第1行的全部两列内容
- 当行参数为数组(你使用的
SEQUENCE(2)返回的是纵向数组{1;2})时,Excel的隐式交集机制会触发:省略的列参数不会再被识别为「返回全部列」,而是默认取1作为列参数值,相当于实际执行了=INDEX($A$1:$B$3,{1;2},1),因此仅返回前两行第一列的数据。
解决方案
如果需要返回指定行的全部列,需要显式指定列参数为对应所有列的数组:
=INDEX($A$1:$B$3,SEQUENCE(2),SEQUENCE(,COLUMNS($A$1:$B$3)))
这里SEQUENCE(,COLUMNS($A$1:$B$3))会生成和原区域列数匹配的横向数组{1,2},和纵向行数组完成二维匹配,即可正确返回前2行2列的完整数据。
内容的提问来源于stack exchange,提问作者P.b
相关产品推荐
相关产品推荐

