EXCEL中COLUMN函数的组合应⽤简介EXCEL中COLUMN函数的初级及中⾼级应⽤介绍
COLUMN函数是EXCEL中的⼀个基本函数,在查和数据计算中经常会⽤到。这个函数的作⽤是返回指定单元格引⽤的列号,这个函数经常和⽂件函数、查询函数⼀起使⽤,⽐如和VLOOKUP、LOOKUP 等嵌套使⽤,可以起到⾮常灵活的作⽤。
当需要此函数返回的结果为⼀个数的时候,实质上是⼀个包含⼀个元素的数组,⽐如COLUMN(A1),标准的返回结果为{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为当前列,将公式向右拖拉填充时可以避免多次输⼊。
2. 和SUM函数组合进⾏隔列求和计算
如下图所⽰,要求分别计算出产品的⽣产总数和⼊库数量。分析⼀下表的数据结构,实际上就是计算隔列求和的问题。
总⽣产数:
= SUM((E2:J2)*(MOD(COLUMN(E2:J2),2)=1))
总⼊库数:
= SUM((E2:J2)*(MOD(COLUMN(E2:J2),2)=0))
本例中利⽤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,)
4. 取出字符串中的数字
如下图所⽰,要求提取说明⽂字前后的数字:
=-LOOKUP(1,-RIGHT(A2,COLUMN(A1:K1)))
=-LOOKUP(1,-LEFT(A3,COLUMN(A1:K1)))
我们可以⽤F9来逐步返回值,看看这个函数的运⾏机理:
column函数和vlookup函数
选择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/'查询原理详解