=IF(ROW(A1)>SUM($B$1:$B$19),"",INDEX(A:A,SMALL(IF($B$1:$B$19=1,ROW($1:$19),4^8),ROW(A1)))) 请问是

请问是什么意思,谢谢啦... 请问是什么意思,谢谢啦 展开
 我来答
小矇
2012-03-30 · TA获得超过1.6万个赞
知道大有可为答主
回答量:8342
采纳率:75%
帮助的人:3325万
展开全部
这个公式的最终目的是要找出区域B1至B19中等于1的单元格,并返回对应A列上的单元格内容。
分两部分跟LZ解释,先讲后面部分:
INDEX(A:A,SMALL(IF($B$1:$B$19=1,ROW($1:$19),4^8),ROW(A1)))
这个公式中最终是要用INDEX函数查找并返回A列上对应的内容,格式是:
INDEX(返回内容所在区域,要返回这个区域的第几行的内容),所以这里的关键是要如何才能获得等于1的单元格是在第几行。

SMALL(IF($B$1:$B$19=1,ROW($1:$19),4^8),ROW(A1)) 而这部分就是要获得符合条件单元格行号的公式了。这里用IF($B$1:$B$19=1,ROW($1:$19),4^8) 去判断,如果B1至B19中等于1的话,就显示对应的1至19数字,不符合的就自然不在列了。这时再用SMALL将符合条件的行号按从小到大向下排列,ROW(A1)的结果就是1了,即用SMALL返回这些行号中的第一个最小的数字,向下复制公式就变成A2、A3.。。,即2、3。。。得到了这些有用的行号就可以用INDEX去获取对应的内容啦。

最后说一说第一部分的意思:
IF(ROW(A1)>SUM($B$1:$B$19),"",
因为B1至B19中不是所有单元格都等于1,所以当公式向下复制的时候,所有符合的内容都出现了,再下去的结果就会因为没有再找到内容而出现错误提示,这样就影响美观啦,于是就用以上公式去判断,如果公式所在的行号大于B1至B19中所有等于1的单元格的数量时,就什么都不显示了,这就能解决了美观的问题了。希望LZ能明白。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式