DSUM และ DGET เป็นกลุ่ม “Database Functions” ใน Excel ที่ใช้ตารางเงื่อนไขแยกต่างหาก (Criteria Range) แทนการเขียนเงื่อนไขในสูตรโดยตรงแบบ SUMIFS หรือ COUNTIFS เหมาะกับตารางข้อมูลขนาดใหญ่ที่มีเงื่อนไขซับซ้อนหลายชั้น เพราะแก้เงื่อนไขได้ง่ายแค่แก้ในตาราง ไม่ต้องไปแก้สูตร
โครงสร้างที่ต้องมีก่อนใช้งาน
ฟังก์ชันกลุ่มนี้ต้องมี 2 ส่วนเสมอ คือ Database (ตารางข้อมูลหลัก มีหัวคอลัมน์) และ Criteria Range (ตารางเงื่อนไขแยกต่างหาก ที่มีหัวคอลัมน์ตรงกับ Database อย่างน้อย 1 คอลัมน์)
DSUM: รวมค่าตามเงื่อนไข
=DSUM(database, field, criteria)
| A | B | C | |
|---|---|---|---|
| 1 | สาขา | สินค้า | ยอดขาย |
| 2 | กรุงเทพ | เสื้อ | 1,200 |
| 3 | เชียงใหม่ | เสื้อ | 800 |
| 4 | กรุงเทพ | กางเกง | 500 |
| 5 | กรุงเทพ | เสื้อ | 950 |
| 6 | เชียงใหม่ | กางเกง | 300 |
| E | F | |
|---|---|---|
| 1 | สาขา | สินค้า |
| 2 | กรุงเทพ | เสื้อ |
=DSUM(A1:C6,"ยอดขาย",E1:F2)สูตรนี้รวมยอดขายเฉพาะแถวที่สาขา = “กรุงเทพ” และสินค้า = “เสื้อ” พร้อมกัน (1,200+950 = 2,150) ถ้าต้องการเปลี่ยนเงื่อนไข แค่แก้ค่าในตาราง Criteria Range ไม่ต้องแก้สูตรเลย
DGET: ดึงค่าเดียวที่ตรงเงื่อนไข
=DGET(database, field, criteria) ทำงานคล้าย DSUM แต่คืนค่าตัวเดียวแทนการรวม เหมาะกับการค้นหาแบบ VLOOKUP ที่มีเงื่อนไขหลายคอลัมน์พร้อมกัน — ข้อควรระวังคือถ้าเงื่อนไขตรงกับมากกว่า 1 แถว DGET จะขึ้น #NUM! ทันที เพราะออกแบบมาให้ใช้กับกรณีที่ผลลัพธ์ต้องมีแค่แถวเดียวเท่านั้น
เมื่อไหร่ควรใช้ Database Functions แทน SUMIFS
- เงื่อนไขเปลี่ยนบ่อยและอยากให้คนอื่นแก้เงื่อนไขได้เองโดยไม่ต้องแตะสูตร (แก้แค่ตาราง Criteria)
- ต้องการใช้เงื่อนไขแบบ OR ร่วมกับ AND ในตารางเดียว (เพิ่มแถวใน Criteria Range เพื่อทำ OR)
- ทำ Dashboard ที่ให้ผู้ใช้พิมพ์เงื่อนไขเองในตาราง Criteria แล้วผลลัพธ์อัปเดตอัตโนมัติ
ข้อควรรู้
- หัวคอลัมน์ใน Criteria Range ต้องสะกดตรงกับหัวคอลัมน์ใน Database เป๊ะๆ ไม่งั้นจะไม่นับเป็นเงื่อนไข
- เว้นบรรทัดว่างอย่างน้อย 1 แถวระหว่าง Database กับ Criteria Range เพื่อไม่ให้ Excel สับสน
- ดูเพิ่มเติมที่ SUM ใน Excel และ Data Validation ใน Excel เพื่อควบคุมค่าที่กรอกใน Criteria Range
สรุป
DSUM และ DGET ใช้ตาราง Criteria Range แยกจากสูตร ทำให้ปรับเงื่อนไขได้ง่ายโดยไม่ต้องแก้สูตร เหมาะกับตารางข้อมูลขนาดใหญ่ที่มีเงื่อนไขซับซ้อนหรือเปลี่ยนบ่อย DSUM ใช้รวมค่า ส่วน DGET ใช้ดึงค่าเดียวที่ตรงเงื่อนไขพอดี