Heim > Themen > excel > Hauptteil

Lassen Sie uns über die SUMPRODUCT-Funktion von Excel sprechen

WBOY
Freigeben: 2022-04-14 13:03:21
nach vorne
4472 Leute haben es durchsucht

Dieser Artikel vermittelt Ihnen relevantes Wissen über Excel, das hauptsächlich Probleme im Zusammenhang mit der SUMPRODUCT-Funktion vorstellt. Diese Funktion kombiniert nicht nur die beiden Hauptfunktionen der bedingten Summierung und des Zählens, sondern kann auch in komplexen Szenarien verwendet werden Ich hoffe, dass es für alle hilfreich ist.

Lassen Sie uns über die SUMPRODUCT-Funktion von Excel sprechen

Verwandte Lernempfehlungen: Excel-Tutorial

Heute werde ich eine sehr häufig verwendete und praktische Funktion mit Ihnen teilen: SUMPRODUCT. Wie wir alle wissen, sind bedingte Summierung und Zählung die beiden häufigsten Probleme, auf die Tabellenbenutzer stoßen. Diese Funktion kombiniert nicht nur die beiden Hauptfunktionen bedingte Summierung und Zählung, sondern kann auch für die Rangfolgeverarbeitung in komplexen Szenarien verwendet werden Ich habe gehört, dass manche Leute mit nur einer Funktion die halbe Excel-Welt erobert haben ... also müssen sie es lernen.

Grundlegende Syntax

Schauen wir uns zunächst die grundlegende Syntax an. Die offizielle Syntaxbeschreibung von SUMPRODUCT besteht darin, die entsprechenden Elemente zwischen den Arrays in bestimmten Array-Sätzen zu multiplizieren und die Summe der Produkte zurückzugeben. Das Syntaxformat ist wie folgt:

rrree

– SUM bedeutet Summation, PRODUCT bedeutet Multiplikation. Die Parameter werden multipliziert und dann summiert. SUMPRODUCT macht seinem Namen alle Ehre.

Schauen Sie sich meine Hand an, Wai, Tu, Sri... Zusammenfassend weist die SUMPRODUCT-Funktion die folgenden drei Eigenschaften auf:

1> Sie führt standardmäßig Array-Operationen aus.

2> Nicht-numerische Array-Elemente in den Parametern werden als 0 behandelt.

3> Die Parameter müssen die gleiche Größe haben, sonst wird ein Fehlerwert zurückgegeben.

Funktionsanalyse

Nachdem sie den Lebenslauf von SUMPRODUCT gelesen haben, müssen viele Freunde ihn im Nebel betrachten und nur eine vage Vorstellung davon haben. Was bedeuten diese Eigenschaften davon? Welche Art von Arbeit kann es leisten? Tatsächlich ist es nicht klar.

Schnippen Sie mit den Fingern und ich gebe Ihnen ein paar Beispiele.

Lassen Sie uns über die SUMPRODUCT-Funktion von Excel sprechen

Wie in der Datentabelle oben gezeigt, ist Spalte C der Stückpreis des Produkts und Spalte D die Verkaufsmenge. Jetzt müssen wir den Gesamtumsatz in Zelle C9 berechnen.

C9 Geben Sie die folgende Formel ein, um das Ergebnis 11620,60 zu erhalten

=SUMPRODUCT(array1,array2,array3, …)
Nach dem Login kopieren

Dies ist eine einfache SUMPRODUCT-Funktion. Sein Operationsprozess ist: Multiplizieren Sie die Elemente in den beiden Bereichsarrays C3:C7 bzw. D3:D7, also C3*D3, C4*D4, C5*D5 ..., bis C7*D7

Lassen Sie uns über die SUMPRODUCT-Funktion von Excel sprechen

gleich ist Berechnen Sie zunächst den Verkaufsbetrag jedes Artikels und fassen Sie ihn schließlich zusammen.

Aufgrund der ersten Funktion der SUMPRODUCT-Funktion unterstützt sie Operationen zwischen Arrays. Obwohl die Formel mehrere Operationen ausführt, ist es nicht erforderlich, die drei Array-Tasten zu drücken, um die Formeleingabe zu beenden.

Einige Freunde sagten, dass die Formel auch so geschrieben werden kann:

=SUMPRODUCT(C3:C7, D3:D7)
Nach dem Login kopieren

Oder Sie können die folgende Array-Formel verwenden.

=SUMPRODUCT(C3:C7*D3:D7)
Nach dem Login kopieren
Nach dem Login kopieren

Was ist also der Unterschied zwischen diesen drei Formeln?

