Funkcja LAMBDA w Excelu
Spis treści:
Z pewnością zdarzyło Ci się kiedyś, że tworzyłeś tę samą skomplikowaną formułę w Excelu w dziesiątkach komórek, a każda zmiana wymagała od ciebie żmudnego kopiowania lub poprawiania. Tu z pomocą przychodzi funkcja LAMBDA(), która umożliwia nam definiowanie własnych obliczeń jako funkcje, takie jak SUMA() czy ŚREDNIA(), które możemy później wykorzystywać wielokrotnie, zmieniając jedynie przekazywane parametry. Pozwalając nam na tworzenie własnych funkcji, bez znajomości VBA, narzędzie to może w znaczący sposób zwiększyć wydajność naszej pracy oraz pozwolić nam na redukowanie błędów. Należy jednak pamiętać, że jest to nowa funkcja i skorzystać z niej możemy jedynie w wersji Excel 365. Składnia tej funkcji wygląda następująco:
=LAMBDA(parametr1, parametr2, …, obliczenia)
• Parametry to dane wejściowe, które funkcja ma przyjąć (np. liczby, teksty, daty)
• Obliczenia to działanie, jakie funkcja ma wykonać, wykorzystując podane przez nas parametry
Przykład 1 – funkcja LAMBDA()
Wyobraź sobie, że chcesz obliczyć cenę brutto z netto przy stawce 23%. Działając na większej ilości danych, zamiast przekopiowywać obliczenia za każdym razem, możesz użyć funkcji LAMBDA(). Mamy następujące dane:
W kolumnie C wprowadzimy funkcje LAMBDA().
Wprowadziliśmy parametry netto i VAT (nazwa jest dowolna). Następnie wskazujemy jakie obliczenie chcemy wykonać, korzystając z parametrów. W tym przypadku obliczamy cenę brutto z ceny netto. Za pomocą drugiego nawiasu wskazujemy co konkretnie jest naszymi parametrami – komórki B2 i A2. Gdy stworzyliśmy już działającą funkcję LAMBDA() i wytestowaliśmy jej działanie, możemy przygotować własną, czytelną nazwę, którą to potem będzie łatwo wykorzystać w kolejnych arkuszach z danymi.
Aby zdefiniować nazwę dla funkcji LAMBDA() należy przejść do zakładki Formuły > Menadżer nazw.
A następnie wybrać Nowy.
W widocznym oknie widzimy następujące pola do wypełnienia:
- Nazwa – dowolna nazwa funkcji
- Zakres – decydujemy, czy funkcja ma działać jedynie w arkuszu, na którym pracujemy, czy w całym skoroszycie
- Komentarz – opcjonalny, ale zdecydowanie warto opisać do czego ta funkcja może zostać użyta, gdyż gdy wrócimy do skoroszytu po długim czasie, pozwoli nam to natychmiastowo przypomnieć sobie działanie tej funkcji
- Odwołuje się do – pole, w którym wprowadzamy naszą funkcję LAMBDA()
Zauważ, że nie wprowadzamy już drugiego nawiasu, gdyż drugi nawias określa nam już argumenty, które „są do funkcji przekazywane” podczas jej uruchamiania.
Aby funkcję wywołać, używając przygotowanej nazwy, wprowadzamy przygotowaną nazwę funkcji (Excel podpowie nam nazwę), a w nawiasach podajemy argumenty np. odwołując się do komórek z danymi.
Przykład 2 – wykorzystanie innych funkcji w LAMBDA()
Funkcja LAMBDA() ma również możliwość wykorzystywania innych funkcji.
Załóżmy, że firma przyznaje premie pracownikom na podstawie dwóch kryteriów: pracownik otrzyma premię, jeśli jego wynik sprzedaży przekroczył 100 000 zł lub jego wynik mieści się w przedziale 70 000 – 100 000 zł, ale miał więcej niż 15 klientów.
Mamy następujące dane:
Gdy projektowalibyśmy funkcję „klasycznie”, to postawione wytyczne można by uwzględnić projektując funkcję JEŻELI() w połączeniu z LUB() i ORAZ():
Tak przygotowane, zagnieżdżone funkcje mogą być wykorzystane do zbudowania funkcji LAMBDA().
Aby wygodniej z tak przygotowanej funkcji skorzystać, przygotujemy odpowiednią nazwę: otwieramy Menadżer nazw i tworzymy nową funkcję np. CzyPremia.
W polu Odwołuje się do wpisujemy:
=LAMBDA(sprzedaz;klienci;JEŻELI(LUB(sprzedaz>100000;ORAZ(sprzedaz>=70000;sprzedaz<=100000;klienci>15));”TAK”;”NIE”))
Chcąc wywołać funkcję zapisaną pod nazwą „CzyPremia” skorzystamy z zapisu:
=CzyPremia(B2;C2)
Przykład 3 – argumenty opcjonalne
W wielu językach programowania możemy tworzyć funkcje z argumentami domyślnymi, czyli takimi, które zostaną użyte, gdy użytkownik nie poda własnej wartości parametru. Dzięki połączeniu funkcji LAMBDA() z funkcją ISOMITTED(), w Excelu jest to również możliwe. Funkcja ISOMITTED(argument) sprawdza, czy podany argument został pominięty podczas wywoływania funkcji LAMBDA(). Zwraca ona PRAWDA jeśli użytkownik nie podał argumentu i FAŁSZ jeśli argument został przekazany (nawet jeśli jest równy 0 lub jest pusty). Funkcja ta umożliwia nam ustawienie domyślnej wartości argumentu w przypadku, gdy nie jest on ręcznie podawany – nie jest podany jawnie. Pamiętać należy o tym, że argumenty opcjonalne muszą być „przygotowane” w nawiasach kwadratowych [].
Wyobraź sobie, że firma chce wypłacić pracownikom wynagrodzenie za nadgodziny. Standardowa stawka za godzinę wynosi 50 zł, lecz pracownicy np. z wyższym stanowiskiem otrzymują większe wynagrodzenie. Funkcję LAMBDA() będzie można wywołać bez argumentu „stawka”, wówczas do obliczeń użyjemy wartości domyślnej 50zł, gdy argument będzie podany – użyjemy do obliczeń podanej wartości.
W tym celu wykorzystamy funkcję ISOMITTED(), by funkcja LAMBDA() używała domyślnej wartości argumentu, gdy nie podajemy stawki godzinowej. Mamy następujące dane:
Następnie definiujemy nazwę „Wynagrodzenie”, która obliczy nam wynagrodzenie w zależności od tego, czy stawka została podana czy przyjmie wartość domyślną, przy użyciu funkcji LAMBDA() i funkcji ISOMITTED().
Definicja funkcji LAMBDA():
Następnie wykorzystujemy utworzoną funkcję w komórce, wywołując ją z jednym argumentem:
=Wynagrodzenie(B2)
Wywołanie z dwoma argumentami:
=Wynagrodzenie(B2;80)
Jak możemy zauważyć, w przypadku gdy nie podaliśmy wartości argumentu „stawka”, nasza funkcja „Wynagrodzenie” przyjęła wartość domyślną 50. Gdy jednak podaliśmy argument „stawka” jako 80, funkcja wykonała obliczenia dla tej wartości.
Podsumowanie
Funkcja LAMBDA() to zdecydowanie świetne narzędzie, które pozwala nam tworzyć własne, niestandardowe funkcje w Excelu, bez posiadania wiedzy o VBA. Pozwala ona nam upraszczać i uporządkować skomplikowane obliczenia, a także ułatwia ich wielokrotne używanie. Jej nauka z pewnością zwiększy naszą efektywność w pracy z arkuszami.