EXCEL中COLUMN函数的初级及中高级应用介绍

COLUMN函数是EXCEL中的一个基本函数,在查找和数据计算中经常会用到。这个函数的作用是返回指定单元格引用的列号,这个函数经常和文件函数、查询函数一起使用,比如和VLOOKUP、LOOKUP等嵌套使用,可以起到非常灵活的作用。

当需要此函数返回的结果为一个数的时候,实质上是一个包含一个元素的数组,比如COLUMN(A1),标准的返回结果为{1},一般情况下不影响使用。

先来看看它的基本用法:

excel中column函数怎么用(EXCEL函数的组合应用简介)(1)

图中C2单元格中的公式为"=COLUMN()",直接返回单元格的列号3;C3中的公式为"=COLUMN(D2)",由于公式中引用的单元格是D列,所以返回4;C4中的公式为"=COLUMN(D3:H8)",返回引用区域中最左侧列列号4。

下面举一些COLUMN函数和其他函数组合的案例。

1. 和VLOOKUP函数的组合使用

= VLOOKUP($A$8,$A$2:$F$5,COLUMN(),0)

公式中的COLUMN为当前列,将公式向右拖拉填充时可以避免多次输入。

excel中column函数怎么用(EXCEL函数的组合应用简介)(2)

2. 和SUM函数组合进行隔列求和计算

如下图所示,要求分别计算出产品的生产总数和入库数量。分析一下表的数据结构,实际上就是计算隔列求和的问题。

总生产数:

= SUM((E2:J2)*(MOD(COLUMN(E2:J2),2)=1))

总入库数:

= SUM((E2:J2)*(MOD(COLUMN(E2:J2),2)=0))

excel中column函数怎么用(EXCEL函数的组合应用简介)(3)

本例中利用COLUMN函数取出列号进行数组运算,COLUMN(1:1)在数组中表示{1,2,3,4,5,6,7,……}的数组。

COLUMN(E2:J2)在数组公式中返回数组{5,6,7,8,9,10}

MOD函数用来判断奇偶,返回FALSE或TRUE,以达到隔列计算的效果。

3. 取出列号的英文字母

和SUBSTITUTE、ADDRESS等函数组合可以取出列号的英文字母:

= SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,)

excel中column函数怎么用(EXCEL函数的组合应用简介)(4)

4. 取出字符串中的数字

如下图所示,要求提取说明文字前后的数字:

=-LOOKUP(1,-RIGHT(A2,COLUMN(A1:K1)))

=-LOOKUP(1,-LEFT(A3,COLUMN(A1:K1)))

excel中column函数怎么用(EXCEL函数的组合应用简介)(5)

我们可以用F9来逐步返回值,看看这个函数的运行机理:

选择COLUMN(A1:K1),按F9,可以看到返回值为:

{1,2,3,4,5,6,7,8,9,10,11}

注:使用A1:K1,是为了使数组长度大于OFFICE2013的长度。

选择RIGHT(A2,COLUMN(A1:K1)),按F9可以看到返回值为:

{"3","13","013","2013","E2013","CE2013","ICE2013","FICE2013","FFICE2013","OFFICE2013","OFFICE2013"}

再选择-RIGHT(A2,COLUMN(A1:K1)),按F9后可以看到返回值为:

{-3,-13,-13,-2013,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!}

至此,这个函数的机理应该就比较清楚了。如果对LOOKUP有查询机理不清楚,可以查看本人以前总结的一篇文章:

明明白白我的心-LOOKUP函数的"0/"查询原理详解