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.
-
Chú thích
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ƯU Ý: Nếu không có giá trị nào được cung cấp cho initial_value, giá trị đầu tiên trong mảng sẽ được sử dụng làm giá trị bắt đầu.
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: Tạo hàm "PRODUCTIF" tùy chỉnh để chỉ nhân các giá trị lớn hơn 50
Tạo bảng có tên "Bảng_3" với một cột có tên là "số" bắt đầu tại ô 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
Tạo bảng có tên "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)))