Liczba wyrażona słownie.

Uwaga: przeglądasz tę stronę na urządzeniu o niewielkim ekranie (szerokość < 640px). Niektóre zamieszczone w artykule ilustracje i animacje mogą stać się nieczytelne po dopasowaniu ich do rozdzielczości tego ekranu.

Yestok.pl

Jerzy Moruś

© Wszystkie prawa zastrzeżone. Wykorzystanie całości serwisu lub jego fragmentów bez pisemnej zgody autora zabronione.

Zamiana wartości liczbowej na wartość słownie w Calcu.



Opracowanie powstało w oparciu o wersję programu istniejącą w trakcie jego pisania, Libre Office: 3.4.5, Apache OpenOffice: 3.3.0.


Jedną z niedogodności arkuszy kalkulacyjnych, w tym także Calca, jest brak funkcji pozwalającej przekształcić wartość liczbową na wartość podaną słownie. Choć nie można powiedzieć, jest funkcja BAHTEXT() zamieniająca wartość liczbową na słowną, tyle że w języku tajskim. Przekształcenie na postać słowną przydaje się najczęściej przy finalizowaniu faktury wystawianej z pomocą programu arkusza kalkulacyjnego. Może jednak przydać się także w innych okolicznościach.

Rozwiązania są dwa. Można wprowadzić do swojego skoroszytu taki algorytm, który dokona odpowiednich przekształceń, czyli zadziała na zasadzie: jeśli w komórce A1 arkusza znajdzie się wartość liczbowa, to w komórce A2 pojawi się tekst tę wartość reprezentujący. Drugim rozwiązaniem jest dołączenie do dokumentu własnej funkcji, która zwróci wartość liczby, będącej argumentem tej funkcji, w postaci słownej. Funkcja powinna zadziałać jak wspomniana na wstępie funkcja BAHTEXT() tylko po polsku.

Oba przypadki nie są jednak tak proste. W obu, fleksyjność języka polskiego, powoduje konieczność stworzenia dość złożonego algorytmu i nie wszyscy użytkownicy programu Calc mogą sobie z tym poradzić. W drugim – dodatkowo – trzeba znać jeden z dopuszczalnych języków programowania, w którym ten algorytm zostanie zakodowany. Taki zakodowany algorytm nazywany jest makrem. Makra wchodzą w skład modułu, moduły zaś w skład bibliotek. Moduły mogą mieć charakter lokalny, są wówczas częścią dokumentu, albo globalny i można je wykorzystywać w obrębie wszystkich tworzonych na danym komputerze dokumentów.

Rozwijając w tym miejscu na moment temat wykorzystania drugiego ze sposobów, dodam że istnieje także możliwość włączenia do pakietu (x)Office tak zwanego rozszerzenia. Rozszerzenia to programy pisane przez społeczność użytkowników (x)Office, pozwalające zwiększać funkcjonalność pakietu. Jednym z takich rozszerzeń jest rozszerzenie Numbertxt, zamieniające wartość wyrażoną cyframi na wartość zapisaną słowami. Więcej o tym napisałem w opracowaniu „Rozszerzenia pakietu (x)Office”.

Niniejszy artykuł opisuje jak wykorzystać napisany przeze mnie algorytm, zawarty w oddzielnym dokumencie Calca zapisanym jako szablon. Jest to zatem rozwiązanie pierwszego typu.

Dedykowanym rozszerzeniem nazwy pliku szablonu są litery odt. Odpowiedni plik nazywa się więc SLOWNIE.ODT. Plik przygotowany do pobrania z serwisu, jest w postaci zwykłego dokumentu programu Calc (a więc z rozszerzeniem ods) i to użytkownik powinien zapisać go w postaci szablonu. Jak to zrobić, opiszę za chwilę. Zainteresowani mogą pobrać wspomniany plik poprzez odpowiednie łącze znajdujące się w dalszej części tego opracowania.

Ideą szablonów jest możliwość utworzenia nowego dokumentu na bazie wybranego wzorca. Otwarcie zatem dokumentu opartego o szablon, oznacza przejęcie wszystkich rozwiązań zastosowanych w szablonie z jednoczesnym traktowaniem dokumentu jako całkowicie nowego. Takiego, jakby użytkownik sam go opracował do tego etapu a teraz kontynuując pracę, może rozbudowywać, zmieniać i dopasowywać projekt do własnych potrzeb.

Przygotowany przeze mnie dokument zawiera tylko jeden arkusz nazwany: ArkuszSłownie. W tym arkuszu w komórce A1 należy umieścić wartość liczbową. Wynik, czyli wartość z komórki A1 zapisana słowami, pojawi się w komórce A10 tego arkusza. Ze względów bezpieczeństwa, w obawie przed przypadkowym naruszeniem integralności algorytmu, arkusz został zabezpieczony hasłem i użytkownik ma dostęp tylko do komórki A1.

Jeden ze sposobów wykorzystanie szablonu polega na otwarciu nowego dokumentu w oparciu o ten szablon a następnie rozbudowywanie projektu, drugi – pozwala dołączyć, do własnego funkcjonującego skoroszytu, zawartość szablonu i wykorzystać jego możliwości.

