Funkcja REDUCE pozwala przetwarzać wiele elementów danych i sprowadzać je do jednego wyniku końcowego. To właśnie dlatego jej nazwa bardzo dobrze oddaje sens działania: Excel bierze całą tablicę, przechodzi po niej krok po kroku i za każdym razem aktualizuje jeden wspólny rezultat.
Jeżeli SCAN pokazuje wszystkie etapy pośrednie, to REDUCE idzie o krok dalej i zwraca już tylko efekt końcowy. Dzięki temu świetnie nadaje się do zadań, w których nie interesuje Cię cała droga obliczeń, tylko ostateczna odpowiedź.
To podejście jest bardzo zbliżone do programowania funkcyjnego. Excel nie wykonuje tu pojedynczego prostego działania na jednym zakresie, lecz buduje mały mechanizm przetwarzania. Dla każdej kolejnej wartości uruchamia tę samą logikę i aktualizuje akumulator, czyli wynik przechowywany pomiędzy krokami.
Właśnie w tym miejscu pojawia się funkcja LAMBDA. LAMBDA pozwala tworzyć własną logikę działania bez VBA. Możesz w niej zdefiniować nazwy argumentów, opisać zależność między poprzednim wynikiem a nową wartością i zamknąć cały mechanizm w jednej formule.
W praktyce LAMBDA przyjmuje zwykle dwa argumenty robocze: poprzedni wynik i bieżący element. Następnie wykonuje działanie i zwraca nowy wynik. REDUCE powtarza ten proces aż do końca zakresu, ale na końcu pokazuje tylko jedną wartość.
To bardzo ważna różnica względem SCAN. SCAN rozlewa wyniki po kolejnych komórkach, a REDUCE zwraca jedną końcową odpowiedź. Z tego powodu REDUCE nie jest funkcją rozlewającą się w sensie wyniku końcowego, ale nadal pracuje na tablicach i bardzo dobrze wpisuje się w nowoczesny, dynamiczny sposób budowania formuł w Excelu 365.

REDUCE sprawdza się wszędzie tam, gdzie chcesz zredukować wiele danych do jednej odpowiedzi.
Możesz użyć tej funkcji do:
Funkcja REDUCE bardzo dobrze współpracuje z wieloma funkcjami jak JEŻELI, LET, PODZIEL.TEKST, ZŁĄCZ.TEKSTY, MAX, MIN, MAP i oczywiście z LAMBDA i wiele innych.
Jeżeli pracujesz na Excelu dla Microsoft 365, REDUCE jest jedną z tych funkcji, które pokazują, jak bardzo Excel odszedł od prostego modelu „jedna komórka = jedno obliczenie”.
Składnia
=REDUCE([wartość_początkowa];tablica;LAMBDA(akumulator;wartość;obliczenie))
Argumenty funkcji
Jak działa funkcja REDUCE?
REDUCE działa iteracyjnie:
Najważniejsze: REDUCE nie pokazuje wyników pośrednich. Zwraca tylko rezultat końcowy.

Formuła
=REDUCE(0;A4:A12;LAMBDA(suma;wartość;suma+wartość))
Krok po kroku

Formuła
=REDUCE(0;A4:A8;LAMBDA(suma;wartość;JEŻELI(wartość>0;suma+wartość;suma)))
Krok po kroku

Formuła
=REDUCE(0;A4:A10;LAMBDA(licznik;wartość;JEŻELI(wartość>=100;licznik+1;licznik)))
Krok po kroku

Formuła
=LET(
tekst;A4;
wyrazy;PODZIEL.TEKST(tekst;" ");
REDUCE("";wyrazy;LAMBDA(wynik;wyraz;JEŻELI(wynik="";LITERY.WIELKIE(LEWY(wyraz;1))&LITERY.MAŁE(FRAGMENT.TEKSTU(wyraz;2;99));wynik&" "&LITERY.MAŁE(wyraz))))&".")
Zadanie z gwiazdką 😊
Krok po kroku
REDUCE to funkcja, która bierze wiele elementów i zamienia je w jeden wynik końcowy. Właśnie dlatego świetnie nadaje się do sumowania, mnożenia, zliczania, filtrowania logiki oraz budowania jednego tekstu z wielu części.
Największa siła REDUCE polega na tym, że pozwala samodzielnie zdefiniować sposób agregacji danych. Nie jesteś ograniczony do gotowych funkcji typu SUMA czy ILOCZYN. Możesz zbudować własną regułę działania i zamknąć ją w jednej formule.
REDUCE bardzo dobrze współpracuje z LAMBDA, JEŻELI, LET, PODZIEL.TEKST, LEWY, FRAGMENT.TEKSTU i funkcjami zmiany wielkości liter. To właśnie w takich połączeniach pokazuje pełnię możliwości.
Funkcja działa wyłącznie w Excelu dla Microsoft 365. Nie znajdziesz jej w wersjach Excela do 2021. Jeżeli więc ktoś otworzy taki arkusz w starszej wersji, REDUCE nie będzie dostępna. Excel bywa wyrozumiały, ale nie aż tak.
W praktyce warto używać REDUCE wtedy, gdy chcesz przejść po tablicy danych i otrzymać jedną końcową odpowiedź. Jeżeli zależy Ci na wszystkich etapach pośrednich, wtedy lepszym wyborem będzie SCAN. Jeżeli chcesz tylko wynik końcowy, REDUCE jest dokładnie na swoim miejscu.