TLDR สรุปสั้นๆ
REDUCE สะสมค่าจาก array โดยใช้การคำนวณที่เรากำหนดเองผ่าน LAMBDA ฟังก์ชัน.
คำอธิบาย
ฟังก์ชัน REDUCE เป็นตัวช่วยที่น่าสนุกในการคำนวณสะสมค่าจาก array โดยผ่าน LAMBDA ฟังก์ชันที่กำหนดเองได้ ช่วยให้เราสามารถปรับกระบวนการสะสมค่าให้ตรงกับความต้องการของเราได้ เช่น การหาผลรวมของเลขยกกำลังสอง จนไปถึงการสร้างฟังก์ชันแบบใหม่ที่ซับซ้อนมากขึ้นได้ง่าย ๆ
มีครั้งแรกในเวอร์ชันไหน
365
รูปแบบคำสั่ง (Syntax)
=REDUCE([initial_value], array, lambda(accumulator, value, body))
Arguments
-
[initial_value] (Optional – any)
ตั้งค่าจุดเริ่มต้นสำหรับค่า accumulator ซึ่งเป็นค่าที่จะเริ่มสะสม -
array (Required – array)
อาร์เรย์ข้อมูลที่ต้องการสะสมค่า สามารถเป็นช่วงของเซลล์หรืออาร์เรย์ที่เรากำหนดเองก็ได้ -
lambda (Required – function)
ฟังก์ชัน LAMBDA ที่ใช้สะสมค่าใน array โดยเราต้องกำหนดการทำงานของ accumulator กับ value.foreach element in array
ตัวอย่างการใช้งาน (Examples)
-
Formula:
Description: รวมผลของเลขยกกำลังสองจากช่วงเซลล์ A1:C2=REDUCE(0, A1:C2, LAMBDA(a, b, a + b^2))
Result:ได้ค่าเป็นเลขรวมของ (a+b^2) ของทุกองค์ประกอบใน A1:C2 -
Formula:
Description: คูณตัวเลขใน Table3[nums] ที่มากกว่า 50=REDUCE(1, Table3[nums], LAMBDA(a, b, IF(b>50, a*b, a)))
Result:ได้ผลการคูณของทุกตัวเลขใน Table3[nums] ที่มีค่ามากกว่า 50 -
Formula:
Description: นับจำนวนค่าที่เป็นเลขคู่ใน Table4[Nums]=REDUCE(0, Table4[Nums], LAMBDA(a, n, IF(ISEVEN(n), 1 + a, a)))
Result:ได้ตัวเลขที่แสดงถึงจำนวนของที่เป็นเลขคู่ที่มีใน Table4[Nums] -
Formula:
Description: รวมค่าของอาร์เรย์ {1, 2, 3, 4}=REDUCE(0, {1, 2, 3, 4}, LAMBDA(a, b, a + b))
Result:10 เพราะเป็นผลรวมของทุกตัวเลขในอาร์เรย์ -
Formula:
Description: บวกทุกค่าที่มากกว่า 2 ในอาร์เรย์ {1, 2, 3, 4, 5}=REDUCE(0, {1, 2, 3, 4, 5}, LAMBDA(a, b, IF(b>2, a + b, a)))
Result:12 เพราะบวกเฉพาะค่าที่มากกว่า 2 คือ 3, 4, และ 5
Tips & Tricks
การใช้ REDUCE ร่วมกับ LAMBDA ทำให้สามารถสร้างฟังก์ชันซับซ้อนขึ้นได้ตามต้องการ ลองใช้ร่วมกับฟังก์ชันอื่นเช่น SORT หรือ FILTER เพื่อการประมวลผลข้อมูลที่ยืดหยุ่นมากขึ้น
ข้อควรระวัง (Cautions)
อย่าลืมว่าฟังก์ชัน LAMBDA ต้องถูกกำหนดให้ถูกต้องพร้อมด้วยจำนวน parameter ที่ถูกต้อง ไม่เช่นนั้นอาจเกิด #VALUE! error ลองตรวจสอบอาร์กิวเมนต์ให้ถี่ถ้วนก่อนใช้งาน
ฟังก์ชันที่เกี่ยวข้อง
References
ขอบคุณที่เข้ามาอ่านนะครับ ❤️
Leave a Reply