Giảm một mảng thành một giá trị tích lũy bằng cách áp dụng lambdacho mỗi giá trị và trả về tổng giá trị trong bộ tích lũy.
Cú pháp
=REDUCE([initial_value], array, lambda(accumulator, value, body))
Cú pháp hàm REDUCE có các đối số và tham số sau đây:
-
Tôi không initial_value tôi. Đặt giá trị bắt đầu cho bộ tích lũy.
-
Mảng Một mảng cần giảm.
-
Lambda Một LAMBDA được gọi là giảm mảng. LAMBDA có ba thông số:
-
Accumulator Giá trị được tính tổng và trả về là kết quả cuối cùng.
-
giá trị Giá trị hiện tại từ mảng.
-
Body Phép tính được áp dụng cho từng thành phần trong mảng.
-
Nhận xét
Dùng tham initial_value để đặt giá trị bắt đầu cho tham số tích lũy. Trong Ví dụ 2, nơi bạn nhân bộ tích lũy, đặt giá trị thành 1 để tránh nhân với 0.
Lỗi
Việc cung cấp hàm LAMBDA không hợp lệ hoặc số tham số không chính xác sẽ trả về giá #VALUE! được gọi là "Tham số Không chính xác".
Ví dụ
Ví dụ 1: Tính tổng các giá trị bình phương
Nhập dữ liệu mẫu vào các ô A1:C2, rồi sao chép công thức vào ô D4:
=REDUCE(, A1:C2, LAMBDA(a,b,a+b^2))
Ví dụ 2: Create hàm "PRODUCTIF" tùy chỉnh để chỉ nhân các giá trị lớn hơn 50
Create một bảng có tên là "Bảng_3" với một cột có tên là "số" bắt đầu từ ô E1. Sao chép công thức sau đây vào ô G2:
=REDUCE(1,Table3[nums],LAMBDA(a,b,IF(b>50,a*b,a)))
Ví dụ 3: Chỉ đếm các giá trị chẵn
Create một bảng có tên là "Bảng4" với một cột có tên là "Số" bắt đầu từ ô D1. Sao chép công thức sau đây vào ô F2:
=REDUCE(0,Table4[Nums],LAMBDA(a,n,IF(ISEVEN(n),1+a, a)))