=LET(total;SUMA(B2:B6);JEŻELI(total>500;total*0,9;total)) sumuje B2:B6 raz, nazywa wynik total, a potem używa tej nazwy dwa razy: raz do sprawdzenia i raz do zwrócenia. Bez LET musiałbyś wpisać SUMA (SUM) trzy razy: =JEŻELI(SUMA(B2:B6)>500;SUMA(B2:B6)*0,9;SUMA(B2:B6)). LET ma w polskim Excelu tę samą nazwę. Tabela pokazuje formułę po angielsku, =LET(total,SUM(B2:B6),IF(total>500,total*0.9,total)), ale możesz w niej wpisywać formuły także po polsku, ze średnikami.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Amount | Total to pay | |
| 2 | A-101 | 120 | 580.5 | |
| 3 | A-102 | 95 | ||
| 4 | A-103 | 210 | ||
| 5 | A-104 | 80 | ||
| 6 | A-105 | 140 |
=LET(total;SUMA(B2:B6);JEŻELI(total>500;total*0,9;total))Zamówienia sumują się do 645, czyli powyżej 500, więc D2 pokazuje 580,5. Zmień B4 na 50, a suma spadnie do 485, poniżej progu, więc D2 pokaże 485 bez rabatu.
Składnia funkcji LET
=LET(name1, value1, [name2, value2, ...], calculation)
- Każda
nameto wybrane przez ciebie słowo, a po nimvalue, którą oznacza: liczba, zakres albo formuła. - Możesz zdefiniować do 126 par. Wartość może używać każdej nazwy zdefiniowanej przed nią.
- Ostatni argument to
calculation, obliczenie, które używa nazw i daje wynik.
LET wymaga Excela 2021, Excela 2024 albo Microsoft 365. W Excelu 2019 i starszych pokazuje #NAZWA? (po angielsku #NAME?; tabele pokazują angielskie nazwy błędów). Arkusze Google mają LET z tą samą składnią.
LET z kilkoma zmiennymi
Nazwy sprawiają, że formuła dla każdego wiersza czyta się jak zdanie. Tutaj każdy wiersz liczy sumę częściową i odejmuje 10%, gdy przekroczy ona 100:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Item | Price | Qty | To pay |
| 2 | Pen | 2.5 | 10 | 25 |
| 3 | Bag | 40 | 3 | 108 |
| 4 | Lamp | 35 | 2 | 70 |
| 5 | Mug | 8 | 15 | 108 |
| 6 | Desk | 150 | 1 | 135 |
=LET(subtotal;B2*C2;JEŻELI(subtotal>100;subtotal*0,9;subtotal))120 za torby zmienia się w 108, 120 za kubki też w 108, a 150 za biurko w 135; długopisy (25) i lampy (70) zostają bez zmian. Formułę wpisano w D2 i skopiowano w dół, a subtotal oznacza w każdym wierszu inną liczbę.
Nazwa może opierać się na poprzedniej: =LET(x;2;y;x*3;x+y) ustawia x na 2, y na 6 i zwraca 8.
Wyszukiwanie liczone raz i użyte dwa razy
Wyszukiwanie, które pojawia się dwa razy w JEŻELI, działa dwa razy. LET uruchamia je raz. Ta formuła zwraca cenę plus 20% albo komunikat, gdy produktu brakuje:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Product | Region | Price | Look for | Price + 20% | |
| 2 | Apple | North | 1.2 | Pear | 1.8 | |
| 3 | Pear | South | 1.5 | Kiwi | Not found | |
| 4 | Carrot | East | 0.8 | |||
| 5 | Bread | North | 2.4 | |||
| 6 | Milk | South | 1.1 |
=LET(p;X.WYSZUKAJ(E2;A2:A6;C2:C6;"");JEŻELI(p="";"Not found";p*1,2))Pear zostaje znaleziona, więc F2 pokazuje 1,8. Kiwi nie ma na liście, X.WYSZUKAJ (XLOOKUP) zwraca pusty tekst podany jako jej czwarty argument, a F3 pokazuje Not found. Wpisz Kiwi w A4, a F3 zmieni się na jego cenę plus 20%. W polskim Excelu formuła z F2 to =LET(p;X.WYSZUKAJ(E2;A2:A6;C2:C6;"");JEŻELI(p="";"Not found";p*1,2)).
LET z FILTRUJ
LET jest najbardziej przydatna przy tablicach dynamicznych, gdy przefiltrowany zakres jest potrzebny więcej niż raz. Ta formuła nazywa pasujące wiersze, liczy je i uśrednia ich sprzedaż w jednej formule:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Region | North | |
| 2 | Ann | North | 120 | Summary | 3 reps, average 126.7 | |
| 3 | Ben | South | 80 | |||
| 4 | Cara | North | 200 | |||
| 5 | Dan | East | 150 | |||
| 6 | Eve | South | 95 | |||
| 7 | Finn | North | 60 |
=LET(rows;FILTRUJ(A2:C7;B2:B7=F1);n;ILE.WIERSZY(rows);avg;ŚREDNIA(INDEKS(rows;0;3));n&" reps, average "&ZAOKR(avg;1))Dla North pokazuje "3 reps, average 126.7". Wybierz South w F1, a dostaniesz "2 reps, average 87.5". INDEKS(rows;0;3) (INDEX) bierze trzecią kolumnę przefiltrowanych wierszy. Bez LET FILTRUJ (FILTER) trzeba by zapisać dwa razy.
Kalendarz miesiąca z pustymi komórkami
Kalendarz ze strony o SEKWENCJA pokazuje dni sąsiednich miesięcy. LET nazywa pierwszy dzień miesiąca i siatkę dat, a potem czyści każdą datę spoza miesiąca:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Sun | Mon | Tue | Wed | Thu | Fri | Sat |
| 2 | 1 | 2 | 3 | 4 | |||
| 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 4 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 5 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 6 | 26 | 27 | 28 | 29 | 30 |
=LET(start;DATA(2026;4;1);days;SEKWENCJA(6;7;start-DZIEŃ.TYG(start)+1);JEŻELI(MIESIĄC(days)=MIESIĄC(start);days;""))Zmień w formule DATE(2026,4,1) na DATE(2026,5,1) (po polsku DATA(2026;5;1)), a siatka przerysuje się dla maja. Ponieważ pierwszy dzień miesiąca jest nazwany raz, zmieniasz tylko jedną datę, a nie trzy.
Ćwiczenie: wysyłka z LET
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Amount | To pay | |
| 2 | A-101 | 120 | ||
| 3 | A-102 | 95 | ||
| 4 | A-103 | 210 | ||
| 5 | A-104 | 80 | ||
| 6 | A-105 | 140 |
Twoja kolej: W D2 zsumuj kwoty z B2:B6. Jeśli suma jest mniejsza niż 800, dodaj 25 za wysyłkę; w przeciwnym razie zwróć sumę.
Zasady nazw w LET i błędy
Większość błędów LET bierze się z nazw:
- Nazwa musi zaczynać się od litery i nie może zawierać spacji.
unit pricenie działa; użyjunit_pricealbounitPrice. - Nazwa nie może wyglądać jak adres komórki.
a1itax2026to w Excelu adresy komórek (TAX to kolumna), więc LET odrzuca je z błędem #NAZWA?.ratealbotax_2026działają. - Nazwa musi być napisana dokładnie tak samo za każdym razem. Literówka w miejscu użycia daje #NAZWA?, bo Excel szuka funkcji albo nazwanego zakresu o takiej pisowni.
- Ostatni argument musi być obliczeniem.
=LET(x;5)ma nazwę i wartość, ale nic do zwrócenia, więc Excel ją odrzuca. - Nazwy istnieją tylko wewnątrz swojej formuły. Aby użyć obliczenia w wielu komórkach, zapisz je zamiast tego jako nazwaną funkcję LAMBDA.
=LET(a1,5,a1*2) #NAME? (a1 is a cell address)
=LET(rate,8%,100*rate) 8
W polskim Excelu: =LET(a1;5;a1*2) daje #NAZWA?, a =LET(rate;8%;100*rate) daje 8.
Najczęściej zadawane pytania
Co robi funkcja LET w Excelu?
Nadaje nazwy wartościom wewnątrz jednej formuły. =LET(total;SUMA(B2:B6);total*2) liczy SUMA(B2:B6) raz, nazywa to total i zwraca total razy 2. Nazwy istnieją tylko wewnątrz tej formuły.
Jak użyć w LET więcej niż jednej zmiennej?
Dodaj kolejne pary nazwy i wartości przed końcowym obliczeniem: =LET(price;B2;qty;C2;price*qty). Późniejsza wartość może używać wcześniejszej nazwy, jak w =LET(x;2;y;x*3;x+y), które zwraca 8.
Dlaczego moja formuła LET zwraca #NAZWA?
Albo twój Excel nie ma LET (wymaga Excela 2021 albo Microsoft 365), albo nazwa jest źle napisana tam, gdzie jej używasz, albo nazwa jest niedozwolona, na przykład wygląda jak adres komórki, jak a1 albo tax2026, albo zaczyna się od cyfry.
Czy LET przyspiesza formuły Excela?
Może. Bez LET powtórzone wyrażenie, na przykład ta sama X.WYSZUKAJ zapisana dwa razy w JEŻELI, jest liczone za każdym razem, gdy się pojawia. Z LET jest liczone raz, a wynik jest używany ponownie.