Funkcja LET – nareszcie!
Każda Excelowa nowość cieszy nas jak cukierki przeciętnego czterolatka, ale rzadko przeżywamy takie ekscytacje jak z funkcją LET. Od teraz będzie czytelniej, prościej, bardziej zrozumiale…
Zanim zaczniemy technicznie rozpisywać się nad funkcją LET – wyjaśniać co potrafi oraz jak ją zapisać popatrzmy na jeden ze scenariuszy do rozwiązania w Excelu. Wybraliśmy jeden przykład na tapetę, ale na pewno zobaczysz odniesienie do wielu zagadnień wykonywanych w Excelu.
Załóżmy, że mamy w Excelu stworzoną prawdziwą tabelę (czym jest prawdziwa tabela w MS Excel dowiesz się m.in. tutaj.
W tabeli mamy zapisane szczegóły dotyczące daty złożenia zamówienia oraz wysyłki towaru. Przygotowaną mamy również kolumnę, w której chcielibyśmy ocenić pracę działu logistyki odpowiadającego za realizację zamówienia. Przyjmujemy założenie, że zamówienie wysłane w ciągu 3 dni (ocena = super), zamówienie wysłane w przedziale 4-10 dni (ocena = ok), zamówienie wysłane powyżej 11 dni (ocena = do poprawy). Oczywiście rozwiązać takie zadanie można na multum Excelowych sposobów, jednak w przykładzie chcielibyśmy skorzystać z jednej z najbardziej „ogólnych” dróg aby pokazać na prostym przykładzie usprawnienie związane z bohaterem dzisiejszego artykułu – funkcją LET.
W celu oceny działu logistyki potrzebujemy zatem wiedzieć ile dni zajęła wysyłka zamówienia (a więc różnica pomiędzy datą wysyłki a datą złożenia zamówienia) oraz do przedziałów przyporządkować odpowiedni rezultat:
<= 3 dni = super
3 dni oraz <= 10 dni = ok
10 dni = do poprawy
Wykorzystując klasyczne zagnieżdżanie funkcji JEŻELI moglibyśmy zbudować następującą formułę:
=JEŻELI([@[Data wysyłki towaru]]-[@[Data złożenia zamówienia]]+1<=3; “super”;JEŻELI ([@[Data wysyłki towaru]]-[@[Data złożenia zamówienia]]+1<=10;“ok”;”do poprawy”))
Formułą w pierwszej kolejności sprawdza w członie zaznaczonym na czerwono czy różnica między datą złożenia zamówienia a wysyłką towaru jest mniejsza od 3.
Dlaczego dodajemy tutaj + 1? Jeśli znasz rozwiązanie – napisz do nas na biuro@imperiumszkoleniowe.pl a otrzymasz w zamian za rozwiązanie zagadki kod rabatowy na dowolne szkolenie!
W drugiej części formuły (zaznaczona na niebiesko) wykonujemy podobne działanie w Excelu – znów sprawdzamy ile dni minęło do wysłania towaru od zarejestrowania zamówienia, ale tym razem porównujemy z liczbą 10.
Zwróć uwagę, że drugi raz liczymy dokładnie to samo. Nie dość, że musimy zapisać formułę, która jest dość długa to jeszcze zmuszamy Excela do wykonania ponownego obliczenia. O ile Wasze tabelki mają kilkadziesiąt wierszy i nie są zbyt skomplikowane to czasem obliczeń pewne przejmujecie się jak zeszłorocznym śniegiem, ale gdy Wasze arkusze składają się z setek tysięcy wierszy a Wasz Excel „muli” to czas obliczeń staje się dla Was priorytetowy. I tutaj z rozwiązaniem przychodzi nam właśnie funkcja LET.
Jeśli masz doświadczenie w programowaniu to funkcja LET będzie Ci na pewno przypominać, przynajmniej fragmentarycznie po prostu zmienną.
Ahh, gdyby to jeszcze udało nam się zapisać w wielu liniach to byłaby bajka. Póki co jednak (a liczymy, że dzień tej zmiany kiedyś nadejdzie) musimy zapisać formułę jednym ciągiem.
Niestety, żeby nie było tak kolorowo – niekoniecznie uda Ci się z funkcji LET skorzystać w swoim MS Excel. Dostęp do tej funkcji mają Ci, którzy posiadają Office365 (kiedy dokładnie uzyskasz tą funkcję w swoim Office 365 zależy, w którym kanale aktualizacji jesteś uwzględniony oraz czy Twoja organizacja wdraża aktualizacje na bieżąco).
Składnia funkcji LET w MS Excel
Funkcja LET ma następującą składnię:
=LET(Nazwa1;Wartość_nazwy1;Obliczenie_lub_nazwa2;Wartość_nazwy2;Obliczenie_lub_nazwa3…)
Nazwa1 (argument obowiązkowy) – tutaj podajesz przyjazną nazwę, która będzie nadana „temu” co zdefiniujesz w następnym kroku. W naszym przykładzie – wprowadzimy nazwę „liczba_dni”.
Wartość_nazwy1 – skoro już mamy nazwę – możemy teraz przyporządkować do niej jakąś wartość. Wyobraź sobie, że nazwa to coś w rodzaju podpisanego pudełka pod choinką. Jest pudełko, ma nazwę (zdefiniowaną w poprzednim kroku) a wartością nazwy jest to co, w tym pudełku znajdziesz. W naszym przypadku wartością dla nazwy „liczba_dni” będzie obliczenie [@[Data wysyłki towaru]]-[@[Data złożenia zamówienia]]+1
Obliczenie_lub_nazwa1 – tutaj zaczyna nam się trochę sytuacja komplikować. Ten argument możesz zapełnić na dwa sposoby – możesz przypisać do niego rezultat swojej formuły (tak będzie w naszym przypadku) lub możesz przejść do dalszego definiowania nazw, które możesz wykorzystać w swojej formule. Czytaj dalej jeśli chcesz poznać bardziej zaawansowany przykład wykorzystania funkcji LET. W naszej formule argument Obliczenie_lub_nazwa1 będzie miał postać:
JEŻELI(liczba_dni<=3;”super”;JEŻELI(liczba_dni<=10;”ok”;”do poprawy”))
Prawda, że czytelnie 😊?
Wykorzystujemy zatem w zasadniczej części nazwę liczba_dni, która [UWAGA!!] została policzona tylko jeden raz. Zwolniliśmy zatem Excela z konieczności wykonywania takiej czynności dwukrotnie (a przykład jest dość prosty). Cała formuła przybierze zatem postać:
=LET(liczba_dni;[@[Data wysyłki towaru]]-[@[Data złożenia zamówienia]]+1;JEŻELI(liczba_dni<=3;”super”;JEŻELI(liczba_dni<=10;”ok”;”do poprawy”)))
Funkcja LET w MS Excel – dwie oraz więcej nazw
wygląda klarownie gdy do dyspozycji mamy jedną nazwę, gdy jednak chcemy ich utworzyć więcej w ramach jednej formuły Excelowej – musimy zachować czujność.
Załóżmy, że mamy taką tabelkę jak widoczna powyżej. Przechowujemy w niej dane o dacie urodzenia pracownika oraz o dacie jego zatrudnienia. W związku z jubileuszem firmy chcielibyśmy poprosić o napisanie krótkiej refleksji tych pracowników dla działu HR pracowników, którzy w firmie pracują co najmniej 7 lat oraz mają co najmniej 35 lat na karku.
W przykładzie wykorzystamy funkcję DATA.RÓŻNICA, którą omawiamy na szkoleniu Excel – poziom zaawansowany oraz w formule e-learningowej E-learning Excel – poziom zaawansowany.
Oczywiście, podobnie jak w poprzednim przypadku sposobów na rozwiązanie tego zadania jest ogrom, jednak – jako, że zależy nam na wprowadzeniu funkcji LET – możemy zbudować następującą formułę:
=LET(
– lata_pracy;
-DATA.RÓŻNICA([@[Data zatrudnienia]];DZIŚ();”y”);
-wiek;
-DATA.RÓŻNICA([@[Data urodzenia]];DZIŚ();”y”);
-JEŻELI(ORAZ(lata_pracy>=7;wiek>=35);”wysłać ankietę”;”brak wysyłki”))
Analizując kolejno powyższe linijki i przypominając składnie funkcji LET w Excelu:
=LET(Nazwa1;Wartość_nazwy1;Obliczenie_lub_nazwa2;Wartość_nazwy2;Obliczenie_lub_nazwa3…)
– odpowiada argumentowi Nazwa1, a więc definiujemy nazwę „lata_pracy”,
– odpowiada argumentowi Wartość_nazwy1 – przypisujemy zatem do nazwy „lata_pracy” wartość będącą obliczeniem lat pomiędzy data zatrudnienia a datą dzisiejszą,
– odpowiada argumentowi Obliczenie_lub_nazwa2 – tworzymy nową nazwę „wiek”,
– odpowiada argumentowi Wartość_nazwy2 – przypisujemy do tej nazwy różnicę w latach pomiędzy datą urodzenia a datą dzisiejszą
– odpowiada argumentowi Obliczenie_lub_nazwa3 – ponieważ nie występuje żaden element po tym argumencie a dodatkowo wprowadziliśmy do niego formułę – Excel wie, że należy do komórki wpisać wynik obliczenia tego argumentu.
Rezultat ćwiczenia da następujący efekt:
Funkcja LET na pewno będzie stanowić ważny element nauki ale także wykorzystania Excela, zwłaszcza gdy masz do dyspozycji Excela w Office365. Pozwala ona uprościć formułę a także przyspieszyć jej działanie.