Menu

Funkcja LET w Excelu: nazwy dla części formuły

=LET(total;SUMA(B2:B6);JEŻELI(total>500;total*0,9;total)) liczy sumę raz, nazywa ją total i używa tej nazwy dwa razy. LET skraca długie formuły, ułatwia ich czytanie i przyspiesza je, bo każda nazwana część liczy się tylko raz.

Każdy arkusz na tej stronie działa na żywo: zmień liczbę albo formułę, a się przeliczy.

=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.

10% rabatu dla zamówień powyżej 500
D2
ABCD
1OrderAmountTotal to pay
2A-101120580.5
3A-10295
4A-103210
5A-10480
6A-105140
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =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 name to wybrane przez ciebie słowo, a po nim value, 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:

Rabat dla każdej pozycji
D2
ABCD
1ItemPriceQtyTo pay
2Pen2.51025
3Bag403108
4Lamp35270
5Mug815108
6Desk1501135
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =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:

Wyszukaj raz, użyj dwa razy
F2
ABCDEF
1ProductRegionPriceLook forPrice + 20%
2AppleNorth1.2Pear1.8
3PearSouth1.5KiwiNot found
4CarrotEast0.8
5BreadNorth2.4
6MilkSouth1.1
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =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:

Podsumowanie jednego regionu
F2
ABCDEF
1NameRegionSalesRegionNorth
2AnnNorth120Summary3 reps, average 126.7
3BenSouth80
4CaraNorth200
5DanEast150
6EveSouth95
7FinnNorth60
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =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:

Kwiecień 2026, inne miesiące puste
A2
ABCDEFG
1SunMonTueWedThuFriSat
21234
3567891011
412131415161718
519202122232425
62627282930
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =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

Twoja kolej
D2
ABCD
1OrderAmountTo pay
2A-101120
3A-10295
4A-103210
5A-10480
6A-105140
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.

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 price nie działa; użyj unit_price albo unitPrice.
  • Nazwa nie może wyglądać jak adres komórki. a1 i tax2026 to w Excelu adresy komórek (TAX to kolumna), więc LET odrzuca je z błędem #NAZWA?. rate albo tax_2026 dział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.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