สมมุติว่าในตารางมีจำนวนสินค้าและราคาตามนี้ ให้หามูลค่าสินค้าทั้งหมด
สินค้า 1 ชิ้นราคาชิ้นละ 10 บาท
สินค้า 2 ชิ้นราคาชิ้นละ 20 บาท
สินค้า 3 ชิ้นราคาชิ้นละ 30 บาท
สินค้า 4 ชิ้นราคาชิ้นละ 40 บาท
สินค้า 5 ชิ้นราคาชิ้นละ 50 บาท
ถ้าใช้ SumProduct ไม่เป็น ก็ต้องสร้างสูตรแบบนี้ใช่ไหม
=(1x10)+(2x20)+(3x30)+(4x40)+(5x50)
=10+40+90+160+250
รวมกันเท่ากับ 550 บาท
ตัวเลข 550 นี้พูดตามภาษานักคำนวณก็คือ "ยอดรวมของผลคูณ" =SumProduct
Sum แปลว่า รวม
Product แปลว่า คูณ ไม่ได้แปลว่าผลิตภัณฑ์หรอกครับ
สูตร SumProduct ทำหน้าที่ตามชื่อของเขานั่นคือ หายอดรวมของผลคูณ โดยมีโครงสร้างสูตรแรกตามภาพ
👉 =SumProduct( ตารางของจำนวน, ตารางของราคาต่อหน่วย )
สูตรนี้ทำหน้าที่จับจำนวนมาคูณกับราคา ตามลำดับที่ใส่ไว้ในตาราง คูณกันทีละลำดับเสร็จแล้วจึงนำยอดที่คูณกันได้ทั้งหมดมาบวกกัน
🧐 ในวงเล็บของสูตร SumProduct จะใส่พื้นที่ตารางได้เยอะแยะถึง 255 ตาราง โดยต้องใส่เครื่องหมายคอมมา , แยกแต่ละตารางไว้ และมีเงื่อนไขสำคัญกว่าพื้นที่แต่ละตารางต้องมีขนาดเท่ากัน (Same Dimension) เพื่อนำตำแหน่งตัวเลขตามลำดับที่ตรงกันมาใช้
😎 ส่วนใหญ๋ที่สร้างสูตรแล้วพบว่า error มักมาจากใส่พื้นที่ตารางที่มีขนาดไม่เท่ากัน หรือมีบางค่าคูณกันไม่ได้ เช่น บางค่าไม่ใช่เลขแต่เป็นตัวอักษร
🧐 SumProduct สามารถใช้แทนสูตร SumIF หรือ SumIFS หรือแม้แต่ CountIF ก็ยังได้ เช่น
=SumIF( ตารางเก็บรหัส, "a001", ตารางจำนวน )
เปลี่ยนมาเป็น
=SumProduct( (ตารางเก็บรหัส="a001") * ตารางจำนวน ) หรือ
=SumProduct( --(ตารางเก็บรหัส="a001") , ตารางจำนวน )
🧐 ตารางเก็บรหัส="a001" เป็นเงื่อนไขที่ใช้ตรวจสอบตำแหน่งของรหัส a001 ว่าอยู่ตรงไหนตามภาพนี้ ซึ่งจะคืนค่าออกมาเป็น
TRUE
FALSE
TRUE
FALSE
FALSE
พอจับมาคูณกับตารางจำนวน การคูณจะกระตุ้นให้ True = 1 และ False = 0 จากนั้นเมื่อนำมาคูณกับตัวเลข ก็จะเก็บเฉพาะตำแหน่งที่เป็น True ไว้จึงตอบว่า a001 มียอดรวมเท่ากับ 400
TRUE x 100 = 1 x 100 = 100
FALSE x 200 = 0 x 200 = 0
TRUE x 300 = 1 x 300 = 300
FALSE x 400 = 0 x 400 = 0
FALSE x 500 = 0 x 500 = 0
หรือถ้าใช้ลบลบ ก็จะกระตุ้นให้ True = 1 และ False = 0 เช่นกัน เงื่อนไข
- - - (ตารางเก็บรหัส="a001") จะแปลงค่าออกมาเป็น
1
0
1
0
0
😍 ที่พิเศษมากๆ สูตร SumProduct นี้ยังทำหน้าที่เทียบเท่ากับสูตร CountIF ได้ด้วย โดยใช้สูตรตามนี้
=SumProduct( (ตารางเก็บรหัส="a001") * 1 ) หรือ
=SumProduct( --(ตารางเก็บรหัส="a001") )
เพราะ เลข 1 0 1 0 0 ที่ได้จาก True False นั้นพอยกมารวมกันก็จะนับว่าตำแหน่งรายการ a001 มี 2 ตำแหน่งนั่นเอง