绝招:EXCEL隔列取数求和的2个非常厉害的组合!

deer332025-06-12技术文章37

隔列取数也不是新鲜的话题了,但是在新函数及动态数组助力下,又有怎样的不同实现方式呢?一、VLOOKUP+SEQUENCE图1右上方是某产品的检测数据,每次检测均有抽样、合格、优秀3个数据。

需要对检测数据进行汇总分析。

  1. 分别提取以编号COO1六次检测明细为例

G24抽样=VLOOKUP(A17,$A$3:$S$12,SEQUENCE(,6,2,3),0)解析:SEQUENCE(,6,2,3)表示1(1可省略不写)行6列,2开始,步长值为3的等差数列{2,5,8,11,14,17}。

用于VLOOKUP的第3个参数,列数越多,用SEQUENCE的优势就越明显。=VLOOKUP(A17,$A$3:$S$12,{2,5,8,11,14,17},0)表示依次提取A17即COO1对应的第2、5、8、11、14、17个值,也就是抽样数据。由于新版本有了动态数组功能,像这样用数组作为函数参数的很多,大家可以自己尝试。同理,合格数据、优秀数据的公式只需要改一下SEQUENCE(,6,2,3)的第3个参数就可以了。G25合格=VLOOKUP(A17,$A$3:$S$12,SEQUENCE(,6,3,3),0)G26优秀=VLOOKUP(A17,$A$3:$S$12,SEQUENCE(,6,4,3),0)2.再看图1左侧检测合计

C001抽样数据求为例,在G24抽样公式=VLOOKUP(A17,$A$3:$S$12,SEQUENCE(,6,2,3),0)基础上嵌套SUM函数就可以了。B17抽样求和=SUM(VLOOKUP(A17,$A$3:$S$12,SEQUENCE(,6,2,3),0))也就是实现了隔列求和。

二、CHOOSECOLS+SEQUENCE

以提取C001抽样数据为例:G24抽样=CHOOSECOLS(A3:S3,SEQUENCE(,6,2,3))

解析:SEQUENCE(,6,2,3)计算结果为{2,5,8,11,14,17},CHOOSECOLS(A3:S3,{2,5,8,11,14,17})表示在A3:S3范围内,取第{2,5,8,11,14,17}列的数据,即COO1的抽样数据。这样,CHOOSECOLS(A3:S12,SEQUENCE(,6,2,3))也就表示在A3:S12提取全部产品对应的抽样数据。

这时,逐行计算函数BYROW就可以用起来了:
抽样=BYROW(CHOOSECOLS(A3:S12,SEQUENCE(,6,2,3)),SUM)改变SEQUENCE的第3个参数,就得到:
合格=BYROW(CHOOSECOLS(A3:S12,SEQUENCE(,6,3,3)),SUM)优秀=BYROW(CHOOSECOLS(A3:S12,SEQUENCE(,6,4,3)),SUM)计算结果见图2左侧:

这里用了CHOOSECOLS+SEQUENCE,再加BYROW函数进行逐行计算,同样也达到了隔列取数并求和的目的。

小结:

第一种方法VLOOKUP+SEQUENCE的优点在于产品名称的顺序可以不必保持一致。第二种方法CHOOSECOLS+SEQUENCE+BYROW的方法产品名称的顺序必须保持一致,如果要顺序不一致就需要再嵌套其他函数,公式会变得更为复杂。

最大的区别在于:第一种方法计算的结果是一个独立的元素,也就是需要拖动公式填充计算其他结果;而第二种方法计算的结果则一个数组,一个公式即可完成计算,便于进一步进行函数嵌套。