Zuallererst erfordert die SUMPRODUCT-Funktion in den meisten Fällen nicht die Array-Dreifachtaste, um die Formeleingabe zum Ausführen von Array-Operationen zu beenden, die SUM-Funktion hingegen schon.

Zweitens sprechen wir über ein weiteres sehr wichtiges Merkmal der SUMPRODUCT-Funktion.

Wir haben die obige Tabelle leicht modifiziert und die Verkaufsmenge von „Stiften“ geändert auf: Noch nicht gezählt. Außerdem ist es notwendig, den Gesamtumsatz in Zelle C9 zu berechnen.

Lassen Sie uns über die SUMPRODUCT-Funktion von Excel sprechen

Wenn Sie zu diesem Zeitpunkt die Formel:

=SUM(C3:C7*D3:D7)
Nach dem Login kopieren
Nach dem Login kopieren

oder die Array-Formel:

=SUMPRODUCT(C3:C7*D3:D7)
Nach dem Login kopieren
Nach dem Login kopieren

verwenden, wird der Fehlerwert #VALUE zurückgegeben!

Der Grund, warum der Fehlerwert zurückgegeben wird, ist, dass Zelle D4 „Noch nicht gezählt“ ist ein Textwert. Textwerte können nicht direkt an mathematischen Operationen teilnehmen, daher gibt C4*D4 den Fehlerwert #VALUE! zurück, was dazu führt, dass das Ergebnis der gesamten Formel einen Fehlerwert zurückgibt.

Bei Verwendung der folgenden Formel gibt es kein solches Problem und das korrekte Ergebnis wird direkt zurückgegeben:

=SUMPRODUCT(C3:C7,D3:D7)

Dies ist die zweite Funktion der SUMPRODUCT-Funktion: Konvertieren von Nicht- Numerische Werte in Array-Elementen werden als 0 behandelt.

In diesem Beispiel ist der Wert der Zelle D4 „noch nicht gezählt“ Text und kein numerischer Wert. SUMPRODUCT behandelt ihn aktiv als Null, also ist C4*D4 das Ergebnis ebenfalls Null und die verbleibenden Array-Elemente werden als berechnet üblich, und wir erhalten ein Ergebnis von 11385,60.

Es ist zu beachten, dass SUMPRODUCT nicht numerische Array-Elemente als 0 behandelt. Die sogenannten nicht numerischen Array-Elemente umfassen logische Werte und Text, enthalten jedoch keine Fehlerwerte. Wenn das Array-Element einen Fehlerwert enthält, Die Formeln geben auch falsche Werte zurück, wie beispielsweise die erste Formel in diesem Beispiel.

Nachdem wir über die beiden Funktionen der SUMPRODUCT-Funktion gesprochen haben, sprechen wir über ihre dritte Funktion: Die Array-Parameter müssen die gleiche Größe haben, andernfalls wird ein Fehlerwert zurückgegeben.

Wir verwenden weiterhin das Beispiel im obigen Bild als Beispiel, um weiterhin den Gesamtumsatz des Produkts zu berechnen. Wenn wir die Formel in C9 eingeben:

=SUM(C3:C7*D3:D7)
Nach dem Login kopieren
Nach dem Login kopieren

Was wird das Ergebnis sein?

Fehlerwert: #VALUE!

Warum?

细心的你肯定已经注意到了,两个区域数组,C3:C7明显显比D3:D6多了一个元素,C3和D3结对子,C4和D4结对子……那么C7和谁结对子呢?女人们都嫁了,结果剩下一个光棍,这日子没法过了!一个萝卜一个坑,只有萝卜没有坑,这不是要萝卜死吗?

——于是SUMPRODUCT就不高兴了,它给你一个错误值#VALUE!,明确告诉你,和谐时代幸福岁月,日子不能这么过。

这就是SUMPRODUCT函数的第三个特点:数组参数必须有相同的尺寸,否则返回错误值。

下面是一道练习题,你看看,能用SUMPRODUCT函数做出来吗?

Lassen Sie uns über die SUMPRODUCT-Funktion von Excel sprechen

案例拓展

假设下面这张图,是某个公司工资发放的部分记录表(数据纯属虚拟,如有雷同,那是穿越)。A列是工资发放的时间,B列是员工所属的部门,C列是员工姓名,D列是相关员工领取的工资金额。

Lassen Sie uns über die SUMPRODUCT-Funktion von Excel sprechen

——那么,问题和广告都来了:

1

员工西门庆领取了几次工资?

这是一个单条件计数的问题,通常我们使用COUNTIF函数,但如果使用SUMPRODUCT函数,一般写成这样:

=SUMPRODUCT((C2:C13="西门庆")*1)
Nach dem Login kopieren

