Spis treści
W ostatnich kilku artykułach omawialiśmy różne funkcje tekstowe, czyli takie, które służą do manipulowania ciągami tekstowymi. Dziś skupimy się na funkcji PRAWDA, której zadaniem jest zwrócenie określonej liczby znaków z prawej strony ciągu. Podobnie jak inne funkcje tekstowe Excela, PRAWDA jest bardzo prosta i nieskomplikowana, niemniej jednak ma kilka nieoczywistych zastosowań, które mogą okazać się pomocne wswoją pracę.
Składnia funkcji PRAWDA w programie Excel
Funkcja PRAWDA w Excelu zwraca określoną liczbę znaków od końca ciągu tekstowego.
Składnia funkcji PRAWDA jest następująca:
RIGHT(tekst, [num_chars])Gdzie:
- Tekst (wymagane) - ciąg tekstowy, z którego chcemy wyodrębnić znaki.
- Num_chars (opcjonalnie) - ilość znaków do wyodrębnienia, zaczynając od najbardziej prawego znaku.
- Jeśli num_chars jest pominięty, zwracany jest 1 ostatni znak łańcucha (domyślnie).
- Jeśli num_chars jest większa niż całkowita liczba znaków w łańcuchu, zwracane są wszystkie znaki.
- Jeśli num_chars jest liczbą ujemną, formuła Right zwraca błąd #VALUE!
Na przykład, aby wyodrębnić ostatnie 3 znaki z ciągu w komórce A2, użyj tej formuły:
=PRAWDA(A2, 3)
Wynik może wyglądać coś podobnego do tego:
Ważna uwaga! Funkcja PRAWDA w Excelu zawsze zwraca wartość ciąg tekstowy Aby zmusić formułę Right do wyprowadzenia liczby, użyj jej w połączeniu z funkcją VALUE, jak pokazano w tym przykładzie.
Jak używać funkcji PRAWDA w Excelu - przykłady formuł
W rzeczywistych arkuszach kalkulacyjnych funkcja PRAWDA w programie Excel rzadko jest używana samodzielnie. W większości przypadków będziesz jej używać razem z innymi funkcjami programu Excel jako części bardziej złożonych formuł.
Jak uzyskać podciąg, który przychodzi po określonym znaku
W przypadku, gdy chcesz wyodrębnić podłańcuch, który następuje po określonym znaku, użyj funkcji SEARCH lub FIND, aby określić pozycję tego znaku, odjąć pozycję od całkowitej długości łańcucha zwróconej przez funkcję LEN i wyciągnąć tyle znaków z prawej strony oryginalnego łańcucha.
PRAWDA( ciąg , LEN( ciąg ) - SEARCH( znak , ciąg ))Powiedzmy, że komórka A2 zawiera imię i nazwisko oddzielone spacją, a Ty chcesz przeciągnąć to nazwisko do innej komórki. Wystarczy, że skorzystasz z powyższej ogólnej formuły i wstawisz A2 w miejsce ciąg oraz " " (spacja) w tempie postać:
=RIGHT(A2,LEN(A2)-SEARCH(" ",A2))
Wzór da następujący wynik:
W podobny sposób można uzyskać podłańcuch, który występuje po dowolnym innym znaku, np. przecinku, średniku, myślniku itp. Na przykład, aby wyodrębnić podłańcuch, który występuje po myślniku, użyj tej formuły:
=RIGHT(A2,LEN(A2)-SEARCH("-",A2))
Wynik będzie wyglądał podobnie do tego:
Jak wyodrębnić podłańcuch po ostatnim wystąpieniu delimitera
Kiedy mamy do czynienia ze złożonymi łańcuchami, które zawierają kilka wystąpień tego samego delimitera, często może być konieczne pobranie tekstu na prawo od ostatniego wystąpienia delimitera. Aby ułatwić zrozumienie, spójrz na następujące dane źródłowe i pożądany wynik:
Jak widać na powyższym zrzucie ekranu, kolumna A zawiera listę błędów. Twoim celem jest wyciągnięcie opisu błędu, który pojawia się po ostatnim dwukropku w każdym ciągu. Dodatkową komplikacją jest to, że oryginalne ciągi mogą zawierać różne liczby instancji delimitera, np. A3 zawiera 3 dwukropki, podczas gdy A5 tylko jeden.
Kluczem do znalezienia rozwiązania jest określenie pozycji ostatniego delimitera w ciągu źródłowym (ostatnie wystąpienie dwukropka w tym przykładzie). Aby to zrobić, będziesz musiał użyć garści różnych funkcji:
- Uzyskaj liczbę delimitatorów w oryginalnym ciągu, jest to łatwa część:
- Po pierwsze, obliczamy całkowitą długość łańcucha używając funkcji LEN: LEN(A2)
- Po drugie, obliczamy długość ciągu bez ograniczników za pomocą funkcji SUBSTITUTE, która zastępuje wszystkie wystąpienia dwukropka niczym: LEN(SUBSTITUTE(A2,":",""))
- Na koniec odejmujemy długość oryginalnego ciągu bez ograniczników od całkowitej długości ciągu: LEN(A2)-LEN(SUBSTITUTE(A2,":","))
Aby upewnić się, że formuła działa poprawnie, możesz wpisać ją w osobnej komórce, a wynikiem będzie 2, czyli liczba dwukropków w komórce A2.
- Zastąp ostatni delimiter jakimś unikalnym znakiem. Aby wyodrębnić tekst, który pojawia się po ostatnim delimiterze w łańcuchu, musimy w jakiś sposób "oznaczyć" to ostatnie wystąpienie delimitera. W tym celu zastąpmy ostatnie wystąpienie dwukropka znakiem, który nie pojawia się nigdzie w oryginalnych łańcuchach, na przykład znakiem funta (#).
Jeśli znasz składnię funkcji SUBSTITUTE w Excelu, to być może pamiętasz, że posiada ona 4. opcjonalny argument (instance_num), który pozwala zastąpić tylko konkretne wystąpienie podanego znaku. A skoro obliczyliśmy już liczbę delimitatorów w ciągu, to wystarczy dostarczyć powyższą funkcję w czwartym argumencie innej funkcji SUBSTITUTE:
=SUBSTITUTE(A2,":", "#",LEN(A2)-LEN(SUBSTITUTE(A2,":",")))
Gdybyś umieścił tę formułę w osobnej komórce, zwróciłaby ona ten ciąg: ERROR:432#Connection timed out
- Uzyskaj pozycję ostatniego ogranicznika w łańcuchu. W zależności od tego, na jaki znak zastąpiłeś ostatni ogranicznik, użyj SEARCH lub FIND, aby określić pozycję tego znaku w łańcuchu. Zastąpiliśmy ostatni dwukropek znakiem #, więc użyjemy następującej formuły, aby znaleźć jego pozycję:
=SEARCH("#", SUBSTITUTE(A2,":", "#",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))))
W tym przykładzie formuła zwraca 10, czyli pozycję # w zastąpionym łańcuchu.
- Zwróć podłańcuch na prawo od ostatniego ogranicznika. Teraz, gdy znasz pozycję ostatniego ogranicznika w łańcuchu, wszystko co musisz zrobić, to odjąć tę liczbę od całkowitej długości łańcucha i uzyskać funkcję PRAWDA, aby zwrócić tyle znaków od końca oryginalnego łańcucha:
=RIGHT(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2,":","$",LEN(A2)-LEN(SUBSTITUTE(A2,":","")))))
Jak widać na poniższym zrzucie ekranu, formuła działa doskonale:
Jeśli pracujesz z dużym zbiorem danych, w którym różne komórki mogą zawierać różne delimitery, możesz chcieć zamknąć powyższą formułę w funkcji IFERROR, aby zapobiec ewentualnym błędom:
=IFERROR(RIGHT(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2,":","$",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))))), A2)
W przypadku, gdy określony ciąg nie zawiera pojedynczego wystąpienia określonego delimitera, oryginalny ciąg zostanie zwrócony, jak w wierszu 6 na poniższym zrzucie ekranu:
Jak usunąć pierwsze N znaków z ciągu znaków
Oprócz wyodrębniania podłańcucha z końca ciągu znaków, funkcja PRAWDA w Excelu przydaje się w sytuacjach, gdy chcemy usunąć określoną liczbę znaków z początku ciągu.
W zbiorze danych użytym w poprzednim przykładzie, możesz chcieć usunąć słowo "ERROR", które pojawia się na początku każdego łańcucha i pozostawić tylko numer błędu i opis. Aby to zrobić, odejmij liczbę znaków do usunięcia od całkowitej długości łańcucha i podaj tę liczbę do polecenia num_chars argument funkcji PRAWDA w Excelu:
PRAWDA( ciąg , LEN( ciąg )- number_of_chars_to_remove )W tym przykładzie usuwamy pierwsze 6 znaków (5 liter i dwukropek) z ciągu tekstowego w A2, więc nasza formuła przebiega następująco:
=RIGHT(A2, LEN(A2)-6)
Czy funkcja PRAWDA w Excelu może zwrócić liczbę?
Jak wspomniano na początku tego samouczka, funkcja PRAWDA w Excelu zawsze zwraca ciąg tekstowy, nawet jeśli oryginalna wartość jest liczbą. Ale co, jeśli pracujesz z numerycznym zbiorem danych i chcesz, aby dane wyjściowe również były numeryczne? Łatwym obejściem jest zagnieżdżenie formuły PRAWDA w funkcji WARTOŚĆ, która jest specjalnie zaprojektowana do konwersji ciągu reprezentującego liczbę na liczbę.
Na przykład, aby wyciągnąć ostatnie 5 znaków (kod pocztowy) z ciągu w A2 i przekonwertować wyodrębnione znaki na liczbę, użyj tej formuły:
=WARTOŚĆ(RIGHT(A2, 5))
Poniższy zrzut ekranu pokazuje wynik - proszę zauważyć wyrównane do prawej strony liczby w kolumnie B, w przeciwieństwie do wyrównanych do lewej strony ciągów tekstowych w kolumnie A:
Dlaczego funkcja PRAWDA nie działa z datami?
Ponieważ funkcja PRAWDA w Excelu jest przeznaczona do pracy z ciągami tekstowymi, podczas gdy daty są reprezentowane przez liczby w wewnętrznym systemie Excela, formuła PRAWDA nie jest w stanie pobrać pojedynczej części daty, takiej jak dzień, miesiąc lub rok. Jeśli spróbujesz to zrobić, wszystko, co otrzymasz, to kilka ostatnich cyfr liczby reprezentującej datę.
Zakładając, że masz datę 18-Jan-2017 w komórce A1. Gdybyś spróbował wyodrębnić rok za pomocą formuły PRAWDA(A1,4), wynikiem byłoby 2753, czyli ostatnie 4 cyfry liczby 42753, która w systemie Excela reprezentuje 18 stycznia 2017 roku.
"Więc, jak mogę pobrać określoną część daty?", możesz mnie zapytać. Używając jednej z następujących funkcji:
- Funkcja DAY do wyodrębnienia dnia: =DAY(A1)
- Funkcja MONTH do uzyskania miesiąca: =MONTH(A1)
- Funkcja YEAR do wyciągania roku: =YEAR(A1)
Poniższy zrzut ekranu przedstawia wyniki:
Jeśli twój daty są reprezentowane przez ciągi tekstowe , co często ma miejsce, gdy eksportujesz dane z zewnętrznego źródła, nic nie stoi na przeszkodzie, aby użyć funkcji PRAWDA, aby wyciągnąć kilka ostatnich znaków w ciągu, które reprezentują pewną część daty:
Funkcja PRAWDA w Excelu nie działa - przyczyny i rozwiązania
Jeśli formuła Right nie działa poprawnie w Twoim arkuszu, najprawdopodobniej jest to spowodowane jednym z następujących powodów:
- Jest jeden lub więcej spacje poboczne Aby szybko usunąć dodatkowe spacje w komórkach, należy użyć funkcji Excel TRIM lub dodatku Cell Cleaner.
- Na stronie num_chars argumentem jest mniej niż zero Oczywiście, nie chcesz celowo umieszczać w swojej formule liczby ujemnej, ale jeśli num_chars argument jest obliczany przez inną funkcję Excela lub kombinację różnych funkcji, a twoja Formuła prawa zwraca błąd #VALUE!, upewnij się, że sprawdzisz zagnieżdżoną funkcję (funkcje) pod kątem błędów.
- Wartość oryginalna to. data . Jeśli uważnie śledziłeś ten tutorial, to już wiesz, dlaczego funkcja PRAWDA nie może działać z datami. Jeśli ktoś pominął poprzedni rozdział, to pełne szczegóły znajdziesz w Dlaczego funkcja PRAWDA w Excelu nie działa z datami.
W ten sposób używasz funkcji PRAWDA w Excelu. Aby przyjrzeć się bliżej formułom omawianym w tym tutorialu, serdecznie zapraszam do pobrania naszego przykładowego skoroszytu poniżej. Dziękuję za lekturę i mam nadzieję, że zobaczymy się na naszym blogu za tydzień.
Dostępne pliki do pobrania
Funkcja PRAWDA w Excelu - przykłady (plik .xlsx)