Aby ten mechanizm wykorzystać trzeba najpierw przekształcić pobrany plik w szablon. Pobieramy plik dokumentu do dostępnej lokalizacji, np. „Moje Dokumenty”. Dwukrotne kliknięcie w pobrany plik spowoduje otwarcie go w programie Calc. Teraz można go zapisać jako szablon programu. Aby to zrobić rozwijamy listę polecenia „Plik” i następnie w rozwiniętej liście kaskadowej polecenia „Szablony”, wybieramy działanie „Zapisz...”. Sekwencję tę pokazuje rys. 1.

Zapisywanie dokumentu Calca jako szablon.
Rys. 1: Ścieżka dojścia do polecenia zapisu szablonu.

Otwarte okno dialogowe Szablony pokazane poniżej, pozwoli przypisać szablon do konkretnej kategorii i określić jego nazwę.

Nazywanie i lokowanie szablonu.
Rys. 2: Okno nadawania nazwy i lokowania szablonu.

Wybieramy kategorię „Domyślnie” i określamy nazwę dla zapisywanego szablonu. W okienku podglądu „Szablony” widoczne są nazwy szablonów już zapisanych dla tej kategorii. Podaje się tylko pierwszą część nazwy bez rozszerzenia odt. Po wpisaniu nazwy uaktywnia się przycisk OK, który kończy operację zapisywania. Od tego też momentu można korzystać w projektach z zapisanego szablonu.

Aby rozpocząć pracę z nowym dokumentem opartym o szablon, wywołujemy program Calc i rozwijamy zawartość ikonki „Nowy”. Należy rozwinąć a nie kliknąć ikonkę, gdyż w przeciwnym razie otworzy ona rzeczywiście nowy dokument ale bez możliwości wskazania szablonu. Na rys. 3. Widać rozwiniętą listę możliwości tej ikonki.

Rozwinięta lista ikonki Nowy.
Rys. 3: Rozwinięta lista ikonki Nowy.

Taka sama lista pojawi się także po rozwinięciu polecenia „Plik” i wskazaniu na tej liście polecenia „Nowy” (widać je na pierwszej pozycji na rys. 1.). Niezależnie od metody dotarcia do listy, wybrać należy ostatnią pozycję, czyli „Szablony i dokumenty”.

Okno szablony i dokumenty, wybór kategorii.
Rys. 4: Okno wyboru rodzaju otwieranego dokumentu.

Otwarte okno pozwala wybrać rodzaj otwieranego dokumentu. W tym wypadku wskazanie grupy Szablony spowodowało wyświetlenie listy kategorii należących do tej grupy. Dwukrotne kliknięcie w kategorię „Domyślny”, zmieni zawartość wyświetlanego okna na listę szablonów znajdujących się w tej kategorii. Nazwa kategorii znalazła się w ramce tego okienka. Pokazuje to rys. 5.

Wybór konkretnego szablonu.
Rys. 5: Wybór konkretnego szablonu z listy.

Po wybraniu szablonu i kliknięciu przycisku „Otwórz”, powstanie nowy dokument o tymczasowej nazwie „Bez tytułun”, który może stać się bazą do dalszego rozwijania projektu. Rys. 6. pokazuje taki utworzony dokument.

Dokument Bez tytułu 2 powstały na bazie szablonu słownie.
Rys. 6: Dokument Bez tytułu 2 powstały na bazie szablonu słownie.

Arkusz ArkuszSłownie jak wspomniałem udostępnia jedynie komórkę A1. Do niej więc należy wprowadzić adres innej komórki, zawierającej wartość liczbową. W tym celu trzeba jednak dodać przynajmniej jeden pusty arkusz. Kliknięcie widocznego w dolnej części okna zielonego znaku plus doda nowy arkusz po ostatnim w kolekcji. Jeśli chcemy dodać nowy (nowe) arkusze w wybranym miejscu, trzeba na nazwie wybranego arkusza kliknąć prawym przyciskiem myszki. Uzyskamy menu kontekstowe jak na rys. 7.

Menu kontekstowe zakładki nazwy arkusza.
Rys. 7: Menu kontekstowe zakładki nazwy arkusza.

Wybór „Wstaw...” pozwala wstawić nowy arkusz. Warto jednak zwrócić uwagę na występujące tu polecenie „Przenieś/kopiuj...”, które pozwoli w przyszłości ustalać kolejność arkuszy w dokumencie. Wstawianie nowego arkusza jest bardziej rozbudowane, dlatego powoduje otwarcie dodatkowego okna pozwalającego sprecyzować opcje wstawiania. Opcje te widoczne są na rysunku poniżej.

Opcje wstawiania arkusza.
Rys. 8: Opcje wstawiania arkusza.