先判断C2:C13的值是否等于”西门庆”,相等则返回TRUE,不等则返回FALSE,由此建立一个有逻辑值构成的内存数组。

上文已经说过,SUMPRODUCT有一个特性,它会将非数值型的数组元素作为0处理,逻辑值自然是属于非数值型的数组元素,为了避免SUMPRODUCT函数把逻辑值视为0,造成统计错误,我们使用*1的方式,把逻辑值转化为数值,TRUE转化为1,FALSE转化为0,最后统计求和。

2

员工西门庆领取了多少工资?

这是一个单条件求和的问题,通常我们使用SUMIF函数,如果使用SUMPRODUCT函数,我们可以写成这样:

=SUMPRODUCT((C2:C13="西门庆")*D2:D13)
Nach dem Login kopieren

依然首先判断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="外交部"))
Nach dem Login kopieren

……

第2个问题,统计二月份外交部发放了多少工资?

这是一个常见的多条件求和问题。

如果使用SUMIFS函数,判断发放工资的时间是否属于六月份,也会简单问题复杂化。

SUMPRODUCT跃然而至:

=SUMPRODUCT((MONTH(A2:A13)=6)*(B2:B13="外交部"),D2:D13)
Nach dem Login kopieren

或者:

=SUMPRODUCT((MONTH(A2:A13)=6)*(B2:B13="外交部")*D2:D13)
Nach dem Login kopieren

打个响指,关于这两个形式的SUMPRODUCT函数的区别,咱们上文已有详细说明——你还记得吗?

上面这个公式可以说是SUMPRODUCT多条件求和的典型用法啦,可以归纳为:

=SUMPRODUCT((条件一)*(条件二)……,求和区域)
Nach dem Login kopieren

4

二月份外交部和步兵部合计发放了多少工资?

解决了上面的问题,相信大家已经晓得如何计算二月份外交部发放多少工资了,那么二月份外交部和步兵部合计发了多少工资,又当怎么计算呢

我们经常见有些性格朴素的表亲们把公式写成这样:

=SUMPRODUCT((MONTH(A2:A13)=2)*(B2:B13="外交部")*D2:D13)+SUMPRODUCT((MONTH(A2:A13)=2)*(B2:B13="步兵部")*D2:D13)
Nach dem Login kopieren

这些表亲们估计心想,不就是计算两个部门吗?甭说两个,二十个咱也能算,一个加一个,一直加到二十个,世上无难事,只怕有心人嘛,一砖加一砖,长城就建成了,一泡加一泡,长江就奔流了……

呃……公式写的那么长,先不谈计算速度,首先它累手啊,万一写错了,又要修改,那也是麻烦他妈哭麻烦——麻烦死了。

其实我们可以写成这样:

=SUMPRODUCT((MONTH(A2:A13)=6)*(B2:B13={"外交部","步兵部"})*D2:D13)
Nach dem Login kopieren

5

排名应用

认识了SUMPRODUCT函数在条件计数和求和方面的用法,最后,咱们再来看一个它在排名上的使用方法。

Lassen Sie uns über die SUMPRODUCT-Funktion von Excel sprechen

如上图所示,某个月某个公司某些人领了某些工资,然后呢,他们想看看自己的工资,在部门内的排名情况,比如说步兵部的鲁智深都是老员工了,非常想知道自个工资在各自部门排几号。

当然啦,不排不知道,一排就傻掉。

SUMPRODUCT是这么解决这个问题的,D2输入公式向下复制:

=SUMPRODUCT(($A$2:$A$9=A2)*(C2<$C$2:$C$9))+1
Nach dem Login kopieren

(思考,为什么公式的最后+1,而不是直接写成如下:)

=SUMPRODUCT(($A$2:$A$9=A2)*(C2<=$C$2:$C$9))
Nach dem Login kopieren

结束语

唠唠叨叨说了这么多,眼睛都说酸麻了,是到了该结束的时候啦。

最后,请思考两个小问题:

第1个问题:下面SUMPRODUCT函数有几个参数?

=SUMPRODUCT((MONTH(A2:A13)=6)*(B2:B13="财务部")*D2:D13)
Nach dem Login kopieren

下面这个SUMPRODUCT函数又有几个参数?

=SUMPRODUCT((MONTH(A2:A13)=6)*(B2:B13="财务部"),D2:D13)
Nach dem Login kopieren

第二个问题:

SUMPRODUCT为什么有时候比SUMIF/COUNTIF计算速度慢?

相关学习推荐:excel教程

Das obige ist der detaillierte Inhalt vonLassen Sie uns über die SUMPRODUCT-Funktion von Excel sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:excelhome.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!