Maison >Les sujets >excel >Parlons de la fonction SUMPRODUCT d'Excel
Cet article vous apporte des connaissances pertinentes sur excel, qui présente principalement les problèmes liés à la fonction SUMPRODUCT. Cette fonction combine non seulement les deux fonctions principales de sommation conditionnelle et de comptage, mais peut également être utilisée dans des scénarios complexes. au traitement du classement. J'espère que cela sera utile à tout le monde.
Recommandations d'apprentissage associées : Tutoriel Excel
Aujourd'hui, je vais partager avec vous une fonction très couramment utilisée et pratique : SUMPRODUCT. Comme nous le savons tous, la sommation conditionnelle et le comptage sont les deux problèmes les plus courants rencontrés par les utilisateurs de tableaux, et cette fonction combine non seulement les deux fonctions principales de la sommation conditionnelle et du comptage, mais elle peut également être utilisée pour le traitement de classement dans des scénarios complexes, et même ; J'ai entendu dire que certaines personnes ont conquis la moitié du monde Excel avec une seule fonction... elles doivent donc l'apprendre.
Regardons d'abord la syntaxe de base. La description officielle de la syntaxe de SUMPRODUCT consiste à multiplier les éléments correspondants entre les tableaux dans des ensembles de tableaux donnés et à renvoyer la somme des produits. Le format de syntaxe est le suivant :
=SUMPRODUCT(array1,array2,array3, …)
- SUM signifie sommation, PRODUCT signifie multiplication. Les paramètres sont multipliés puis additionnés. Vous voyez, SUMPRODUCT porte bien son nom.
Regardez ma main, Wai, Tu, Sri... Pour résumer, la fonction SUMPRODUCT a les trois caractéristiques suivantes :
1>
2> Il traitera les éléments de tableau non numériques dans les paramètres comme 0.
3> Les paramètres doivent avoir la même taille, sinon une valeur d'erreur sera renvoyée.
Après avoir lu le CV de SUMPRODUCT, de nombreux amis doivent le regarder dans le brouillard et n'en avoir qu'une vague compréhension. Que signifient ces caractéristiques ? Quel genre de travail peut-il faire ? En fait, ce n'est pas clair.
Claquez des doigts et laissez-moi vous donner quelques exemples.
Comme le montre le tableau de données ci-dessus, la colonne C est le prix unitaire du produit et la colonne D est la quantité vendue. Nous devons maintenant calculer les ventes totales dans la cellule C9.
C9 Entrez la formule suivante pour obtenir le résultat 11620.60
=SUMPRODUCT(C3:C7, D3:D7)
Il s'agit d'une simple fonction SUMPRODUCT. Son processus de fonctionnement est le suivant : multiplier les éléments dans les deux tableaux de zones C3:C7 et D3:D7 respectivement, c'est-à-dire C3*D3, C4*D4, C5*D5... jusqu'à ce que C7*D7
soit égal au premier Calculez le montant des ventes de chaque article et résumez-le enfin.
En raison de la première fonctionnalité de la fonction SUMPRODUCT, elle prend en charge les opérations entre les tableaux. Par conséquent, bien que la formule effectue plusieurs opérations, il n'est pas nécessaire d'appuyer sur les trois touches de tableau
Certains amis ont dit que la formule peut aussi être écrite comme ceci :
=SUMPRODUCT(C3:C7*D3:D7)
Ou vous pouvez utiliser la formule matricielle suivante.
=SUM(C3:C7*D3:D7)
Alors quelle est la différence entre ces trois formules ?
Tout d'abord, dans la plupart des cas, la fonction SUMPRODUCT ne nécessite pas la triple touche du tableau pour terminer la saisie de la formule afin d'effectuer des opérations sur le tableau, mais la fonction SUM le fait.
Deuxièmement, parlons d'une autre fonctionnalité très importante de la fonction SUMPRODUCT.
…
Nous avons légèrement modifié le tableau ci-dessus et modifié la quantité vendue de « stylos » comme suit : Pas encore compté. Il faut également calculer le total des ventes dans la cellule C9.
À ce moment, si vous utilisez la formule :
=SUMPRODUCT(C3:C7*D3:D7)
ou la formule matricielle :
=SUM(C3:C7*D3:D7)
, la valeur d'erreur #VALUE sera renvoyée
La raison pour laquelle la valeur d'erreur est renvoyée est que la cellule D4 ! "pas encore compté" est une valeur de texte. Les valeurs de texte ne peuvent pas participer directement aux opérations mathématiques, donc C4*D4 renvoie la valeur d'erreur #VALEUR !, ce qui fait que le résultat de la formule entière renvoie une valeur d'erreur.
Il n'y a pas de problème lors de l'utilisation de la formule suivante, et le résultat correct sera renvoyé directement :
=SUMPRODUCT(C3:C7,D3:D7)
C'est la deuxième fonctionnalité de la fonction SUMPRODUCT : convertir des non- les valeurs numériques dans les éléments du tableau sont traitées comme 0.
Dans cet exemple, la valeur de la cellule D4 "pas encore comptée" est du texte, pas une valeur numérique. SUMPRODUCT la traite activement comme zéro, donc C4*D4, le résultat est également nul et les éléments restants du tableau sont calculés comme suit. habituel, et nous obtenons un résultat de 11385,60.
Il convient de noter que SUMPRODUCT traite les éléments de tableau non numériques comme 0. Les éléments de tableau dits non numériques incluent des valeurs logiques et du texte, mais ne contiennent pas de valeurs d'erreur. Si l'élément de tableau contient une valeur d'erreur, les formules renvoient également des valeurs incorrectes, comme la première formule de cet exemple.
…
Après avoir parlé des deux fonctionnalités de la fonction SUMPRODUCT, parlons de sa troisième fonctionnalité : les paramètres du tableau doivent avoir la même taille, sinon une valeur d'erreur sera renvoyée.
Nous utilisons toujours l'exemple de l'image ci-dessus comme exemple pour continuer à calculer les ventes totales du produit. Si on rentre la formule en C9 :
=SUMPRODUCT(C3:C7,D3:D6)
Quel sera le résultat ?
Valeur d'erreur : #VALEUR !
Pourquoi ?
细心的你肯定已经注意到了,两个区域数组,C3:C7明显显比D3:D6多了一个元素,C3和D3结对子,C4和D4结对子……那么C7和谁结对子呢?女人们都嫁了,结果剩下一个光棍,这日子没法过了!一个萝卜一个坑,只有萝卜没有坑,这不是要萝卜死吗?
——于是SUMPRODUCT就不高兴了,它给你一个错误值#VALUE!,明确告诉你,和谐时代幸福岁月,日子不能这么过。
这就是SUMPRODUCT函数的第三个特点:数组参数必须有相同的尺寸,否则返回错误值。
下面是一道练习题,你看看,能用SUMPRODUCT函数做出来吗?
假设下面这张图,是某个公司工资发放的部分记录表(数据纯属虚拟,如有雷同,那是穿越)。A列是工资发放的时间,B列是员工所属的部门,C列是员工姓名,D列是相关员工领取的工资金额。
——那么,问题和广告都来了:
1
员工西门庆领取了几次工资?
这是一个单条件计数的问题,通常我们使用COUNTIF函数,但如果使用SUMPRODUCT函数,一般写成这样:
=SUMPRODUCT((C2:C13="西门庆")*1)
先判断C2:C13的值是否等于”西门庆”,相等则返回TRUE,不等则返回FALSE,由此建立一个有逻辑值构成的内存数组。
上文已经说过,SUMPRODUCT有一个特性,它会将非数值型的数组元素作为0处理,逻辑值自然是属于非数值型的数组元素,为了避免SUMPRODUCT函数把逻辑值视为0,造成统计错误,我们使用*1的方式,把逻辑值转化为数值,TRUE转化为1,FALSE转化为0,最后统计求和。
2
员工西门庆领取了多少工资?
这是一个单条件求和的问题,通常我们使用SUMIF函数,如果使用SUMPRODUCT函数,我们可以写成这样:
=SUMPRODUCT((C2:C13="西门庆")*D2:D13)
依然首先判断C2:C13的值是否等于”西门庆”,得到逻辑值FALSE或TRUE,再和D2:D13的值对应相乘。TRUE乘以数值,得到数值本身。FALSE乘以数值返回0。最后统计求和得出结果。
看完了上面两个问题,有些朋友可能会在心里想,貌似SUMPRODUCT能干的事,SUMIF和COUNTIF也能做到,而且做的更好,那么还要SUMPRODUCT干啥嘞?
乡亲们呐,话不能这么说,SUMPRODUCT可是上得厅堂下得厨房,对工作环境不挑不拣,它对参数类型没有啥特别要求,COUNTIF和SUMIF就不同了,他俩要求个别参数,必须是区域(Range型),不支持数组,比如下面这两个问题,COUNTIF和SUMIF就要绕了。
3
二月份外交部发放了几次工资?总额是多少?
第1个问题,二月份外交部发放了几次工资?
这是一个多条件计数的问题。
第一个条件,发放工资的时间必须是二月份;第二个条件,发放工资的部门必须是外交部。
如果使用多条件计数函数COUNTIFS,判断发放工资的时间是否属于六月份,会简单问题复杂化。而使用SUMPRODUCT函数,咱们可以把公式写成这样:
=SUMPRODUCT((MONTH(A2:A13)=2)*(B2:B13="外交部"))
……
第2个问题,统计二月份外交部发放了多少工资?
这是一个常见的多条件求和问题。
如果使用SUMIFS函数,判断发放工资的时间是否属于六月份,也会简单问题复杂化。
SUMPRODUCT跃然而至:
=SUMPRODUCT((MONTH(A2:A13)=6)*(B2:B13="外交部"),D2:D13)
或者:
=SUMPRODUCT((MONTH(A2:A13)=6)*(B2:B13="外交部")*D2:D13)
打个响指,关于这两个形式的SUMPRODUCT函数的区别,咱们上文已有详细说明——你还记得吗?
上面这个公式可以说是SUMPRODUCT多条件求和的典型用法啦,可以归纳为:
=SUMPRODUCT((条件一)*(条件二)……,求和区域)
4
二月份外交部和步兵部合计发放了多少工资?
解决了上面的问题,相信大家已经晓得如何计算二月份外交部发放多少工资了,那么二月份外交部和步兵部合计发了多少工资,又当怎么计算呢
我们经常见有些性格朴素的表亲们把公式写成这样:
=SUMPRODUCT((MONTH(A2:A13)=2)*(B2:B13="外交部")*D2:D13)+SUMPRODUCT((MONTH(A2:A13)=2)*(B2:B13="步兵部")*D2:D13)
这些表亲们估计心想,不就是计算两个部门吗?甭说两个,二十个咱也能算,一个加一个,一直加到二十个,世上无难事,只怕有心人嘛,一砖加一砖,长城就建成了,一泡加一泡,长江就奔流了……
呃……公式写的那么长,先不谈计算速度,首先它累手啊,万一写错了,又要修改,那也是麻烦他妈哭麻烦——麻烦死了。
其实我们可以写成这样:
=SUMPRODUCT((MONTH(A2:A13)=6)*(B2:B13={"外交部","步兵部"})*D2:D13)
5
排名应用
认识了SUMPRODUCT函数在条件计数和求和方面的用法,最后,咱们再来看一个它在排名上的使用方法。
如上图所示,某个月某个公司某些人领了某些工资,然后呢,他们想看看自己的工资,在部门内的排名情况,比如说步兵部的鲁智深都是老员工了,非常想知道自个工资在各自部门排几号。
当然啦,不排不知道,一排就傻掉。
SUMPRODUCT是这么解决这个问题的,D2输入公式向下复制:
=SUMPRODUCT(($A$2:$A$9=A2)*(C2<$C$2:$C$9))+1
(思考,为什么公式的最后+1,而不是直接写成如下:)
=SUMPRODUCT(($A$2:$A$9=A2)*(C2<=$C$2:$C$9))
唠唠叨叨说了这么多,眼睛都说酸麻了,是到了该结束的时候啦。
最后,请思考两个小问题:
第1个问题:下面SUMPRODUCT函数有几个参数?
=SUMPRODUCT((MONTH(A2:A13)=6)*(B2:B13="财务部")*D2:D13)
下面这个SUMPRODUCT函数又有几个参数?
=SUMPRODUCT((MONTH(A2:A13)=6)*(B2:B13="财务部"),D2:D13)
第二个问题:
SUMPRODUCT为什么有时候比SUMIF/COUNTIF计算速度慢?
相关学习推荐:excel教程
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!