Inwords – kwota słownie po angielsku, bez użycia makr

Gdy niespełna dwa lata popełniłem na blogu wpis Excel formuła do zmiany kwoty na tekst (kwota słownie bez użycia makr) nie wiedziałem, że moja wtyczka będzie się cieszyła tak dużym powodzeniem. Jakiś czas temu ktoś zadał pytanie, czy nie dałoby się przerobić wtyczki, aby zwracała kwotę słownie, ale w języku angielskim. I tutaj mam dobrą wiadomość: w końcu się zmobilizowałem i tak oto powstała owa wtyczka. Zaleta z jej stosowania jest taka, że nie trzeba używać makr, jej wadą jest konieczność bycia połączonym z Internetem.

Jak działa wtyczka? Otóż w Excelu 2013 (i nowszych) istnieje funkcja WEBSERVICE, która wstawia do komórki treść strony internetowej. Moja usługa działa w ten sposób, że wywołując odpowiedni adres URL z parametrem którym jest liczba zwracany jest tekst będący słownym odpowiednikiem owej liczby.

Przykładowo wpisując do komórki formułę:

=WEBSERVICE("https://api.officeblog.pl/inwords.php?amount=4321")

Pojawi się w niej tekst:

four thousand three hundred twenty-one

Uwaga: liczba nie może być większa od 999 999 999 999 (999 miliardów z osadem; tak więc jeśli nie jesteś mieszkańcem Zimbabwe pewnie to ograniczenie Ci nie przeszkadza).

Aby w danej komórce pojawiła się kwota słownie po angielsku z zawartości komórki B1 należy wpisać następującą formułę:

=WEBSERVICE("https://api.officeblog.pl/inwords.php?amount="&B1)

Dodatkowe parametry

Domyślnie zwracana jest goła liczba bez żadnych oznaczeń walut, części ułamkowe, groszy itp. Natomiast dodając zmienną format=X możemy wpłynąć na wygląd zwracanej liczby:

format=1
Zwracana jest liczba wraz symbolem waluty (domyślnie zl)

Przykład:

https://api.officeblog.pl/inwords.php?format=1&amount=1234,30

daje nam

one thousand two hundred thirty-four zl thirty

Dodając parametr currency można zmienić symbol waluty np.

https://api.officeblog.pl/inwords.php?format=1&currency=EUR&amount=123

zwróci nam

one hundred twenty-three EUR

format=2

Tutaj sprawa ma się podobnie, z tym, że symbol waluty jest odmieniany (tj. jeśli liczba jest większa od 1 to jest dodawane s)

https://api.officeblog.pl/inwords.php?format=2&amount=1

zwróci nam

one zloty

Ale

https://api.officeblog.pl/inwords.php?format=2&amount=12

zwróci nam już

twelve zlotys

Można też dodać jako parametr symbol waluty (oraz „jej groszy”) są to parametry currency i currency2 przykład:

https://api.officeblog.pl/inwords.php?format=2&currency=euro&currency2=eruocent&amount=12,05

daje nam

twelve euros five eruocents

format=3

Tutaj jest podawana liczba (wraz z opcjonalnym symbolem waluty) a grosze są podawane (o ile są) w postaci ułamka x/100 np.

https://api.officeblog.pl/inwords.php?format=3&amount=12,05

daje nam

twelve zlotys 05/100

Możemy też w parametrze currency podać własne oznaczenie waluty

https://api.officeblog.pl/inwords.php?format=3&currency=euro&amount=12,05

zwraca

twelve euros 05/100

Krótka i długa skala

W krajach europejskich 1000 milionów to miliard. I tak domyślnie moja usługa się zachowuje tj. wywołując adres URL:

https://api.officeblog.pl/inwords.php?amount=2600000000

otrzymamy wynik:

two milliard six hundred million

Natomiast w USA 1000 milionów to bilion (aby było ciekawiej w krajach europejskich bilion to jest milion milionów). Stąd też powstają różne błędy gdy tłumacz tłumaczy tekst z języka angielskiego ale nie ma świadomości czy autor tekstu posługiwał się skalą długą (większość krajów europejskich) czy krótką (m.in. USA).

Jeśli chcesz, aby moja usługa zwracała kwotę słownie używając skali krótkiej (czyli zamiast milliard zwracała słowo billion należy dodać do adresu url parametr short=1). Oto przykład:

https://api.officeblog.pl/inwords.php?short=1&amount=2600000000

Zwraca:

two billion six hundred milion

LibreOffice Calc

W przypadku pakietu LibreOffice odpowiednikiem funkcji WEBSERVICE jest funkcja USŁ.INTER

Arkusze Google

Odpowiednikiem funkcji WEBSERVICE jest funkcja IMPORTDATA

FreeOffice PlanMaker

Nie znalazłem funkcji, która pobiera dane z Internetu

MS Office dla MacOS

Nie znalazłem funkcji, która pobiera dane z Internetu

WPS Office

Nie znalazłem funkcji, która pobiera dane z Internetu

Ten wpis został opublikowany w kategorii sztuczki i oznaczony tagami , , , , , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.