请教:函数含义 有一个公式:=INDEX(A:A,SMALL(IF(COLUMN(1:1)<=B$2:B$4,ROW($2:$4)),ROW(A1)))

请教各位大侠:COLUMN(1:1)是什么意思,返回什么样的值呢?IF(COLUMN(1:1)<=B$2:B$4,ROW($2:$4))是怎样做的比较啊?... 请教各位大侠:COLUMN(1:1)是什么意思,返回什么样的值呢?IF(COLUMN(1:1)<=B$2:B$4,ROW($2:$4))是怎样做的比较啊? 展开
 我来答
1975qjm
高粉答主

2013-10-09 · 关注我不会让你失望
知道大有可为答主
回答量:2万
采纳率:74%
帮助的人:7623万
展开全部

这个公式是数组公式,要按下SHIFT+CTRL+ENTER三键,这样公式前后就会自动加上一对花括号{=...... }

 

COLUMN(1:1)  因为COLUMN是求列标是第几列,而1:1指的是第一行整行,所以就会得出{1,2,3.....254,255,256},这样的数组(以2003版为例,是1列~256列)

 

ROW()  求行号值如ROW(A1)就是A列第一行,行号就是1,下拉后就是ROW(A2)即A列第二行,值就是2了

 

IF(COLUMN(1:1)<=B$2:B$4,ROW($2:$4))  

        实际上就是IF({1,2,3.....254,255,256}<=B$2:B$4,ROW($2:$4)  意思为1至256这些数小于等于B2至B4单元格值的,返回对应的2,3,4行号,

        这是一个量比较大的数据对比,先是B2单元格的值去比较1至256,再是B3单元格的值去比较1至256,再是B4单元格的值去比较1至256,形成3*256个数据,假设B2,B3,B4的值是分别4,2,3.则4会小于等于1至256的1至4的4个数,即为

{TRUE,TRUE,TRUE,TRUE,FALSE,FALSE......(此为B2与1至256比对的数据,共256个真假值);TRUE,TRUE,FALSE,FALSE,FALSE.......(用分号分隔后是B3与1至256比对的数据,也是256个真假值).......;TRUE,TRUE,TRUE,FALSE,FALSE.........(用分号分隔后是B4与1至256比对的数据,同样是256个真假值).....FALSE,FALSE}

这样的数组,这些值中为真值的(TRUE)会分别返回ROW($2:$4)={2;3;4}这三个数,

B2与1至256相比的是第一组256个真假值,真值的返回2,假值(即FALSE)还是返回假值;

B3与1至256相比的是第二组256个真假值,真值的返回3,假值(即FALSE)还是返回假值;

B4与1至256相比的是第三组256个真假值,真值的返回4,假值(即FALSE)还是返回假值;

{2,2,2,2,FALSE,FALSE,FALSE,FALSE........FALSE,FALSE,FALSE;3,3,FALSE,FALSE,FALSE........;4,4,4,FALSE,FALSE,FALSE.........FALSE,FALSE,FALSE,FALSE}

这样的数组

 

SMALL({2,2,2,2,FALSE,FALSE,FALSE,FALSE........FALSE,FALSE,FALSE;3,3,FALSE,FALSE,FALSE........;4,4,4,FALSE,FALSE,FALSE.........FALSE,FALSE,FALSE,FALSE},ROW(A1))

意思为这个数组中第一小的值,即该值为2

公式下拉后是ROW(A2),即求第二小的值,该值也还是2

第三小的值也是2,

第四,五小的值是3

第五,六,七小的值是4

 

INDEX(A:A,某行号值)  

如  

INDEX(A:A,2)   即 A列的第二行的内容

INDEX(A:A,3)   即 A列的第三行的内容

 

这样整个公式就会形成,B列写的数是多少时,C列就会出现多少个A列的内容,

如A2是A,B2是4,这样就会在公式列出现四个A,A3是B,B3是2,公式列就会接着出现两个B,A4是C,B3是3,公式列就会出现3个C

 

建议公式改成如下,公式下拉行数多时,就不会出现错误值了
=INDEX(A:A,SMALL(IF(COLUMN(1:1)<=B$2:B$4,ROW($2:$4),4^8),ROW(A1)))&""

 

如图

 

 

这题答的辛苦,用了我一个多小时组织和录入才回答完毕,看懂后请采纳

fhlzjy
2013-10-09 · TA获得超过542个赞
知道小有建树答主
回答量:464
采纳率:0%
帮助的人:284万
展开全部
COLUMN函数返回给定引用的列号,COLUMN(1:1)返回值是1

ROW函数返回指定引用区域的行号,ROW($2:$4)返回值是2

这个应该是个数组公式吧(外面还有{}吧),单这样这公式感觉没什么用啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式