作业帮 > 综合 > 作业

=INDEX(A:A,SMALL(IF(ISERROR(FIND("城区",$B$1:$B$6)),4^8,ROW($B

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 14:04:24
=INDEX(A:A,SMALL(IF(ISERROR(FIND("城区",$B$1:$B$6)),4^8,ROW($B$1:$B$6)),ROW(A1)))&""
谁能帮我解释下这个公式?
公式的作用:把B1到B6中含有"城区"的单元格对应的A列数据列出来
这个是数组公式要以ctrl+shift+enter三键完成输入的.
公式执行过程:判断B1到B6是否含有"城区",不含"城区"返回4^8(即65536),否则返回含有"城区"单元格对应的行号,通过small函数结合row(a1)函数来返回所有含有"城区"的B列行号,最后通过index(a:a来返回对应的A列数据
再问: 4^8在这里是什么意思,还有为什么后面还要加上 &""
再答: 4^8即4的8次方,就是65536,这个数恰好是excel2003一个工作表的最后一行的行号,一般这一行我们都不会用到,所以公式在判断找到"城区"的时候返回对应的行号,找不到的时候总要返回一个值给index,就返回65536,1列的最后一行的行号.你改为其他值也可以,比如100,1000,20000什么的都行. 加&""也是因为65536行一般没有数据,而通过index后,会返回无意义的0值,影响表格美观,加上&""可以去除0值,显示空值,仅此而已,公式不加也可以.