1、简写SUMIF()的第3个参数 SUMIF()函数的第3个参数sum_range允许省略(见帮助),允许简写,如: SUMIF(B1:B10,"男",C1:C10),允许写为: SUMIF(B1:B10,"男",C1) SUMIF(F4:F20,"合格",R4:R20),允许写为: SUMIF(F4:F20,"合格",R4) 本实例中,INDIRECT({"c","d","e"}&3)相当于INDIRECT({"c3","d3","e3"}) 在SUMIF()函数中,因为条件区域为$A$3:$A$8,所以INDIRECT({"c3","d3","e3"})相当于: INDIRECT({"c3:c8","d3:d8","e3:e8"}) 反过来,上式可简写为INDIRECT({"c","d","e"}&3) 所以,公式中的3是不用改变的,它适用于区域中所有单元格公式。 回4楼:“但是你看看他实际是求的红色区域的和 不明白” 公式求的不都是红色区域的和,如H6,在编辑栏中按如下所示选择公式: =E6/SUM(SUMIF($A$3:$A$8,A6,INDIRECT({"c","d","e"}&3))) 按F9键,显示为: =E6/51590 该值51590是区域C6:E8数据之和。 2、SUMIF()的第3个参数允许为数组 SUMIF()函数的求和区域(第3个参数)会自动与条件区域(第1个参数)自动匹配大小,如: SUMIF(A2:D5,"Excel",E2:E5)相当于SUMIF(A2:D5,"Excel",E2:H5),与条件区域的4列匹配; SUMIF(A3:A8,A3,C3:E8)相当于SUMIF(A3:A8,A3,C3:C8),与条件区域的1列匹配; SUMIF(A2:D5,"Excel",E2)相当于SUMIF(A2:D5,"Excel",E2:H5),与条件区域的4行4列匹配。 前面提到的简写实际上也是行数的自动匹配。 但“INDIRECT({"c","d","e"}&3)相当于INDIRECT("c3")”的理解是不对的。 在单元格I6中,输入下面公式并在编辑栏中选取它: =SUMIF(A3:A8,A3,INDIRECT({"C3:c8","d3:d8","e3:e8"})) 按F9键,显示为: ={10250,9860,10020} 三个数值,相当于下面公式一一得到的结果: SUMIF(A3:A8,A3,C3:C8) SUMIF(A3:A8,A3,D3:D8) SUMIF(A3:A8,A3,E3:E8) SUMIF($A$3:$A$8,A3,INDIRECT({"c","d","e"}&3))与SUMIF($A$3:$A$8,A3,C3:E8)的意义是不相同的,它是数组计算。 公式SUM(SUMIF($A$3:$A$8,A3,INDIRECT({"c","d","e"}&3)))相当于: SUMIF($A$3:$A$8,A3,C3)+SUMIF($A$3:$A$8,A3,D3)+SUMIF($A$3:$A$8,A3,C3) 3、用IF()函数代替SUMIF()函数 本题除了使用SUMIF()函数,使用如下公式也可得到同样的结果: H3=E3/SUM(IF(A$3:A$8=A3,C$3:E$8)) 数组公式,按Ctrl+Shift+Enter结束。 或者: H3=E3/SUMPRODUCT((A$3:A$8=A3)*C$3:E$8)
[此贴子已经被作者于2007-7-28 8:06:19编辑过] |