Czyli jak działa funkcja LET?
Nowa funkcja w Excelu, dostępna w subskrypcji (Microsoft365), świetnie nadaje się gdy w jednej formule potrzebujemy wielokrotnie użyć tego samego (albo tych samych, kilku) fragmentu formuły. Funkcja ta nazywa ów fragment i pozwala użyć już samej nazwy, a nie wciąż pisać w kółko to samo.
Jej użycie omówię na przykładzie wyodrębniania daty urodzenia z PESELu. Zarówno “nowego” (2000-2099) jak i “starego” (1900-1999).
Tak wygląda formatka z wynikiem:
Jak odczytać datę urodzenia z PESELu?
O dacie urodzenia mówi 6 pierwszych cyfr w PESELu. Dwie pierwsze to końcówka roku, dwie kolejne – miesiąc, dwie kolejne – dzień. Aby jednak odróżnić osoby urodzone w latach 2000-2099 od osób z lat 1900-1999, jest pewna modyfikacja w zapisie miesiąca. W PESELach osób urodzonych w latach 2000-2099, dodaje się liczbę 20 do miesiąca. Czyli np. styczeń to 01+20=21, a listopad to 11+20=31 (TUTAJ możesz doczytać więcej o PESELu).
Technicznie, najważniejsza jest dla nas trzecia cyfra PESELu, czyli pierwsza cyfra miesiąca. Jeśli jest ona większa lub równa 2 – mamy do czynienia z osobą urodzoną w latach 2000-2099. Ta liczba będzie nam więc potrzebna do ustalenia roku i miesiąca urodzenia. Wyodrębnianie jej “zamkniemy” w nazwie, dzięki funkcji LET.
Jak użyć funkcji LET?
Aby zademonstrować Ci jak działa LET, sprawdzimy na początek czy trzecia liczba PESELu jest większa lub równa 2. Na początek tyle. Potem to zmodyfikujemy.
Ważne, abyś wiedziała, że cała formuła musi być zawarta w funkcji LET, jeśli planujemy skorzystać z nazywania poszczególnych jej elementów. Potrzebujemy określić:
- nazwę, którą planujemy używać,
- formułę, którą ta nazwa będzie reprezentować,
- formułę, w której użyjemy nazwy.
Jeśli zatem chcę aby trzecia cyfra PESELu nazywała się Trzecia, i była wyodrębniana za pomocą funkcji FRAGMENT.TEKSTU, a następnie porównana do 2, funkcja przybierze następującą postać:
=LET(Trzecia;--FRAGMENT.TEKSTU(B5;3;1);Trzecia>=2)
Dwa minusy (–) przed FRAGMENTEM.TEKSTU służy do konwersji tekstu na liczbę. Więcej o tym dowiesz się tutaj.
Wynikiem powyższej formuły będzie PRAWDA. Jest to wynik porównania trzeciej liczby (Trzecia) do dwójki. Oczywiście ten sam efekt jestem w stanie osiągnąć bez funkcji LET. Chciałam Ci jednak pokazać na prostym przykładzie jej działanie.
Ustalanie daty urodzenia
Teraz zajmiemy się już konkretami, czyli powoli będziemy ustalać datę urodzenia. Do tworzenia dat świetnie nadaje się funkcja DATA, która potrzebuje od nas 3 danych:
- rok
- miesiąc
- dzień
Na ich podstawie stworzy datę. Dzień najprościej jest ustalić, gdyż są to po prostu 5. i 6. znak z PESELU. Z rokiem i miesiącem jest ciężej. Do roku potrzebujemy dodać 1900 lub 2000 (w zależności od naszej Trzeciej). Od miesiąca zaś będziemy odejmować lub nie liczbę 20. Znów: w zależności od Trzeciej. Do dzieła.
Z pewnością potrzebujemy ustalić Trzecią cyfrę PESELu, aby dwukrotnie ją wykorzystać (rok i miesiąc). Możemy od razu ustalić, czy Trzecia jest większa lub równa 2, czyli w nazwie od razu zawrzeć porównanie.
Tak to wygląda w funkcji LET:
=LET(Trzecia;--FRAGMENT.TEKSTU(B5;3;1)>=2;...)
W jej trzecim argumencie jest miejsce na właściwą formułę. W tej z kolei na pewno znajdzie się funkcja DATA, czyli na razie tak:
=LET(Trzecia;--FRAGMENT.TEKSTU(B5;3;1)>=2;DATA(rok;miesiąc;dzień))
Zacznijmy od najprostszego – od dnia.
Ustalanie dnia urodzenia
Dzień to po prostu 5. i 6. cyfra PESELU, czyli:
FRAGMENT.TEKSTU(B5;5;2)
Wrzucone do funkcji LET i DATA wygląda to tak:
=LET(Trzecia;--FRAGMENT.TEKSTU(B5;3;1)>=2;DATA(rok;miesiąc;FRAGMENT.TEKSTU(B5;5;2)))
DATA umie działać na liczbach przechowywanych w formie tekstu, więc z dniem nic już nie musimy robić.
Jedźmy więc do roku.
Ustalanie miesiąca urodzenia
Jak wspomniałam – miesiąc będą to 3. i 4. cyfra PESELu ewentualnie zmniejszone o 20. Zmniejszamy, jeśli Trzecia jest większa lub równa 2. Możemy to zapisać w ten sposób (drugi argument funkcji DATA):
FRAGMENT.TEKSTU(B5;3;2)-20*Trzecia
W powyższej formule wykorzystałam fakt, że Trzecia jest wartością logiczną, czyli jeśli będzie FAŁSZem, to w mnożeniu przyjmie wartość zero (0). Jeśli zaś będzie PRAWDĄ – przyjmie wartość 1. Więcej o takim wykorzystaniu logiki dowiesz się tutaj.
Po wrzuceniu tego do funkcji LET i DATA, otrzymujemy to:
=LET(Trzecia;--FRAGMENT.TEKSTU(B5;3;1)>=2;DATA(rok;FRAGMENT.TEKSTU(B5;3;2)-20*Trzecia;FRAGMENT.TEKSTU(B5;5;2)))
Podobnie zadziałamy z rokiem.
Ustalanie roku urodzenia
Rok to 1. i 2. cyfra PESELu, powiększone o 1900 lub 2000, w zależności od Trzeciej. Jeśli Trzecia >=2 – dodajemy 2000, w przeciwnym wypadku 1900:
LEWY(B5;2)+JEŻELI(Trzecia;2000;1900)
Całość wygląda tak:
=LET(Trzecia;--FRAGMENT.TEKSTU(B5;3;1)>=2;DATA(LEWY(B5;2)+JEŻELI(Trzecia;2000;1900);FRAGMENT.TEKSTU(B5;3;2)-20*Trzecia;FRAGMENT.TEKSTU(B5;5;2)))
Czyli wszystkie daty urodzenia, po sformatowaniu ich na daty oczywiście, wyglądają tak:
Przydatne? 🙂
Na koniec mam do Ciebie prośbę: pomożesz mi dotrzeć z tym artykułem do szerszego grona? Jeśli zechcesz udostępnić ten artykuł na Facebooku – będę Ci bardzo wdzięczna! Bardzo się starałam, aby ten artykuł był dla Ciebie na tyle wartościowy, by wart był wzmianki ;). Oczywiście śmiało podeślij go innym osobom mailem lub Messengerem. Będzie mi bardzo miło:)
Powiązane produkty
- Zagnieżdżanie funkcji – podczas tej lekcji nauczysz się jak zagnieżdżać funkcje w sposób łatwy i przyjemny. I przede wszystkim: zrozumiały!
- Logika bez funkcji logicznych – podczas tej lekcji nauczysz się korzystać z logiki bez użycia funkcji logicznych (takich jak ORAZ czy LUB). Okazuje się, że często bardzo ułatwia i przyspiesza to naszą pracę. Dodatkowo dowiesz się jak stosować logikę w narzędziach Excela takich jak sprawdzanie poprawności czy formatowanie warunkowe.
- Funkcje dat – excelowy niezbędnik – lekcja omawiająca najważniejsze funkcje dat, które pozwolą Ci w prosty sposób dokonywać obliczeń na datach, bez kombinowania jak koń pod górę.
MalinowyExcel Wyodrębnianie daty urodzenia z PESELu LET DW.xlsx
I film na Youtubie, gdzie pokazuję powyższe rozwiązanie: