Jak posortować bazę według nazwiska, gdy mamy kolumnę „Imię i nazwisko”?
- Autor: Mirosław Zalewski
- 2 lipca 2013
- Komentarzy: 1
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).
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 Wstaw → Kolumny.
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.
Następnie wybieramy z menu Dane → Sortuj; 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).
best breakdown insurance