Jest to funkcja służąca do tworzenia własnych funkcji. Wcześniej było to możliwe wyłącznie w Menedżerze Nazw (o czym prawie nikt nie wiedział i co ma duże ograniczenia) oraz przy użyciu języka VBA (co jest problematyczne i ryzykowne – na innym komputerze niż nasz, makra VBA mogą być blokowane i funkcja nie zadziała).
Funkcja LAMBDA wygląda podobnie jak poprzednio omawiana LET, w której początkowe parametry to pary zmienna-wartość, a na końcu obliczenie, z tą różnicą, że w LAMBDA parametry początkowe to zmienne wejściowe, bez przypisania wartości. Jak to w uniwersalnej funkcji – dostaje ona na wejściu wartości parametrów dopiero w chwili jej wywołania.
LET(zmienna1; wartość1; zmienna2; wartość2; obliczenie)
LAMBDA(zmienna1; zmienna2; obliczenie)
Parametrów-zmiennych może być do 253. Tylko pierwszy jest wymagany, a funkcją ISOMITTED() możemy w obliczeniu sprawdzić czy podano wartości kolejnych przy wywołaniu.
Prosty (i mało jeszcze użyteczny) przykład, z LET i LAMBDA:
LET(x; A1; x*2)
LAMBDA(x; x*2)
Funkcję LAMBDA możemy więc użyć dla dowolnej wartości parametru x, a nie tylko podanego wewnątrz funkcji, jak w LET.
Jak wywołać taką funkcję i podać jej wartości parametrów?
Pierwszy sposób, nieczęsto używany, to użycie nowej składni formuły specjalnie dodanej na tę okoliczność – w komórce piszemy np.:
=LAMBDA(x;y; x*y)(5;2)
Czyli używamy LAMBDA jak każdą inną funkcję wbudowaną, ale zaraz za nawiasem zamykającym podajemy w nawiasach wartości parametrów – liczby lub adresy komórek lub funkcje, np. =LAMBDA(x;y;z; x*y+z)(2;A1;SUMA(B1:C5))
Składni tej używamy wtedy, gdy chcemy przetestować działanie naszej własnej funkcji (obliczeń zawartych na końcu w LAMBDA), tworzyć ją w kolejnych krokach, oraz wtedy, gdy chcemy mieć czytelną formułę (jak tu, x*y+z – widać doskonale co liczymy), a parametry xyz są bardzo rozbudowane.
Drugi, bardzo już użyteczny sposób używania funkcji LAMBDA, to z użyciem Menedżera Nazw. Służy on do nadawania nazw własnych – najczęściej komórkom i ich zakresom, ale także wartościom stałym (w tym tablicom wartości), oraz formułom – o czym mało kto wiedział. Np. możemy zdefiniować nazwę NrID odwołującą się do formuły =LEWY(C5;6), która wycina 6 początkowych znaków z tekstu i zwraca zawarty w tym tekście na początku identyfikator. Możemy teraz tę funkcję wywołać jej nazwą, pisząc w dowolnej komórce =NrID. Taką formułę z nazwą można kopiować dalej i zadziała dla dowolnej komórki (adresowanie względne w C5). Nie można jednak przekazać do tej nazwy-formuły dowolnego parametru wejściowego – skąd wyciąć te 6 znaków!
Tu z pomocą przychodzi funkcja LAMBDA. Wchodzimy do Menedżera Nazw i tworzymy nazwę NrID odwołującą się do formuły =LAMBDA(s; LEWY(s;6)) i załatwione – mamy własną funkcję z własną nazwą, którą wywołujemy w klasyczny sposób – podając wartość parametru wejściowego w nawiasach =NrId(D6).
Tu już widać wielką siłę LAMBDA – możemy sobie łatwo definiować złożone funkcje i zapamiętywać je nadając własne nazwy, a wszystko to jako formuły w Excelu, bez VBA! Jest to bardzo użyteczne w przypadku powtarzalnych, często długich formuł tekstowych, z szukaniem, wycinaniem, zamianą fragmentów napisów.
Trzeci sposób wywołania funkcji LAMBDA będzie tematem następnego wpisu. Bardzo to będą ciekawe zastosowania w obliczeniach macierzowych i manipulacjach tablicami, gdzie do funkcji tablicowej przekazujemy własną funkcję lambda, która zostanie wykonana na każdym elemencie tablicy. Powerful!