Part I 简述 常量数组,是一组给定的常量,如{1,2,3}或{1;2;3}或{1,2,3;1,2,3},数组公式中的参数必须为'矩形',如{1,2,3;1,2}就无法引用了。 同时按下CTRL SHIFT ENTER,才能显示正确的公式: 有的时候,看上去是一般应用的公式也应该是属于数组公式,只是它所引用的是数组常量,对于参数为常量数组的公式,则在参数外有大括号{},公式外则没有,输入时也不必按CTRL SHIFT ENTER。 数组公式可以用几个一般公式和一些过渡数据来代替,从而达到同样的目的。 Part II 利用数组公式进行条件求和 1. 求产品BB的8月份产量 =SUM(IF(($B$7:$B$20='BB')*(MONTH($C$7:$C$20)=8),($E$7:$E$20),0)) 公式中的'*'相当于AND,即同时满足条件,该公式可以作如下简化: =SUM(($B$7:$B$20='BB')*(MONTH($C$7:$C$20)=8)*$E$7:$E$20) 2. 求产品BB和CC的总产值 =SUM(IF(($B$7:$B$20='BB') ($B$7:$B$20='CC'),($E$7:$E$20))*($D$7:$D$20)) 公式中的' '相当于OR,即满足条件之一即可,该公式可以作如下简化: =SUM((($B$7:$B$20='BB') ($B$7:$B$20='CC'))*$E$7:$E$20*$D$7:$D$20) 3. 求8月份之前AA的产量和8月份之后不包括AA的产品产量之和 =SUM(IF((MONTH($C$7:$C$20)>=8)<>($B$7:$B$20='AA'),$E$7:$E$20)) 公式中的'<>'相当于不同时满足,即要么满足条件1,要么满足条件2,同时满足的不算,以下公式和上面的公式等价: =SUM(IF((MONTH($C$7:$C$20)>=8)<>($B$7:$B$20='AA'),$E$7:$E$20)) '<>'还可以用'-'来代替: =SUM(IF(($B$7:$B$20='AA')-(MONTH($C$7:$C$20)>=8),$E$7:$E$20)) 该公式可以作如下简化: =SUM((($B$7:$B$20='AA')<>(MONTH($C$7:$C$20)>=8))*$E$7:$E$20) 简化时,注意只能用'<>'而不能用'-' 4.求产品AA和BB在8月份的总产值 =SUM((($B$7:$B$20='AA') ($B$7:$B$20='BB'))*(MONTH($C$7:$C$20)=8)*($D$7:$D$20)*($E$7:$E$20)) Part III 举例说明 1.求产品AA有几次是产量大于200的 =SUM(IF(($B$8:$B$21='AA')*($E$8:$E$21>200),1,0)) 该公式可以作如下简化: =SUM(($B$8:$B$21='AA')*($E$8:$E$21>200)) 2.求记录中共有几种产品(即产品编号中不重复的编号总数) =SUM(1/COUNTIF($B$8:$B$21,$B$8:$B$21)) 3.求记录中共记录了几个月的数据 =SUM(1/COUNTIF(MONTH(C8:C21),MONTH(C8:C21))) 该公式可以作如下简化: =SUM(IF(MATCH(MONTH($C$8:$C$21),MONTH($C$8:$C$21),0)=ROW($C$8:$C$21)-7,1)) Part VI 利用数组公式进行条件记数 1. 把B列中不重复的名称在C列中一一列出 =IF(SUM(1/COUNTIF($B$7:$B$20,$B$7:$B$20))>=ROW(B1),INDEX($B$7:$B$20,SMALL(IF(ROW($B$7:$B$20)-6=MATCH($B$7:$B$20,$B$7:$B$20,0),ROW($B$7:$B$20)-6,'0'),ROW(B1))),'END') 2. 把员工按工资收入高低从大到小排列 |
|