Jak posortować bazę według nazwiska, gdy mamy kolumnę „Imię i nazwisko”?

W wielu przypadkach podczas projektowania bazy przewidujemy tylko jedno pole na dane osobowe — „Imię i nazwisko”. Zdarza się, że po czasie stoimy przed koniecznością uszeregowania wszystkich rekordów według nazwiska. Artykuł opisuje, jak sprostać temu zadaniu.

Opisywaną sytuację przedstawia poniższy zrzut ekranu (nawiasem mówiąc, do jego przygotowania wykorzystany został minidziennik ucznia).

Okno arkusza kalkulacyjnego pokazujące przykładową bazę danych.

Cała operacja polega na utworzeniu kolumny tymczasowej, w której umieścimy samo nazwisko. Następnie posortujemy według niej całą bazę. Gdy przestanie już być potrzebna, usuniemy ją.

W pierwszej kolejności tworzymy nową kolumnę. Umieszczamy kursor w komórce B1 i wybieramy z menu programu WstawKolumny.

Okno arkusza kalkulacyjnego. Utworzono tymczasową (chwilowo pustą) kolumnę B.

Następnie w komórce B2 wprowadzamy formułę:

=USUŃ.ZBĘDNE.ODSTĘPY(PRAWY(PODSTAW(USUŃ.ZBĘDNE.ODSTĘPY(A2);" ";POWT(" ";100));100))

Przyjrzyjmy się jej działaniu. Dokonuje ona serii przekształceń na tekście zamieszczonym w komórce A2. Najpierw usuwa spacje z jego początku i końca. Pozostałe spacje zastępuje odstępem powtórzonym aż stokrotnie. Wreszcie przy pomocy funkcji PRAWY odczytuje sto znaków z końca otrzymanego tekstu; jest to nazwisko oraz kilkadziesiąt spacji. Na samym końcu ponownie likwiduje zbędne odstępy. Dzięki temu ostatecznym wynikiem jej działania jest samo nazwisko.

Poznaj również inne sposoby na wyodrębnienie ostatniego komponentu z ciągu znaków.

Powyższa formuła jest na tyle ogólna, że poradzi sobie nawet z germańskimi tytułami szlacheckimi (np. Ulryk von Liechtenstein) oraz osobami z dwoma imionami.

Jednak w naszych rodzimych warunkach możemy posłużyć się jej prostszym odpowiednikiem. Ostatecznie kolumna nazywa się „Imię i nazwisko”, więc (zazwyczaj) zawiera wyłącznie imię i nazwisko oddzielone spacją. W takim wypadku do poznania nazwiska wystarczy odczytać fragment tekstu po odstępie. Służy do tego poniższa formuła:

=PRAWY(A2;DŁ(A2)-ZNAJDŹ(" ";A2))

Funkcja PRAWY, z której już korzystaliśmy, zwraca określoną liczbę znaków (drugi argument) z tekstu podanego jako pierwszy argument. Liczbę tę poznajemy przy pomocy dwóch innych funkcji: DŁ zwraca liczbę znaków tekstu podanego jako argument, ZNAJDŹ zaś podaje pozycję (licząc od lewej strony) określonego tekstu w obrębie innego ciągu znaków. Obliczając różnicę tych dwóch liczb, dowiadujemy się, ile znaków znajduje się po odstępie.

Niezależnie od tego, z której formuły skorzystaliśmy, kopiujemy ją do pozostałych komórek w kolumnie tymczasowej.

Okno arkusza kalkulacyjnego. W kolumnie B znajdują się nazwiska z kolumny A.

Następnie wybieramy z menu DaneSortuj; Calc sam powinien rozszerzyć zaznaczenie na całą bazę danych (jeśli tego nie zrobi, należy ręcznie zaznaczyć całą bazę). Pojawi się nowe okno. Wpierw z listy rozwijanej wybieramy kolumnę z samym nazwiskiem i pożądany kierunek sortowania; następnie upewniamy się, że na karcie Opcje zaznaczone jest pole Zakres zawiera etykiety kolumn. Na końcu klikamy OK.

Ponadto możemy sprawdzić, czy na pewno wszystko poszło zgodnie z planem. Ewentualne błędy powinny być widoczne na początku lub na końcu naszej bazy danych. Możemy również zaznaczyć całą kolumnę tymczasową i poszukać spacji; nie powinna ona zostać znaleziona.

Jeżeli wszystko jest w porządku, usuwamy kolumnę tymczasową (klikamy na literę na samej górze prawym przyciskiem i wybieramy z menu Usuń kolumny).

Podobał Ci się ten artykuł? Zapisz się na listę subskrybentów i otrzymuj informacje o następnych

Komentarzy: 1