数组公式 左手数据,右手图表——Excel动态图表制作与职场数据沟通 第329页
作者:刘玲 时间:2020-08-24 19:44 浏览(1038)
C:{=SUM(IF((D43:D52>30)*(B43:B52=”高级“)*(C43:C52=”男“),E43:E52,0))},返回12000。D:{=SUM(IF((D43:D52>30)*(C43:C52=”女“)*((B43:B52=”高级“)+(B43:B52=”见习级“)),E43:E52,0))},返回6000。编写数组公式的关键在于理解条件之间的关系,理清是交集还是并集,是“与”

c:{=sum(if((d43:d52>30)*(b43:b52=”高级“)*(c43:c52=”男“),e43:e52,0))},返回12000。

d:{=sum(if((d43:d52>30)*(c43:c52=”女“)*((b43:b52=”高级“)+(b43:b52=”见习级“)),e43:e52,0))},返回6000。

编写数组公式的关键在于理解条件之间的关系,理清是交集还是并集,是“与”的关系还是“或”的关系。

在数组公式中,逻辑“与”(即同时满足条件)不能用and函数来表示,而要用星号“*”来表示;逻辑“或”(即满足条件之一即可)不能用or函数来表示,而要用加号“+”来表示。

另外,不同时满足要用“<>”来表示。

以问题a为例,“d43:d52>30”、“b43:b52=”高级“”、“c43:c52=”男“”分别为三个数组的判断条件,比如“d43:d52>30”,实际上在数组运算中是从d43单元格开始直到d52单元格依次判断单元格中的数值是否大于30,如果满足条件,返回逻辑值true,否则返回false,因此d43:d52>30返回的是一个逻辑值组成的数组,在本例中为{true,false,false,false,false,true,true,true,false,false}。

同理,“b43:b52=”高级“”和“c43:c52=”男“”也分别返回一个由true和false组成的数组。

因此,“(d43:d52>30)*(b43:b52=”高级“)*(c43:c52=”男“)”即为三个逻辑数组相乘,逻辑值在参与运算时true等于1,false等于0,所以,当三个数组中对应位置的元素都为true,即三个条件都同时满足时,乘积的结果为1;否则,只要有一个条件不满足,乘积结果就为0。

这样,“(d43:d52>30)*(b43:b52=”高级“)*(c43:c52=”男“)”返回的是一个由1和0组成的数组,对这个数组进行sum求和,数组中有几个1,证明有几个人满足条件,返回的结果就是几。

而在问题d的数组公式中,“((b43:b52=”高级“)+(b43:b52=”见习级“))”表示两个条件是“或”的关系,要用加号连接,并且要用括号将两个条件括起来。

因为乘积运算的优先级高于加号,如果不加括号,数组公式将先与“(b43:b52=”高级“)”乘积再与“(b43:b52=”见习级“)”求和。

“b43:b52=”高级“”在本例中返回的数组为{1,0,0,0,0,1,1,0,0,0},而“b43:b52=”见习级“”返回的数组为{0,0,1,0,0,0,0,0,0,0},两个数组相加即得到一个新的数组{1,0,1,0,0,1,1,0,0,0}。

相关专题