Thep Excel

REDUCE – วนลูปสรุปผลลัพธ์เดียว

วนลูปคำนวณข้อมูลทั้ง Array จนเหลือค่าเดียว

REDUCE เป็นฟังก์ชัน Helper ที่ทำงานร่วมกับ LAMBDA โดยจะรับค่าเริ่มต้น (Initial Value) และ Array ข้อมูล จากนั้นจะส่งค่าเข้าไปใน LAMBDA ทีละตัวเพื่อคำนวณและนำผลลัพธ์ไปใช้ในรอบถัดไปเรื่อยๆ จนจบข้อมูล

=REDUCE([initial_value], array, lambda)

By ThepExcel AI Agent
30 November 2025

Syntax & Arguments

=REDUCE([initial_value], array, lambda)

Argument Type Required Default Description
initial_value Any Optional 0 ค่าเริ่มต้นที่จะใช้ตั้งต้นในการคำนวณ (Accumulator)
array Range Yes ช่วงข้อมูลที่ต้องการนำมาวนลูป
lambda Function Yes ฟังก์ชัน LAMBDA ที่รับค่า 2 ตัวแปร (accumulator, current_value) ไปคำนวณ

How it works

รวมข้อความแบบมีเงื่อนไข

รวมชื่อพนักงานเฉพาะแผนก IT คั่นด้วยคอมม่า (ซึ่ง TEXTJOIN ทำเงื่อนไขซับซ้อนได้ยาก)

คำนวณยอดคงเหลือสะสม

คำนวณเงินคงเหลือโดยนำยอดรายรับ-รายจ่ายมาบวกลบสะสมไปเรื่อยๆ

แทนที่คำหลายคำพร้อมกัน

ใช้ REDUCE วนลูป SUBSTITUTE เพื่อเปลี่ยนคำผิดหลายๆ คำให้ถูกต้องในครั้งเดียว

Examples

ตัวอย่างที่ 1: ผลรวมสะสม (Sum)

เริ่มที่ 0 แล้ววนลูปนำค่าใน Values (val) มาบวกเพิ่มเข้าไปใน acc ทีละตัว (เหมือนฟังก์ชัน SUM)
Excel Formula:

=REDUCE(0, Values, LAMBDA(acc, val, acc + val))

Result:

15

ตัวอย่างที่ 2: รวมข้อความมีเงื่อนไข

รวมเฉพาะตัวเลขที่มากกว่า 10 มาต่อกันเป็นข้อความ
Excel Formula:

=REDUCE("", Values, LAMBDA(acc, val, IF(val>10, acc & val & ", ", acc)))

Result:

12, 15, 20,

ตัวอย่างที่ 3: เปลี่ยนหลายคำพร้อมกัน

วนลูปเปลี่ยนคำว่า "Old" เป็น "New" และ "Text" เป็น "New" ในข้อความตั้งต้น
Excel Formula:

=REDUCE("Old Text", {"Old","Text"}, LAMBDA(txt, word, SUBSTITUTE(txt, word, "New")))

Result:

New New

FAQs

REDUCE ต่างจาก SCAN อย่างไร?

REDUCE คืนค่า “ผลลัพธ์สุดท้าย” เพียงค่าเดียว ส่วน SCAN คืนค่า “ผลลัพธ์สะสมในแต่ละขั้นตอน” ออกมาเป็น Array

ถ้าไม่ใส่ Initial Value จะเป็นอย่างไร?

Excel จะใช้ค่าแรกของ Array เป็นค่าเริ่มต้น และเริ่มวนลูปที่ค่าที่ 2 แทน (ระวังเรื่อง Data Type ที่อาจไม่ตรงกัน)

Resources & Related

Additional Notes

ฟังก์ชัน REDUCE ใช้สำหรับวนลูป (Loop) ข้อมูลใน Array เพื่อนำค่ามาคำนวณสะสมไปเรื่อยๆ (Accumulate) จนเหลือผลลัพธ์สุดท้ายเพียงค่าเดียว เหมาะสำหรับงานที่ซับซ้อนซึ่งสูตรปกติทำได้ยาก เช่น การรวมข้อความ หรือการคำนวณแบบมีเงื่อนไขสะสม

Leave a Reply

Your email address will not be published. Required fields are marked *