MS Excel – LAMBDA

Trudność: 🔴 (trudne)


Jeśli czujesz, że w MS Excel brakuje jakiejś funkcji, to możesz ją stworzyć nie znając VBA.

Koniecznie zobacz też MS Excel – nazwa obliczeniowa

W tabeli przedstawionej poniżej chcemy zsumować wyłącznie wartości większe od 1000 (zaznaczone dla ułatwienia na zielono). Inaczej pisząc… chcemy zrobić sumę kolumny Przychód… ignorując wartości poniżej 1000 zł.

Pobierz sobie poniższy plik do ćwiczeń:

Jak to zrobić? Możemy (stara szkoła) napisać w wolnej kolumnie formułę =JEŻELI(D5>1000;D5;0) i zsumować jej wyniki, ale możemy też rzucić się na głębszą wodę i wykorzystać funkcję LAMBDA().

Oto kroki:

  • ze wstęgi Formuły wybierz Menedżer nazw (lub skrót Ctrl + F3) (poznaj inne skróty klawiaturowe)
  • w oknie Menedżera kliknij Nowy
  • wymyśl chwytliwą nazwę i wpisz ją do pola Nazwa… np. LiczDuże
  • w polu Odwołuje się do: wpisz: =LAMBDA(komórka; SUMA(JEŻELI(komórka>1000; komórka; 0)))
  • zatwierdź OK i Zamknij

Gotowe.

Jak korzystać z nowej funkcji? To proste. W dowolnej pustej komórce napisz =LiczDuże(D5:D97). Otrzymasz sumę wartości większych od 1000 ze wskazanego obszaru.

Wyjaśnienie działania =LAMBDA(komórka; SUMA(JEŻELI(komórka>1000; komórka; 0)))

  • LAMBDA – definiuje nową funkcję (działającą w całym skoroszycie)
  • komórka – to symboliczne oznaczenie każdej z komórek w podanym obszarze
  • komórka>1000 – LAMBDA weźmie tylko te komórki, które są większe od 1000
  • JEŻELI(komórka>1000; komórka; 0) – jeśli komórka jest większa od 1000, to jej wartość będzie brana do dalszych obliczeń. Jeśli nie (nie jest większa od 1000), to do dalszych obliczeń wzięta będzie wartość 0
  • SUMA – cóż… SUMA sumuje. Co sumuje? Albo wartości komórek albo zera (o tym co jest “podane” do sumowania decyduje JEŻELI
  • LAMBDA(komórka… – oznacza, że takie operacje będą wykonywane na każdej komórce we wskazanym obszarze, aż do wyczerpania obszaru

Czyli co robi funkcja JEŻELI krok po kroku:

  • analizuje pierwszą wartość (394)
  • sprawdza czy jest większa od 1000 (nie jest… więc do funkcji SUMA przekazuje “0”)
  • analizuje drugą wartość (6425)
  • sprawdza czy jest większa od 1000 (jest… więc do funkcji SUMA przekazuje “6425”)
  • analizuje trzecią wartość (400)
  • sprawdza czy jest większa od 1000 (nie jest… więc do funkcji SUMA przekazuje “400”)
  • i tak dalej aż do końca obszaru

Czyli co robi funkcja SUMA krok po kroku:

  • suma “widzi” kolejne liczby: 0; 6425; 400…
  • i bezmyślnie je sumuje

Skąd JEŻELI, SUMA, LAMBDA wiedzą na jakich komórkach działać?

Podajemy tę informację poprzez wskazanie obszaru =LiczDuże(D5:D97).