以下是引用gouweicao78在2006-3-13 10:56:09的发言:不少函数的初学者碰到了一些问题,就是连之前常用的+、-、*、/都有些看不明白了,尤其是*和+号[em06]—— 不要着急,这里将给你一些解释: 1、小实例:见附件 多条件统计 =sumproduct((A2:A10="小王")*(B2:B10="收")*C2:C10)——公式1 或者 =sum(if((A2:A10="小王")*(B2:B10="收"),C2:C10))——公式1-1(数组公式,按Ctrl+shift+enter结束) =sumproduct(((A2:A10="小王")+(A2:A10="小张"))*C2:C10)——公式2 或者 =SUM(IF((A2:A10="小王")+(A2:A10="小张"),C2:C10))——公式2-1(数组公式,按三键) 2、公式1和公式1-1(即公式1的变体)——都是求小王收到的数量,公式2和公式2-1(即公式2的变体)都是求小王和小张收到的数量。 3、大多数人会这么去理解—— 认为*是and(且)、认为+是or:[quote] 比如公式1可以这么解释A列=小王且B列=收,对C列求和;公式2解释为A列是小王或者A列是小张,则对C列求和。 (这个理解曾伴我走了很长一段时间) 而实际上这个似乎非常符合汉语习惯的让人觉得非常“正确”的理解——却是不完全的。不妨用 =sum(if(and(A2:A10="小王",B2:B10="收"),C2:C10))——代替公式1-1,用=SUM(IF(OR(A2:A10="小王",A2:A10="小张"),C2:C10))代替公式2-1,答案将是错误的。 此时的 *号和+号仍然是乘和加的作用。 方法:工具〉公式审核一步步看公式的结果就知道了——*和+号两边得到的是{true,false……}组成的逻辑值数组,用于运算时计算机又将True=1、False=0代入计算,得出结果如果用于IF判断,0=False、其他数值=True;如果用于下一步计算(比如公式1后面的直接*C2:C10)则也是用1、0代入的(1*数值=数值本身,0*数值=0) apolloh注:加分给此问题提出者,大家可以继续深入讨论,也许您的观点才是正确的。 老师,请教运算符"&"是如何用的? 多谢! |