Pozycja pierwszej wartości nieliczbowej w ciągu znaków

Autor: Piotr Dynia
Możemy napotkać zestawienia, w których dane liczbowe są wprowadzone do jednej komórki razem z tekstem. Taki sposób wpisania kwot uniemożliwia jakąkolwiek analizę i oba rodzaje wartości trzeba rozdzielić. Niekiedy uda się to zrobić za pomocą Kreatora konwersji tekstu na kolumny, ale dane muszą mieć jednakową strukturę. Jeżeli tak nie jest, pozostaje tworzenie formuły.
Opiera się ona bardzo często na funkcjach PRAWY lub LEWY, które wymagają podania liczby znaków, jakie należy odciąć z lewej bądź prawej strony ciągu tekstowego. To właśnie wyznaczenie tej liczby jest najbardziej kłopotliwe przy takich zadaniach.
Rysunek 1. Uniwersalna formuła
Na rysunku 1 pokazane jest, w jaki sposób wyznaczać pozycję pierwszego znaku, który nie jest cyfrą.
 
W komórce B4 zastosowaliśmy dość skomplikowaną formułę:
=PODAJ.POZYCJĘ(PRAWDA;CZY.BŁĄD(WARTOŚĆ(FRAGMENT.TEKSTU(A4;WIERSZ(ADR.POŚR("1:"&DŁ(A4)));1)));0)
Należy ją zatwierdzać tablicowo kombinacją 3 klawiszy: [Ctrl]+[Shift]+[Enter].
Wyjaśnienie działania formuły:
Fragment formuły rozpoczynający się od funkcji FRAGMENT.TEKSTU ma za zadanie sprawdzić, z ilu znaków składa się ciąg tekstowy, a następnie potraktowanie każdego znaku jako odrębnego elementu tablicy.
Funkcja WARTOŚĆ rozróżnia, czy element jest liczbą, czy nie i na tej podstawie tworzona jest tablica wartości logicznych PRAWDA oraz FAŁSZ. Zadaniem funkcji PODAJ.POZYCJĘ jest określenie pozycji pierwszej wartości PRAWDA.

Wyznaczanie lat przestępnych

W arkuszu mamy kolumnę zawierającą same lata. Chcemy szybko sprawdzić, który rok był przestępnym, a który nie. Jakiej funkcji użyć, aby to szybko zrobić? Nie można niestety skorzystać z domyślnie dostępnych funkcji Excela. Konieczne jest zbudowanie odpowiedniej formuły. Na wstępie jednak przypomnimy krótką charakterystykę roku przestępnego: latami przestępnymi są wszystkie lata określające wiek, podzielne bez reszty przez 400 oraz wszystkie pozostałe podzielne bez reszty przez 4.
Aby sprawdzić, czy rok wpisany w komórce A1 jest przestępny, wykonajmy następujące czynności:
  1. Do komórki B1 wstawmy następującą formułę:
 
=JEŻELI(MOD(A1;400)=0;"";JEŻELI(MOD(A1;100)=0;"nie";JEŻELI(MOD(A1;4)=0;"";"nie")))&"przestępny"
  1. Skopiujmy ją do komórek poniżej.
Odpowiedź uzyskamy w mgnieniu oka.
Rysunek 1. Działanie formuły w arkuszu
Przedstawiona formuła ma tę zaletę, że można ją stosować dla każdej daty, bez konieczności uwzględnienia ograniczenia Excela od roku 1900.


Piotr Dynia


Tagi: excel

Zaloguj się, aby dodać komentarz

Nie masz konta? Zarejestruj się »

Zobacz także

Skuteczne narzędzia do wykrywania uszkodzonych podzespołów

pobierz

Wykrywanie i usuwanie niechcianych programów

pobierz

Polecane artykuły

Array ( [docId] => 49916 )

Array ( [docId] => 49916 )
Array ( [docId] => 49916 )