之前的文章中,我们主要解了如何让公式中有一部分能够在该公式向下复制到连续的行时,生成一系列连续的整数。使用的是ROW函数:ROW()或者ROW(A1)、ROWS($1:1)或者ROWS(A$1:A1),充当SMALL函数的参数k的值,让我们能够提取数组中第k小的值。

然而,有时候公式中希望能够生成一个连续整数的中间数组,生成了一个由连续整数组成的数组,作为MID函数的参数start_num,用来指定在获取的值的起始位置。在该篇文章中,我们给出了生成这样的数组的两个公式,这也是在这种情形下我们常用的公式形式,我将其在这里列举出来,作个小结,供以后参考。

第一种形式:

ROW(INDIRECT(“1:”& LEN(A1)))

其中,引用的单元格A1中放置着要处理的数据,LEN(A1)获取数据长度,传递给INDIRECT函数生成间接引用,最终由ROW函数生成由1至单元格A1中数据长度值的连续整数值组成的数组。例如,如果LEN(A1)=5,则上述形式生成的数组为:

{1;2;3;4;5}

第二种形式:

ROW(OFFSET($A$1,,,LEN(A1)))

其中,引用的单元格A1的作用与上面相同,传递给OFFSET函数后,生成起始于单元格A1,由列A中连续的LEN(A1)个单元格组成的单元格区域。例如,如果LEN(A1)=5,那么OFFSET函数生成的单元格区域为:A1:A5,代入ROW函数,生成数组:

{1;2;3;4;5}

发表回复