ลดอาร์เรย์ให้เป็นค่าสะสมโดยใช้ LAMBDAกับแต่ละค่าและส่งกลับค่าผลรวมในตัวสะสม
ไวยากรณ์
=REDUCE([initial_value], array, lambda(accumulator, value, body))
ไวยากรณ์ของฟังก์ชัน REDUCE มีอาร์กิวเมนต์และพารามิเตอร์ดังนี้:
-
[initial_value] ตั้งค่าเริ่มต้นสําหรับตัวสะสม
-
array อาร์เรย์ที่จะลด
-
lambda LAMBDA ที่ถูกเรียกให้ลดอาร์เรย์ LAMBDA ใช้สามพารามิเตอร์:
-
accumulator ค่าผลรวมและส่งกลับเป็นผลลัพธ์สุดท้าย
-
value ค่าปัจจุบันจากอาร์เรย์
-
ร่าง กาย การคํานวณที่ใช้กับแต่ละองค์ประกอบในอาร์เรย์
-
หมายเหตุ
ใช้อาร์กิวเมนต์ initial_value เพื่อตั้งค่าเริ่มต้นสําหรับพารามิเตอร์ตัวสะสม ในตัวอย่างที่ 2 ที่คุณคูณตัวสะสม ให้ตั้งค่าเป็น 1 เพื่อหลีกเลี่ยงการคูณด้วย 0
ข้อผิดพลาด
การระบุฟังก์ชัน LAMBDA ที่ไม่ถูกต้องหรือจํานวนพารามิเตอร์ไม่ถูกต้องจะส่งกลับ #VALUE! ข้อผิดพลาดที่เรียกว่า "พารามิเตอร์ไม่ถูกต้อง"
ตัวอย่าง
ตัวอย่างที่ 1: รวมค่ายกกําลังสอง
ใส่ข้อมูลตัวอย่างลงในเซลล์ A1:C2 แล้วคัดลอกสูตรลงในเซลล์ D4:
=REDUCE(, A1:C2, LAMBDA(a,b,a+b^2))
ตัวอย่างที่ 2: สร้างฟังก์ชัน "PRODUCTIF" แบบกําหนดเองเพื่อคูณเฉพาะค่าที่มากกว่า 50
Create ตารางที่ชื่อ "Table3" ที่มีหนึ่งคอลัมน์ที่ชื่อว่า "nums" โดยเริ่มต้นที่เซลล์ E1 คัดลอกสูตรต่อไปนี้ลงในเซลล์ G2:
=REDUCE(1,Table3[nums],LAMBDA(a,b,IF(b>50,a*b,a)))
ตัวอย่างที่ 3: นับเฉพาะจำนวนคู่
สร้างตารางที่ชื่อ "Table4" ที่มีหนึ่งคอลัมน์ที่ชื่อว่า "Nums" โดยเริ่มต้นที่เซลล์ D1 คัดลอกสูตรต่อไปนี้ลงในเซลล์ F2:
=REDUCE(0,Table4[Nums],LAMBDA(a,n,IF(ISEVEN(n),1+a, a)))