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



ksywa:

tu wpisz cyfrę cztery: (to takie zabezpieczenie antyspamowe)

komentarze wulgarne albo co mi się nie spodobają będę kasował


powrot na strone glowna

RSS