ฟังก์ชัน REDUCE ใน Excel เป็นฟังก์ชันในกลุ่ม Lambda helper functions ที่ใช้ลด (reduce) ชุดข้อมูลให้กลายเป็นค่าผลลัพธ์เพียงค่าเดียว โดยอาศัยฟังก์ชันแบบกำหนดเอง (LAMBDA) ในการระบุวิธีลดค่าทีละรายการในอาร์เรย์
ฟังก์ชันนี้มีประโยชน์เมื่อเราต้องการสร้างการคำนวณที่ซับซ้อน เช่น การรวมค่าตามลอจิกพิเศษ การหาผลลัพธ์สะสม หรือการเปลี่ยนค่าทีละขั้นอย่างมีเงื่อนไข โดยไม่ต้องเขียนสูตรซ้ำซ้อนหลายบรรทัด
ประโยชน์ของฟังก์ชัน REDUCE ใน Excel
- สรุปค่าหลายรายการให้เหลือเพียงค่าผลลัพธ์เดียว
- ใช้ลอจิกเฉพาะในการคำนวณซ้ำได้อย่างยืดหยุ่น
- ลดความซับซ้อนในการใช้สูตร ARRAY ซ้อนหลายระดับ
- ทำงานร่วมกับฟังก์ชัน LAMBDA, MAKEARRAY, MAP และ SCAN ได้อย่างมีประสิทธิภาพ
รูปแบบการใช้งาน (Syntax)
REDUCE([initial_value], array, lambda(accumulator, value))
อาร์กิวเมนต์ที่ใช้ในฟังก์ชัน REDUCE มีดังนี้:
initial_value: ค่าที่ใช้เริ่มต้นเป็น accumulatorarray: ข้อมูลที่ต้องการลดค่า เช่น {1,2,3}lambda: ฟังก์ชันที่กำหนดวิธีการสะสมค่าจากรายการในอาร์เรย์accumulator: ผลสะสมปัจจุบันvalue: ค่าปัจจุบันที่กำลังพิจารณา
ตัวอย่างการประยุกต์ใช้งานฟังก์ชัน REDUCE ใน Excel
ตัวอย่างที่ 1: หาผลรวมของตัวเลขทั้งหมดในรายการ
สมมติมีรายการยอดขายต่อวัน ต้องการรวมยอดรวมทั้งสัปดาห์
| วัน | ยอดขาย (บาท) |
|---|---|
| จันทร์ | 500 |
| อังคาร | 600 |
| พุธ | 400 |
| พฤหัสบดี | 700 |
| ศุกร์ | 300 |
| เสาร์ | 455 |
| อาทิตย์ | 999 |
สูตร:
=REDUCE(0, B2:B8, LAMBDA(a, b, a + b))

- เริ่มต้นด้วยค่าเริ่มต้นคือ 0
- นำค่าในคอลัมน์ B ทีละค่าไปบวกกับ accumulator (a)
- ทำซ้ำจนกว่าจะครบ
- ได้ผลรวมรวมเป็นค่าผลลัพธ์เดียว
ผลลัพธ์

ตัวอย่างที่ 2: หาผลคูณของจำนวนทั้งหมดในชุดข้อมูล
ต้องการคูณค่าจากทุกแถวในรายการเพื่อหาค่ารวม
| หมายเลข | ค่า |
| 1 | 2 |
| 2 | 3 |
| 3 | 4 |
| 4 | 5 |
| 5 | 6 |
| 6 | 7 |
สูตร:
=REDUCE(1, B2:B7, LAMBDA(a, b, a * b))

- เริ่มต้นที่ 1 (ค่าคูณเริ่มต้น)
- คูณค่าใน B2, B3, B4, B5, B6, B7 ทีละค่า
- ได้ผลลัพธ์สุดท้ายเป็น 5040
ผลลัพธ์

ตัวอย่างที่ 3: รวมความยาวของข้อความทั้งหมด
ต้องการหาความยาวรวมของชื่อพนักงานในแผนก
| ชื่อพนักงาน |
| สมชาย |
| วรรณา |
| ธนา |
| ไตรภพ |
| ประสพชัย |
| เกรียงไกร |
| อมรรัตน์ |
| สัตยา |
สูตร:
=REDUCE(0, A2:A9, LAMBDA(a, b, a + LEN(b)))

- เริ่มจาก 0
- ใช้ LEN(b) หาความยาวของแต่ละชื่อ
- สะสมค่ารวมไว้ใน accumulator (a)
- ได้ผลลัพธ์เป็นความยาวรวมของชื่อทุกชื่อ
ผลลัพธ์

ตัวอย่างที่ 4: ใช้ฟังก์ชัน REDUCE ใน Excel หาค่ามากสุดแบบกำหนดเอง
ต้องการหาค่าสูงสุดในรายการแบบไม่ใช้ MAX โดยใช้ตรรกะกำหนดเอง
| ค่า |
| 35 |
| 42 |
| 27 |
| 155 |
| 100 |
| 20 |
| 35 |
สูตร:
=REDUCE(-9999, A2:A8, LAMBDA(a, b, IF(b > a, b, a)))

- เริ่มต้นด้วยค่าต่ำมาก (-9999)
- ตรวจสอบว่าค่า b > a หรือไม่
- ถ้าใช่ ให้อัปเดตค่า a เป็น b
- ทำจนจบ จะได้ค่าสูงสุด
ผลลัพธ์

ตัวอย่างที่ 5: รวมเฉพาะค่าที่มากกว่า 100
สมมติต้องการรวมยอดเฉพาะวันที่ยอดขายเกิน 100 บาทเท่านั้น
| วันที่ | ยอดขาย |
| 1 มิ.ย. | 80 |
| 2 มิ.ย. | 120 |
| 3 มิ.ย. | 200 |
| 4 มิ.ย. | 99 |
| 5 มิ.ย. | 130 |
| 6 มิ.ย. | 145 |
| 7 มิ.ย. | 90 |
| 8 มิ.ย. | 234 |
สูตร:
=REDUCE(0, B2:B9, LAMBDA(a, b, IF(b>100, a+b, a)))

- เริ่มจาก 0
- ถ้า b > 100 ให้รวมกับค่า a เดิม
- ถ้าไม่ใช่ ข้ามและใช้ a เดิม
ผลลัพธ์

หมายเหตุ
- ฟังก์ชัน REDUCE ใช้ร่วมกับ ฟังก์ชัน LAMBDA ได้ยืดหยุ่นมาก ช่วยให้ควบคุมลอจิกที่ซับซ้อนได้ง่าย
- ควรระวังการกำหนดค่าตั้งต้นให้เหมาะสมกับการดำเนินการ (เช่น บวกควรเริ่มที่ 0, คูณควรเริ่มที่ 1)
- ใช้ได้กับสูตรแบบ dynamic array
สรุป
ฟังก์ชัน REDUCE ใน Excel เป็นฟังก์ชันสำหรับการลดชุดข้อมูลให้เหลือผลลัพธ์เดียว โดยใช้ LAMBDA ช่วยกำหนดตรรกะการสะสมค่า ทำให้สร้างสูตรขั้นสูงได้อย่างยืดหยุ่นและง่ายต่อการจัดการข้อมูลที่ซับซ้อน
ข้อมูลอ้างอิง: REDUCE function
