Numbertext: liczby słownie (i jeszcze więcej)
05.09.2009 19:42
2 lata temu na łamach bloga OpenOffice.org w praktyce opublikowałem wpis instruujący, jak za pomocą prostego makropolecenia zautomatyzować sobie pracę w Calcu. Wczoraj zaś odkryłem rozszerzenie, które robi to samo i jeszcze więcej!
Numbertext, bo tak brzmi jego nazwa, to dodatek, który nie tylko zmienia zapis liczbowy na słowny, ale również konwertuje liczby na walutę. Ponadto potrafi skonwertowaną walutę zapisać w nastu obcych językach! Kolejnym pulsem tego dodatku jest jego forma. Dzięki dystrybucji w postaci rozszerzenia, każdy użytkownik poradzi sobie z jego integracją (instalacją) z OpenOffice.org.
Rozszerzenie Numbertext jest odpowiedzią na (ograniczoną) funkcję BAHTTEXT w Excelu. Zanim jeszcze przejdziemy do głównej części tego wpisu, dopowiem, że społeczność skupiona wokół tej funkcji usiłowała zastąpić nią BAHTTEXT w specyfikacji OpenDocumentFormat Formula (ODFF) w ODF 1.2.
Po instalacji dodatku, będziemy mogli w Calcu operować na dwóch nowych funkcjach. Na NUMBERTEXT oraz na MONEYTEXT.
Przykład 1.
Aby zapisać liczbę 12345678 słownie, korzystamy z pierwszej funkcji, a zapisujemy ją następująco: =NUMBERTEXT(12345678)
Wynik: dwanaście milionów trzysta czterdzieści pięć tysięcy sześćset siedemdziesiąt osiem
Jeśli chcemy zapisać liczbę w obcym języku, używamy składni =NUMBERTEXT(1234567;"KOD_JĘZYKA"). Do testu użyłem języka domyślnego (polskiego), francuskiego (Szwajcaria), hiszpańskiego, niemieckiego, czeskiego, rosyjskiego i tajskiego. Kod dla poszczególnych języków to:
=NUMBERTEXT(12345678) =NUMBERTEXT(12345678;"fr-CH") =NUMBERTEXT(12345678;"es-ES") =NUMBERTEXT(12345678;"de-DE") =NUMBERTEXT(12345678;"cs-CZ") =NUMBERTEXT(12345678;"ru-RU") =NUMBERTEXT(12345678;"th-TH")
Wynik: dwanaście milionów trzysta czterdzieści pięć tysięcy sześćset siedemdziesiąt osiem douze millions trois cent quarante-cinq mille six cent septante-huit doce millones trescientos cuarenta y cinco mil seiscientos setenta y ocho zwölf Millionen dreihundertfünfundvierzigtausendsechshundertachtundsiebzig dvanáct milionů tři sta čtyřicet pět tisíce šest set sedmdesát osm ?????????? ????????? ?????? ????? ???? ????? ???????? ????????? ?????? ??????????????????????????????????????????????
Przykład 2.
Aby skonwertować liczbę na walutę, wpisujemy funkcję =MONEYTEXT(50). Funkcja ta również doskonale sobie radzi z odmianą liczb po przecinku.
Wynik: pięćdziesiąt złotych pięćdziesiąt złotych osiemdziesiąt groszy pięćdziesiąt złotych osiem groszy
Chcąc zaznaczyć, że chodzi nam obcą walutę, posługujemy się analogicznym zapisem: =MONEYTEXT(50;"KOD_WALUTY"). W tym przypadku użyłem "GBP" i "CNY" dla waluty Królestwa Wielkiej Brytanii i Chin.
Wynik: pięćdziesiąt funtów szterlingów pięćdziesiąt funtów szterlingów osiemdziesiąt pensów pięćdziesiąt funtów szterlingów osiem pensów
pięćdziesiąt juanów pięćdziesiąt juanów osiem jiao pięćdziesiąt juanów osiem fenów
Natomiast jeśli chcemy zapisać słownie obcą walutę w obcym języku, korzystamy z funkcji =MONEYTEXT(50;"KOD_WALUTY";"KOD_KRAJU"). W ten oto sposób możemy zapisać zdanie "pięćdziesiąt funtów szterlingów" w języku mandaryńskim, lub też zdanie "pięćdziesiąt juanów" możemy zapisać po angielsku.
Kod: =MONEYTEXT(50;"GBP";"zh-ZH") =MONEYTEXT(50;"CNY";"en-GB")
Wynik: ???? fifty Chinese yuan
Ten artykuł został oryginalnie opublikowany na łamach poradnika OpenOffice.org w praktyce. http://openofficeorgpl.blogspot.com/2009/09/numbertext-liczby-sownie-i...