Excel公式看不懂,求指教?
网友解答: Excel公式看不懂,通常有以下几种情况及解决办法:一、公式涉及计算逻辑较为复杂这种情况下,可以使用公式求值的功能一步步查看公式每次的关键计算结果,这样就很容易理解公式的计算
Excel公式看不懂,通常有以下几种情况及解决办法:
一、公式涉及计算逻辑较为复杂这种情况下,可以使用公式求值的功能一步步查看公式每次的关键计算结果,这样就很容易理解公式的计算过程了,如下图所示:
二、公式较长,进一步加大了对公式的计算逻辑理解难度这种情况,可以考虑使用Alt+Enter快捷键对公式进行换行处理——这个快捷键不仅适用于一般的内容换行,在公式内同样适用,然后在每行的开头添加一定数量的空格实现缩进,达到公式层次结构分明的目的,如下图所示:
三、公式内省略或省写了参数,以至于公式看不懂这种情况其实非常不好,所以我一般建议不要在公式里省略参数,能写明确的一定要写明确,能省的也不要省!公式不仅是自己用的,很多时候是要给别人看的!
当然,有时候是因为别人写了这样的公式,那我们也要学会看得懂。
以这个问题里的公式为例,match函数省略了两个参数(严格来说这种不叫省略,或者应该叫省写,后面再说省略和省写的区别),结果很多人一看就蒙圈了,实际上,match函数的参数有3个,其中第3个参数可以省略。问题中的公式有2个逗号,说明3个参数都是存在的,只是没有把参数的具体值写出来而已,像这种情况,参数存在而没有写具体值的,这个参数的值实际就是0。如下图所示:
接下来,下面再对比一下省略和省写参数的差别,方便大家加深印象:
以上是对一些复杂公式的解读办法,同时也说明了一些写公式时应该注意的问题,希望大家以后写公式时都能遵守一定的规范,不仅方便自己,更能方便别人。
欢迎关注【Excel到PowerBI】私信我即可下载60+基础函数及新功能Power系列功能汇总训练材料我是大海,微软认证Excel专家,企业签约Power BI技术顾问让我们一起学习,共同进步 网友解答:
这个公式的作用是提取一个区域内数据的唯一值,即去掉所有重复项目(重复的保留一项)。=INDEX(A$2:A$100,MATCH(,COUNTIF(B$1:B1,A$2:A$100),))&"",这是一个数组公式,输入公式后需要同时按CTRL、SHIFT、ENTER三个键,不然公式会返回错误值#N/A。
公式中COUNTIF(B$1:B1,A$2:A$100)这一段得到的数组结果是{0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0};MATCH(,COUNTIF(B$1:B1,A$2:A$100),)这一段是用MATCH定位第一个0出现的位置,MATCH第一参数为0时可以简写(可以理解为不写),公式在下拉的过程中COUNTIF第一参数(用于存放不重复项目的区域)会逐步变化,即公式由B2下拉到B3时公式中COUNTIF这段会变成COUNTIF(B$1:B2,A$2:A$100),返回数组是{1;0;0;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0},再往下COUNTIF第一参数继续变化COUNTIF(B$1:B3,A$2:A$100),返回的数组结果将会是另一种0、1组合的结果。第二参数是COUNTIF判断的条件(即所有项目存放的区域),如果第二参数的条件在前面的不重复项目存放区域中已经出现,COUNTIF就会返回1,利用MATCH定位第一个0出现的位置,这样会逐步过滤掉上面已经提取出来的不重复项目,公式下拉到最后就会全部提取出所有唯一项目。
公式中INDEX第一参数和COUNTIF第二参数是一个比所有项目存放区域大的一个区域,比如示例中数据存放是A2:A18,选择一个比数据区域在的区域目的在于避免下拉提取出所有项目继续下拉时出现#N/A错误值。因为下拉到最后提取出所有项目后,COUNTIF返回的数组结果中就没有0了,MATCH定位不到0就会出现#N/A错误值,所以要选择一个比所有项目存放区域大的一个区域,大多少随意,比如这里公式可以这样写=INDEX(A$2:A$19,MATCH(,COUNTIF(B$1:B1,A$2:A$19),))&""。但是只选择一个比所有项目存放区域大的区域并不能单独完成屏蔽错误值的任务,还需要&""这一段代码。这里有两个原因,一个是INDEX在引用真空单元格时会返回结果0,第二个原因是真空单元格在COUNTIF第二参数中会被当作0来处理,所以如果不用&""把INDEX引用的真空单元格变成假空(空文本),下拉到最后提取出所有项目后,COUNTIF返回的数组结果中还是不会有0这样MATCH依然会出现错误值。
以上就是对这个公式的详细解析,希望对你有所帮助,欢迎关注@Excel泥瓦匠,Excel学习,E路有你。