Jak widać wybrać można miejsce wstawiania oraz liczbę arkuszy, a przy wstawianiu tylko jednego arkusza można też podać jego nazwę. Po dodaniu nowego arkusza wystarczy zbudować odpowiednie formuły. Jedną – przekazującą wartość do arkusza ArkuszSłownie i drugą – przejmującą wynik a umieszczoną w arkuszu Arkusz2. Przykładowe formuły zilustrowałem poniżej.

Układ przykładowych formuł w arkuszach.
Rys. 9: Przykładowe formuły umieszczone w arkuszach.

Po prawej stronie ilustracji widać formułę wpisaną do komórki A1, dzięki temu arkusz otrzymuje wartość do przekształcenia. Po lewej stronie, w arkuszu Arkusz2, w komórce A8, wstawiono formułę przejmującą wynik znajdujący się w komórce A10 arkusza ArkuszSłownie.

Jeśli użytkownik ma już funkcjonujący dokument programu Calc, w którym chciałby dodać możliwość przekształcenia pewnych wartości na postać słowną, może dołączyć do swego dokumentu arkusz z szablonu słownie. W prezentowanym już oknie dialogowym wstawiania arkusza, pokazanym na rysunku 8. widoczna jest, także możliwa do zaznaczenia, opcja „Z pliku”. Zaznaczenie tej opcji odblokuje przycisk „Przeglądaj...”, dzięki któremu możemy wskazać konkretny plik do wstawienia. Jeśli plik zostanie wybrany, w okienku podglądu pliku wyświetlone zostaną wszystkie dostępne arkusze w nim się znajdujące. Użytkownik może zaznaczyć wybrane arkusze i przyciskiem OK wszystkie je dodać do swojego dokumentu.

Pojawia się więc pytanie gdzie znajduje się szablon słownie.odt? Niestety położenie szablonów jest umiejscowione dość głęboko w strukturze plików a na dodatek struktura ta może nie być pokazywana. Standardowe ustawienia systemu Windows ustalają bowiem dla niektórych folderów i plików status „ukryty” czyli nie prezentowany użytkownikowi. Jeśli więc chcemy skorzystać z przywołania pliku, powinniśmy utworzyć pusty dokument na bazie szablonu – tak jak to omówiłem powyżej – zapisać go pod własną nazwą w folderze ogólnie dostępnym, np. „Moje dokumenty” i z tego dopiero folderu wskazać plik do wstawienia.

Dla ciekawych - szablony znajdują się w folderach:

W powyższym zapisie xOffice oznacza tekst „LibreOffice” albo „OpenOffice.org” zależnie od używanego pakietu (od wersji 4 już tylko OpenOfficec). Folder oznaczony liczbą 3 przytoczoną w tych przykładowych ścieżkach dostępu odpowiada w rzeczywistości głównemu numerowi wersji pakietu oprogramowania. Zatem użytkownicy korzystający z wersji czwartej muszą sięgnąć do folderu oznaczonego liczbą 4.

Jeśli użytkownik chce przekształcić w tym samym dokumencie dodatkowo inną wartość liczbową, musi w tym celu dołączyć ponownie arkusz szablonu. Każda nowa kopia arkusza ArkuszSłownie zostanie opatrzona dodatkowym deskryptorem liczbowym. Więc druga kopia będzie miała nazwę ArkuszSłownie_2 i taką nazwą należy się wówczas posługiwać w tworzonych formułach.

Przygotowany przeze mnie arkusz przekształca na postać słowną tylko liczby nieujemne, i po zaokrągleniu nie większe niż 999 999 999 999,99 co pozwoli wystawić fakturę na około 500 stadionów narodowych. Liczba jest zawsze najpierw zaokrąglana do dwóch miejsc po przecinku i dopiero potem przekształcana. Jeśli wartość liczbowa nie spełnia tego warunku lub przekazano zawartość komórki nie zawierającej liczby, wynikiem jest tekst „Liczba jest ujemna, albo za duża, albo nie jest to liczba!”.

Na zakończenie jeszcze uwaga związana z budową formuły powrotnej. Zabezpieczenie szablonu przed zmianami powoduje, że nie można podczas tworzenia formuły metodą wskazywania, kliknąć myszką komórkę A10 arkusza ArkuszSłownie i w ten sposób umieścić ją w formule. Adres ten trzeba wpisać samodzielnie. Nazwę arkusza, czyli ArkuszSłownie można wpisywać dowolnymi literami. Jeśli jednak chcesz użyć myszki, to wskaż komórkę A1 bo ta jest dostępna, a następnie dopisz po jedynce cyfrę zero w utworzonym w formule odwołaniu do adresu.

Zanim pobierzecie Państwo plik, pamiętacie, że za pobranie pliku odpowiada kliknięcie odnośnika prawym przyciskiem myszki i wybranie z wyświetlonego menu pozycji w rodzaju „Zapisz element docelowy jako...” lub „Zapisz link jako...”. Kliknięcie lewym przyciskiem może spowodować inne działania niż pobieranie, jeśli plik danego typu jest zarejestrowany w przeglądarce do specjalnego traktowania.

Aby pobrać dokument programu Calc pakietu LibreOffice lub OpenOffice.org kliknij odnośnik: slownie.ods