Artikel ini membawakan anda pengetahuan yang berkaitan tentang excel Ia terutamanya memperkenalkan isu berkaitan fungsi SUMPRODUCT Fungsi ini bukan sahaja menyepadukan dua fungsi utama penjumlahan dan pengiraan bersyarat, tetapi juga Ia boleh digunakan untuk pemprosesan kedudukan dalam senario yang kompleks. Mari kita lihat. Saya harap ia akan membantu semua orang.
Cadangan pembelajaran yang berkaitan: tutorial cemerlang
Hari ini saya ingin berkongsi dengan anda fungsi yang sangat biasa digunakan dan praktikal: SUMPRODUCT . Seperti yang kita sedia maklum, penjumlahan dan pengiraan bersyarat ialah dua masalah paling biasa yang dihadapi oleh pengguna jadual, dan fungsi ini bukan sahaja menggabungkan dua fungsi utama penjumlahan dan pengiraan bersyarat, ia juga boleh digunakan untuk pemprosesan kedudukan dalam senario yang kompleks, malah mendengar bahawa Sesetengah orang telah menakluki separuh daripada dunia Excel dengan hanya satu fungsi...jadi mereka perlu mempelajarinya.
Mari lihat sintaks asas terlebih dahulu Penerangan sintaks rasmi SUMPRODUCT adalah untuk menambah elemen yang sepadan antara tatasusunan dalam set tatasusunan dan kembalikan jumlah produk. Format sintaks adalah seperti berikut:
=SUMPRODUCT(array1,array2,array3, …)
- SUM bermaksud penjumlahan, PRODUCT bermaksud pendaraban Parameter didarab dan kemudian dijumlahkan, SUMPRODUCT memang sesuai dengan namanya.
Lihat tangan saya, Wai, Tu, Sri... Kesimpulannya, fungsi SUMPRODUCT mempunyai tiga ciri berikut:
1> Ia sendiri menjalankan operasi tatasusunan secara lalai.
2> Ia akan menganggap elemen tatasusunan bukan angka dalam parameter sebagai 0.
3> Parameter mesti mempunyai saiz yang sama, jika tidak nilai ralat akan dikembalikan.
Selepas membaca resume SUMPRODUCT, pasti ramai rakan sedang melihatnya dalam kabus dan hanya memahaminya dengan jelas Apakah maksud ciri-ciri ini? Apakah jenis kerja yang boleh dilakukannya? Malah, ia tidak jelas.
Petik jari anda dan izinkan saya memberi anda beberapa contoh.
Seperti yang ditunjukkan dalam jadual data di atas, lajur C ialah harga unit produk, dan lajur D ialah kuantiti jualan. Sekarang anda perlu mengira jumlah jualan sel C9.
C9 Masukkan formula berikut untuk mendapatkan hasil 11620.60
=SUMPRODUCT(C3:C7, D3:D7)
Ini adalah fungsi SUMPRODUCT yang mudah. Proses pengendaliannya ialah: darab unsur dalam dua tatasusunan kawasan masing-masing C3:C7 dan D3:D7, iaitu C3*D3, C4*D4, C5*D5... sehingga C7*D7
Ini bermakna mula-mula mengira jumlah jualan setiap produk, dan akhirnya merumuskannya.
Oleh kerana ciri pertama fungsi SUMPRODUCT ialah ia menyokong operasi antara tatasusunan, jadi walaupun formula menjalankan berbilang operasi, tidak perlu menekan kekunci tatasusunan tiga kali ganda
Sesetengah rakan berkata bahawa formula juga boleh ditulis seperti ini:
=SUMPRODUCT(C3:C7*D3:D7)
Atau anda boleh menggunakan formula tatasusunan berikut.
=SUM(C3:C7*D3:D7)
Jadi apakah perbezaan antara ketiga-tiga formula ini?
Pertama sekali, dalam kebanyakan kes, fungsi SUMPRODUCT tidak memerlukan kunci tiga tatasusunan untuk menamatkan input formula untuk melaksanakan operasi tatasusunan, tetapi fungsi SUM memerlukannya.
Kedua, mari kita bercakap tentang satu lagi ciri yang sangat penting bagi fungsi SUMPRODUCT.
......
Kami telah mengubah sedikit jadual di atas dan menukar kuantiti jualan "pen" kepada: Belum dikira. Ia juga perlu untuk mengira jumlah jualan dalam sel C9.
Pada masa ini, jika anda menggunakan formula:
=SUMPRODUCT(C3:C7*D3:D7)
atau formula tatasusunan:
=SUM(C3:C7*D3:D7)
, nilai ralat akan dikembalikan# Sebab mengapa VALUE!
mengembalikan nilai ralat ialah sel D4 "belum dikira" sebagai nilai teks Nilai teks tidak boleh mengambil bahagian secara langsung dalam operasi matematik, jadi C4*. D4 mengembalikan nilai ralat #VALUE!, sekali gus menyebabkan keseluruhan Hasil formula mengembalikan nilai yang salah.
Menggunakan formula berikut tidak akan menyebabkan masalah ini dan akan mengembalikan hasil yang betul secara langsung:
=SUMPRODUCT(C3:C7,D3:D7)
Ini adalah SUMPRODUCT The ciri kedua fungsi: anggap elemen tatasusunan bukan angka sebagai 0.
Dalam contoh ini, nilai "Belum dikira" dalam sel D4 ialah teks, bukan nilai berangka secara aktif menganggapnya sebagai sifar, jadi C4*D4, hasilnya juga sifar, dan tatasusunan yang lain elemen adalah seperti biasa Kira dan dapatkan keputusan 11385.60.
Perlu diambil perhatian bahawa SUMPRODUCT menganggap elemen tatasusunan bukan angka sebagai 0. Unsur tatasusunan bukan angka yang dipanggil termasuk nilai logik dan teks, tetapi tidak mengandungi nilai ralat Jika elemen tatasusunan mengandungi Nilai ralat, formula juga mengembalikan nilai ralat, seperti formula pertama dalam contoh ini.
...
Selepas bercakap tentang dua ciri fungsi SUMPRODUCT, mari kita bercakap tentang ciri ketiganya: parameter tatasusunan mesti mempunyai saiz yang sama, jika tidak, nilai ralat akan dikembalikan.
Kami masih menggunakan contoh dalam gambar di atas sebagai contoh untuk terus mengira jumlah jualan produk. Jika kita masukkan formula dalam C9:
=SUMPRODUCT(C3:C7,D3:D6)
, apakah hasilnya?
Nilai ralat: #VALUE!
Kenapa?
细心的你肯定已经注意到了,两个区域数组,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教程
Atas ialah kandungan terperinci Mari bercakap tentang fungsi SUMPRODUCT Excel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!