จากบทความ การหาผลรวมด้วย SUM() / SUMIF() / SUMIFS() ใน Excel อาจมีบางคนที่ว่า ก็ยังต้องทำงานหลายขั้นตอน ในการหาผลรวมที่มีเงื่อนไขอยู่ดี
แล้วอะไร คือ การทำงาน 2 ขั้นตอนละ 😫😫
รูปที่ 1 แสดงตัวอย่างการทำงาน 2 ขั้นตอน |
การทำงาน 2 ขั้นตอนที่ว่านั้น ก็คือ คุณต้องนำราคา (Price) มาคูณกับจำนวนผลการขาย (Amount) ก่อน ถึงจะหาผลรวมได้นั้นเอง (คุณต้องทำงานที่เป็นตัวเลขสีส้ม คอลัมน์ D) 😨😨 แล้วจะมีวิธีการอะไรที่ลดขั้นตอนการทำงานลงได้บ้างละ
ในบทความนี้ อธิบายวิธีการทำงานที่จะลดขั้นตอนการทำงานตามตัวอย่างข้างบนได้อย่างมีประสิทธิภาพที่เดียว ซึ่งวิธีการนั้น ก็คือ การเขียนฟังก์ชั่น SUMPRODUCT()
SUMPRODUCT() Function
หมายถึง ฟังก์ชั่นที่ใช้ในการหาผลรวม (บวก) ของคอลัมน์ตั้งแต่ 2 คอลัมน์คูณกันไวยากรณ์
=SUMPRODUCT(array1 [array2], [array3], ... )หลักการ
- SUMPRODUCT ต้องการข้อมูลที่เป็น array หรือ Range เช่น เป็นข้อมูลในคอลัมน์
- ถ้ามีมากกว่า 1 คอลัมน์ ข้อมูลนั้น ต้องมีจำนวนแถวเท่ากัน
- เราสามารถเพิ่มความยืดหยุ่น โดยการกำหนดเงื่อนไขในแต่ละคอลัมน์ได้ โดยการกำหนดเงื่อนไข และ ใช้เครื่องหมายคูณ (*) เป็นตัวเชื่อม เงื่อนไขเหล่านั้น
เมื่อคุณรู้ไวยากรณ์ และหลักการของ SUMPRODUCT() แล้ว ปัญหาข้างต้น (ตามรูปที่ 1) เราสามารถลดขั้นตอนการทำงาน จาก 2 ขั้นตอน เหลือเพียง 1 ขั้นตอน ด้วยการเขียนฟังก์ชั่น ดังนี้
=SUMPRODUCT(B2:B6,C2:C6)
คุณ ๆ จะพบว่า ในวงเล็บของฟังก์ชั่นนี้เป็นไปตามหลักการของ SUMPRODUCT คือ มีอากิวเมนต์ 2 ตัว ที่เป็น Array หรือ Range และจำนวนแถวของทั้ง 2 มีจำนวนเท่ากัน นั้นก็คือ B2:B6 และ C2:C6 แต่ถ้าการคำนวณนั้นมีเงื่อนไขเพิ่มเข้ามา เราจะเขียนฟังก์ชั่นนี้อย่างไร
ตัวอย่างที่ 1 ต้องการหาผลรวมของยอดการขายทั้งหมดในตาราง (รูปที่ 1) ยกเว้น Shirt สามารถเขียนได้ ดังนี้
=SUMPRODUCT((A3:A6<>"Shirt")*B3:B6,C3:C6)
คุณ ๆ จะพบว่า เงื่อนไขที่เพิ่มขึ้นมาจะเขียนไว้ข้างหน้า Array หรือ Range และใช้เครื่องหมายคูณ (*) เป็นสัญลักษณ์ในการเชื่อมนั้นเอง
ตัวอย่างที่ 2 ต้องการหาผลรวมยอดการขายทั้งหมดในตาราง (รูปที่ 1) ยกเว้น Shirt และ Skirt สามารถเขียนได้ ดังนี้
=SUMPRODUCT((A3:A6<>"Shirt")*(A3:A6<>"Skirt")*B3:B6,C3:C6)
จากตัวอย่างที่ 2 นี้ มีเงื่อนไข 2 เงื่อนไขเข้ามา เราก็จะใช้เครื่องหมายคูณ (*) เป็นตัวเชื่อมกับเงื่อนไขทั้ง 2 เช่นกัน