2012.11.16 21:56
formuła excelowa, która zamienia liczbę na kwotę słownie
Oto formuła excelowa, która (bez użycia VBA) zamienia liczbę (np. 131517,45) na kwotę słownie (np. sto trzydzieści jeden tysięcy pięćset siedemnaście złotych czterdzieści pięć groszy):
=USUŃ.ZBĘDNE.ODSTĘPY(JEŻELI(ZAOKR.DO.CAŁK(A1)=0;"zero";JEŻELI(LEWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0>1;JEŻELI(LEWY(TEKST(LEWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0;"000");1)+0>0;INDEKS({"sto";"dwieście";"trzysta";"czterysta";"pięćset";"sześćset";"siedemset";"osiemset";"dziewięćset"};LEWY(TEKST(LEWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0;"000");1)+0)&" ";"")&JEŻELI(PRAWY(TEKST(LEWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0;"00");2)+0<20;INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć";"dziesięć";"jedenaście";"dwanaście";"trzynaście";"czternaście";"piętnaście";"szesnaście";"siedemnaście";"osiemnaście";"dziewiętnaście"};PRAWY(TEKST(LEWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0;"00");2)+1);INDEKS({"dwadzieścia";"trzydzieści";"czterdzieści";"pięćdziesiąt";"sześćdziesiąt";"siedemdziesiąt";"osiemdziesiąt";"dziewięćdziesiąt"};LEWY(PRAWY(TEKST(LEWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0;"00");2);1)+0-1)&" "&INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć"};PRAWY(TEKST(LEWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0;"0");1)+0+1));"")&" "&JEŻELI(LEWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0>0;INDEKS({"tysięcy";"tysiąc";"tysiące"};(LEWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0=1)+(ORAZ(PRAWY(TEKST(LEWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0;"0");1)+0>=2;PRAWY(TEKST(LEWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0;"0");1)+0<=4;LEWY(PRAWY(TEKST(LEWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0;"00");2);1)+0<>1))*2+1);"")&" "&JEŻELI(LEWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0;"000");1)+0>0;INDEKS({"sto";"dwieście";"trzysta";"czterysta";"pięćset";"sześćset";"siedemset";"osiemset";"dziewięćset"};LEWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0;"000");1)+0)&" ";"")&JEŻELI(PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0;"00");2)+0<20;INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć";"dziesięć";"jedenaście";"dwanaście";"trzynaście";"czternaście";"piętnaście";"szesnaście";"siedemnaście";"osiemnaście";"dziewiętnaście"};PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0;"00");2)+1);INDEKS({"dwadzieścia";"trzydzieści";"czterdzieści";"pięćdziesiąt";"sześćdziesiąt";"siedemdziesiąt";"osiemdziesiąt";"dziewięćdziesiąt"};LEWY(PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0;"00");2);1)+0-1)&" "&INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć"};PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1);"000000");3)+0;"0");1)+0+1)))&" "&INDEKS({"złotych";"złoty";"złote"};(ZAOKR.DO.CAŁK(A1)=1)+(ORAZ(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1);"0");1)+0>=2;PRAWY(TEKST(ZAOKR.DO.CAŁK(A1);"0");1)+0<=4;LEWY(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1);"00");2);1)+0<>1))*2+1)&" "&JEŻELI(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0=0;"zero";JEŻELI(PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0;"00");2)+0<20;INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć";"dziesięć";"jedenaście";"dwanaście";"trzynaście";"czternaście";"piętnaście";"szesnaście";"siedemnaście";"osiemnaście";"dziewiętnaście"};PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0;"00");2)+1);INDEKS({"dwadzieścia";"trzydzieści";"czterdzieści";"pięćdziesiąt";"sześćdziesiąt";"siedemdziesiąt";"osiemdziesiąt";"dziewięćdziesiąt"};LEWY(PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0;"00");2);1)+0-1)&" "&INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć"};PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0;"0");1)+0+1)))&" "&INDEKS({"groszy";"grosz";"grosze"};(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0=1)+(ORAZ(PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0;"0");1)+0>=2;PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0;"0");1)+0<=4;LEWY(PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0;"00");2);1)+0<>1))*2+1))
Wygenerowałem ją Perlem, ale to już opisuję tutaj (czyli na http://czterycztery.pl/programy/kwota_slownie.html ).
komentarze:
2014.03.12 10:48 Piotrek
Wczoraj prosili mnie kursanci, to im rozbudowałem tę formułę, żeby radziła sobie z większymi kwotami. Oto wersja, która działa do 999 miliardów 999 milionów 999 tysięcy 999 złotych 99 groszy:
=USUŃ.ZBĘDNE.ODSTĘPY(JEŻELI(ZAOKR.DO.CAŁK(A1)=0;"zero";JEŻELI(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");1;3)+0>1;JEŻELI(LEWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");1;3)+0;"000");1)+0>0;INDEKS({"sto";"dwieście";"trzysta";"czterysta";"pięćset";"sześćset";"siedemset";"osiemset";"dziewięćset"};LEWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");1;3)+0;"000");1)+0)&" ";"")&JEŻELI(PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");1;3)+0;"00");2)+0<20;INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć";"dziesięć";"jedenaście";"dwanaście";"trzynaście";"czternaście";"piętnaście";"szesnaście";"siedemnaście";"osiemnaście";"dziewiętnaście"};PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");1;3)+0;"00");2)+1);INDEKS({"dwadzieścia";"trzydzieści";"czterdzieści";"pięćdziesiąt";"sześćdziesiąt";"siedemdziesiąt";"osiemdziesiąt";"dziewięćdziesiąt"};LEWY(PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");1;3)+0;"00");2);1)+0-1)&" "&INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć"};PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");1;3)+0;"0");1)+0+1));"")&" "&JEŻELI(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");1;3)+0>0;INDEKS({"miliardów";"miliard";"miliardy"};(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");1;3)+0=1)+(ORAZ(PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");1;3)+0;"0");1)+0>=2;PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");1;3)+0;"0");1)+0<=4;LEWY(PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");1;3)+0;"00");2);1)+0<>1))*2+1);"")&" "&JEŻELI(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");4;3)+0>1;JEŻELI(LEWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");4;3)+0;"000");1)+0>0;INDEKS({"sto";"dwieście";"trzysta";"czterysta";"pięćset";"sześćset";"siedemset";"osiemset";"dziewięćset"};LEWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");4;3)+0;"000");1)+0)&" ";"")&JEŻELI(PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");4;3)+0;"00");2)+0<20;INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć";"dziesięć";"jedenaście";"dwanaście";"trzynaście";"czternaście";"piętnaście";"szesnaście";"siedemnaście";"osiemnaście";"dziewiętnaście"};PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");4;3)+0;"00");2)+1);INDEKS({"dwadzieścia";"trzydzieści";"czterdzieści";"pięćdziesiąt";"sześćdziesiąt";"siedemdziesiąt";"osiemdziesiąt";"dziewięćdziesiąt"};LEWY(PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");4;3)+0;"00");2);1)+0-1)&" "&INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć"};PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");4;3)+0;"0");1)+0+1));"")&" "&JEŻELI(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");4;3)+0>0;INDEKS({"milionów";"milion";"miliony"};(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");4;3)+0=1)+(ORAZ(PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");4;3)+0;"0");1)+0>=2;PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");4;3)+0;"0");1)+0<=4;LEWY(PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");4;3)+0;"00");2);1)+0<>1))*2+1);"")&" "&JEŻELI(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");7;3)+0>1;JEŻELI(LEWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");7;3)+0;"000");1)+0>0;INDEKS({"sto";"dwieście";"trzysta";"czterysta";"pięćset";"sześćset";"siedemset";"osiemset";"dziewięćset"};LEWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");7;3)+0;"000");1)+0)&" ";"")&JEŻELI(PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");7;3)+0;"00");2)+0<20;INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć";"dziesięć";"jedenaście";"dwanaście";"trzynaście";"czternaście";"piętnaście";"szesnaście";"siedemnaście";"osiemnaście";"dziewiętnaście"};PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");7;3)+0;"00");2)+1);INDEKS({"dwadzieścia";"trzydzieści";"czterdzieści";"pięćdziesiąt";"sześćdziesiąt";"siedemdziesiąt";"osiemdziesiąt";"dziewięćdziesiąt"};LEWY(PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");7;3)+0;"00");2);1)+0-1)&" "&INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć"};PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");7;3)+0;"0");1)+0+1));"")&" "&JEŻELI(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");7;3)+0>0;INDEKS({"tysięcy";"tysiąc";"tysiące"};(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");7;3)+0=1)+(ORAZ(PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");7;3)+0;"0");1)+0>=2;PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");7;3)+0;"0");1)+0<=4;LEWY(PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");7;3)+0;"00");2);1)+0<>1))*2+1);"")&" "&JEŻELI(LEWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");10;3)+0;"000");1)+0>0;INDEKS({"sto";"dwieście";"trzysta";"czterysta";"pięćset";"sześćset";"siedemset";"osiemset";"dziewięćset"};LEWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");10;3)+0;"000");1)+0)&" ";"")&JEŻELI(PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");10;3)+0;"00");2)+0<20;INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć";"dziesięć";"jedenaście";"dwanaście";"trzynaście";"czternaście";"piętnaście";"szesnaście";"siedemnaście";"osiemnaście";"dziewiętnaście"};PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");10;3)+0;"00");2)+1);INDEKS({"dwadzieścia";"trzydzieści";"czterdzieści";"pięćdziesiąt";"sześćdziesiąt";"siedemdziesiąt";"osiemdziesiąt";"dziewięćdziesiąt"};LEWY(PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");10;3)+0;"00");2);1)+0-1)&" "&INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć"};PRAWY(TEKST(FRAGMENT.TEKSTU(TEKST(ZAOKR.DO.CAŁK(A1);"000000000000");10;3)+0;"0");1)+0+1)))&" "&INDEKS({"złotych";"złoty";"złote"};(ZAOKR.DO.CAŁK(A1)=1)+(ORAZ(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1);"0");1)+0>=2;PRAWY(TEKST(ZAOKR.DO.CAŁK(A1);"0");1)+0<=4;LEWY(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1);"00");2);1)+0<>1))*2+1)&" "&JEŻELI(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0=0;"zero";JEŻELI(PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0;"00");2)+0<20;INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć";"dziesięć";"jedenaście";"dwanaście";"trzynaście";"czternaście";"piętnaście";"szesnaście";"siedemnaście";"osiemnaście";"dziewiętnaście"};PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0;"00");2)+1);INDEKS({"dwadzieścia";"trzydzieści";"czterdzieści";"pięćdziesiąt";"sześćdziesiąt";"siedemdziesiąt";"osiemdziesiąt";"dziewięćdziesiąt"};LEWY(PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0;"00");2);1)+0-1)&" "&INDEKS({"";"jeden";"dwa";"trzy";"cztery";"pięć";"sześć";"siedem";"osiem";"dziewięć"};PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0;"0");1)+0+1)))&" "&INDEKS({"groszy";"grosz";"grosze"};(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0=1)+(ORAZ(PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0;"0");1)+0>=2;PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0;"0");1)+0<=4;LEWY(PRAWY(TEKST(PRAWY(TEKST(ZAOKR.DO.CAŁK(A1*100)/100;"0,00");2)+0;"00");2);1)+0<>1))*2+1))
2014.08.29 04:51 Piotrek
Wczoraj prosili mnie kursanci o formułę dającą tekst angielski. Napisałem, tak samo jak wersja polska jest na http://czterycztery.pl/programy/kwota_slownie.html
powrót na stronę główną
RSS