ฟังก์ชัน REDUCE ใน Excel

ฟังก์ชัน 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: ค่าที่ใช้เริ่มต้นเป็น accumulator
  • array: ข้อมูลที่ต้องการลดค่า เช่น {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))
ใช้ฟังก์ชัน REDUCE ใน Excel คำนวณยอดขายทั้งหมดในสัปดาห์
  • เริ่มต้นด้วยค่าเริ่มต้นคือ 0
  • นำค่าในคอลัมน์ B ทีละค่าไปบวกกับ accumulator (a)
  • ทำซ้ำจนกว่าจะครบ
  • ได้ผลรวมรวมเป็นค่าผลลัพธ์เดียว

ผลลัพธ์

ตัวอย่างที่ 1: หาผลรวมของตัวเลขทั้งหมดในรายการ

ตัวอย่างที่ 2: หาผลคูณของจำนวนทั้งหมดในชุดข้อมูล

ต้องการคูณค่าจากทุกแถวในรายการเพื่อหาค่ารวม

หมายเลขค่า
12
23
34
45
56
67

สูตร:

=REDUCE(1, B2:B7, LAMBDA(a, b, a * b))
ใช้ฟังก์ชัน REDUCE ใน Excel หาผลคูณของตัวเลขตามที่กำหนด
  • เริ่มต้นที่ 1 (ค่าคูณเริ่มต้น)
  • คูณค่าใน B2, B3, B4, B5, B6, B7 ทีละค่า
  • ได้ผลลัพธ์สุดท้ายเป็น 5040

ผลลัพธ์

ตัวอย่างที่ 2: หาผลคูณของจำนวนทั้งหมดในชุดข้อมูล

ตัวอย่างที่ 3: รวมความยาวของข้อความทั้งหมด

ต้องการหาความยาวรวมของชื่อพนักงานในแผนก

ชื่อพนักงาน
สมชาย
วรรณา
ธนา
ไตรภพ
ประสพชัย
เกรียงไกร
อมรรัตน์
สัตยา

สูตร:

=REDUCE(0, A2:A9, LAMBDA(a, b, a + LEN(b)))
ใช้ฟังก์ชัน REDUCE ใน Excel คำนวณความยาวรวมของชื่อพนักงาน
  • เริ่มจาก 0
  • ใช้ LEN(b) หาความยาวของแต่ละชื่อ
  • สะสมค่ารวมไว้ใน accumulator (a)
  • ได้ผลลัพธ์เป็นความยาวรวมของชื่อทุกชื่อ

ผลลัพธ์

ตัวอย่างที่ 3: รวมความยาวของข้อความทั้งหมด

ตัวอย่างที่ 4: ใช้ฟังก์ชัน REDUCE ใน Excel หาค่ามากสุดแบบกำหนดเอง

ต้องการหาค่าสูงสุดในรายการแบบไม่ใช้ MAX โดยใช้ตรรกะกำหนดเอง

ค่า
35
42
27
155
100
20
35

สูตร:

=REDUCE(-9999, A2:A8, LAMBDA(a, b, IF(b > a, b, a)))
ใช้ฟังก์ชัน REDUCE ใน Excel หาค่ามากสุดแบบกำหนดเอง
  • เริ่มต้นด้วยค่าต่ำมาก (-9999)
  • ตรวจสอบว่าค่า b > a หรือไม่
  • ถ้าใช่ ให้อัปเดตค่า a เป็น b
  • ทำจนจบ จะได้ค่าสูงสุด

ผลลัพธ์

ตัวอย่างที่ 4: หาค่ามากสุดแบบกำหนดเอง

ตัวอย่างที่ 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)))
ใช้ฟังก์ชัน REDUCE ใน Excel รวมยอดขายที่เกิน 100
  1. เริ่มจาก 0
  2. ถ้า b > 100 ให้รวมกับค่า a เดิม
  3. ถ้าไม่ใช่ ข้ามและใช้ a เดิม

ผลลัพธ์

ตัวอย่างที่ 5: รวมเฉพาะค่าที่มากกว่า 100

หมายเหตุ

  • ฟังก์ชัน REDUCE ใช้ร่วมกับ ฟังก์ชัน LAMBDA ได้ยืดหยุ่นมาก ช่วยให้ควบคุมลอจิกที่ซับซ้อนได้ง่าย
  • ควรระวังการกำหนดค่าตั้งต้นให้เหมาะสมกับการดำเนินการ (เช่น บวกควรเริ่มที่ 0, คูณควรเริ่มที่ 1)
  • ใช้ได้กับสูตรแบบ dynamic array

สรุป

ฟังก์ชัน REDUCE ใน Excel เป็นฟังก์ชันสำหรับการลดชุดข้อมูลให้เหลือผลลัพธ์เดียว โดยใช้ LAMBDA ช่วยกำหนดตรรกะการสะสมค่า ทำให้สร้างสูตรขั้นสูงได้อย่างยืดหยุ่นและง่ายต่อการจัดการข้อมูลที่ซับซ้อน

ข้อมูลอ้างอิง: REDUCE function

แชร์เรื่องนี้