Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Kategoria: Akumulatorki / Baterie / Ładowarki

Konwersja - cyfra => tekst - Excel ?

michasp 19 Lis 2003 10:58
  • #1 19 Lis 2003 10:58
    michasp
    Poziom 17  

    Witam!

    Czy ktoś wie, czy jest możliwość konwersji w Excelu tabeli z liczbami, np. 343, 35, 1245 etc. na "wartości" tekstowe. Może jakaś gotowa funkcja? Nie musi to być trzysta czterdzieści trzy, trydzieści pięć ... Mogłoby to być np. trzy, cztery, trzy. Nie poruszam się na codzień w Excelu i nie mam większych z nim doświadczeń, więc proszę o pomoc.

    Pozdrawiam,

    Michał.

  • #2 19 Lis 2003 11:05
    Robiot
    Poziom 12  

    Chodzi ci dokładnie o przypisanie konkretnej liczby to jakiegoś tekstu?
    Tak ogólnie to knwersje ale podstawowe np. zamiana cyfr arabskich na rzymski, zamiana np ilości sekund na gg.mm.ss itd. trzeba poszukać.

    Jeśli chcesz przypisać liczbę do słowa, to musisz to zrobić to na piechotę:
    Napisać "bazę" "słownika" i porównywać kolejne wartości.

  • #3 19 Lis 2003 12:13
    s95
    Poziom 17  

    Witam
    Na stronie www.vba.matrix.pl , w przykładach znajdziesz to czego szukasz.
    Kiedyś w sieci znalazłem konwersje „liczb -> do postaci kwot słownie. :cry: Po delikatnych przeróbkach tego makra załączam makro do umieszczenia w Excelu. Konwersja liczby na słowa.

    Pozdrawiam S95

    PS
    Wszystko jest proste do czasu, jak nie zaczniesz programować

  • #4 19 Lis 2003 12:16
    Enterek
    Poziom 17  

    Najprościej napisac makro. Ale ponieważ popieram leniwych a sam juz takie macro mam to podziele się nim :D
    W załączniku macro, które konwertuje wartość liczbowa na opis tekstowy. W zalezności od wywołania (parametry) mozna zmieniac język na angielski, zmieniać przedrostki lub waluty itp.
    Miłego używania.

  • #5 20 Lis 2003 08:44
    michasp
    Poziom 17  

    Witam!

    Dziękuję za przesłane makra, jak to zaimplementować w excelu? Mam Office2000 i motam się z tym od rana, a zależy mi, żeby mi to działało. Jak zrobić, żeby makro pojawiło się w programie? Czy to działa tak, że mam przypuśćmy arkusz z liczbami, a makro skonwertuje mi to w drugi arkusz z wartościami słownymi? Sorry za takie pytanka, ale jestem kiepski w xcelu, pomóżcie mi proszę. Z góry dziękuję.

    Pozdrawiam,
    Michał.

  • #7 20 Lis 2003 16:30
    Enterek
    Poziom 17  

    Chyba się spóźniłem i mnie s95 wyprzedził :-)
    Ale w razie problemów pisz na mejla. Podeślę przykład w excelu do makra, które zamieściłem.

  • #8 24 Lis 2003 10:55
    michasp
    Poziom 17  

    Witam!

    Dziękuję za makra i przykłady, przydały się bardzo!

    Pozdrawiam,

    Michał.

  • #9 08 Lut 2006 21:59
    Bauer1234
    Poziom 2  

    Mam problem w Marku który załączył S95 nie wyświetlają mi się zł ani grosze tylko jest np. "piętnaście , czterdzieści siedem" A znowu w Marku który załączył Enterek wyświetla mi się "piętnaście złotych, 47/100" Może ktoś pomóc, (możliwe że coś robię źle - Macrco załączam przez Narzędzia=>Makro=>Edytor Visual Basic)

    Wie ktoś może jak zmienić żeby zamiast 47/100
    wyświetlało czterdzieści siedem i naljepiej groszy

  • #10 10 Lut 2006 08:37
    s95
    Poziom 17  

    Bauer1234 napisał:

    Wie ktoś może jak zmienić żeby zamiast 47/100
    wyświetlało czterdzieści siedem i naljepiej groszy


    Witam
    Aby było tak jak chcesz nalezy trochę zmienić w MODULES makro "Liczba_slowa"
    tutaj załączam to co zmieniłem
    Code:

    '****** TUTAJ ZMIANA   TAK BYŁO WCZEŚNIEJ
    ' varZLOTE = Array("zero, ", ", ", ", ", ", ")
    ' a teraz poprawnie
     varZLOTE = Array("zero  zł,", "zł, ", "zł, ", "zł, ")
    '****** TUTAJ ZMIANA   TAK BYŁO WCZEŚNIEJ
    'varGROSZE = Array("zero ", " ", " ", " ")
    ' poprawne nazwy groszy
     varGROSZE = Array("zero groszy", "grosz ", "grosze ", "groszy ")

    teraz już powinno działać.
    Odnośnie uruchomienia to możesz robić tak jak napisałeś, lub za pomocą przypisanego przycisku.
    Załączam przerobiony pliczek.
    Pozdrawiam
    S95

  • #12 19 Kwi 2010 10:41
    fzbych
    Poziom 1  

    Dzięki za udostępnienie pliku

    Prawdziwa profeska :)

  • #13 13 Wrz 2010 21:40
    prywata50
    Poziom 1  

    Mam skrypt ściągnięty z netu do konwersji w ekcelu słownie kwoty , niestety z błędem ( autor nie odpowiada). Błędnie konwertuje nst. liczby: 1000 - jeden tysięcy, 12000 - dwanaście tysiące, 13000 - trzynaście tysiące, 14000 - czternaście tysiące ( to samo z milionami, bilionami itp).
    Załączam skrypt i proszę szanowne forum o poprawienie i udostepnienie z poprawką.
    Z góry dziękuję.
    Na dole skrypt:

    'skrypt sciagniety ze strony www.grzegorzsurowiec.pl
    Option Compare Binary 'typ porownania stringów: binarny
    Option Explicit 'wymusza deklaracje zmiennych

    'deklaracja zmiennych
    Private Male As Variant
    Private Nascie As Variant
    Private Duze As Variant

    'tworzenie metody
    'parametr 'l' kwota z akrusza w formacie Currency

    Function Słownie(ByVal l As Currency) As String

    'definicja zmiennych
    Dim S, temp As String
    Dim zl As Currency
    Dim g, i, gr, pos, j, koncowka As Integer
    'zmienna trzyma grupy cyfr -
    'na razie 4: tysiące, miliony, miliardy, biliony
    Dim rozdziel(0 To 3) As Variant

    'tworzenie tablic
    Male = Array( _
    Array("", "jeden", "dwa", "trzy", "cztery", "pięć", "sześć", _
    "siedem", "osiem", "dziewięć"), _
    Array("", "", "dwadzieścia", "trzydzieści", "czterdzieści", _
    "pięćdziesiąt", "sześćdziesiąt", "siedemdziesiąt", _
    "osiemdziesiąt", "dziewięćdziesiąt"), _
    Array("", "sto", "dwieście", "trzysta", "czterysta", "pięćset", _
    "sześćset", "siedemset", "osiemset", "dziewięćset") _
    )

    Nascie = Array("dziesięć", "jedenaście", "dwanaście", "trzynaście", _
    "czternaście", "piętnaście", "szesnaście", "siedemnaście", _
    "osiemnaście", "dziewiętnaście")

    Duze = Array( _
    Array("tysiąc", "tysiące", "tysięcy"), _
    Array("milion", "miliony", "milionów"), _
    Array("miliard", "miliardy", "miliardów"), _
    Array("bilion", "biliony", "bilionów") _
    )

    l = WorksheetFunction.Round(l, 2) 'zaokraglamy do groszy
    zl = WorksheetFunction.Floor(l, 1) 'zapisuje czesc całkowitą
    gr = (l - zl) * 100 'zapisujemy grosze

    S = CStr(zl) 'zmieniamy kwotę na stringa

    'inicjalizacja zmiennych potrzebnych do obsługi pętli
    i = 0
    g = 0
    'inicjuj grupę
    rozdziel(g) = Array(-1, -1, -1)

    For pos = Len(S) - 1 To 0 Step -1

    'zapisujemy jeden znak do odpowiedniej pozycji w grupie
    rozdziel(g)(i) = CByte(Mid(S, pos + 1, 1))

    'tworzymy nową grupę cyfr
    If i = 2 And pos > 0 Then
    g = g + 1 'nowy id grupy
    i = -1 'przy nastepnej petli i = 0
    rozdziel(g) = Array(-1, -1, -1) 'inicjujemy nową grupę
    End If

    i = i + 1
    Next

    S = "" 'czyscimy zmienna S ktora będzie "zbierała" kwotę słownie

    For i = 0 To g

    temp = ""

    For j = 2 To 0 Step -1 'poruszamy się po grupie od końca

    'analizujemy tylko wartości różne od -1
    If rozdziel(i)(j) > -1 Then

    If j = 1 Then
    'sprawdzamy czy środkowa cyfra nie jest cyfrą 1
    'aby wywołać tablicę NASCIE
    If rozdziel(i)(j) = 1 Then
    temp = temp & Nascie(rozdziel(i)(0)) & " "
    'czyścimy pierwszą liczbę w grupie bo już nie jest potrzebna
    rozdziel(i)(0) = -1
    Else:
    If rozdziel(i)(j) > 0 Then temp = temp & Male(j)(rozdziel(i)(j)) & " "
    End If
    Else:
    If rozdziel(i)(j) > 0 Then temp = temp & Male(j)(rozdziel(i)(j)) & " "
    End If

    End If

    Next

    'ostatnia cyfra z tysiaca jest zdefiniowana
    If rozdziel(i)(2) > -1 Then
    If i + 1 <= g Then 'jest nastepna grupa cyfr
    'ustalamy koncówkę dla tablicy DUZE

    'analizujemy pierwszą cyfrę w kolejnej grupie
    Select Case CByte(rozdziel(i + 1)(0))
    Case 1: koncowka = 0
    Case 2, 3, 4: koncowka = 1
    Case Else: koncowka = 2
    End Select

    'analizujemy drugą cyfrę w kolejnej grupie
    If rozdziel(i + 1)(0) = 1 Then
    koncowka = 2
    End If

    'jeśli następna grupa nie jest pusta dodaj wartość z tablicy DUZE
    If rozdziel(i + 1)(0) > 0 Or rozdziel(i + 1)(1) > 0 Or _
    rozdziel(i + 1)(2) > 0 Then
    'if i==0
    S = Duze(i)(koncowka) & " " & temp & S
    Else: S = temp & S
    End If
    Else: S = temp & S
    End If

    Else: S = temp & S
    End If

    Next

    'wyświetl liczbę słownie
    Słownie = Trim(S) & " zł " & Format(CDbl(gr), "00") & "/100"
    End Function

  • #14 08 Lut 2011 23:41
    lukaszg17
    Poziom 1  

    Witam serdecznie mam problem odnośnie zamiany liczby na teks ponieważ liczba zamieniana wyrażana jest w PLN a mi jest potrzebna w EURO czy ma ktoś gotowe makro bądź wie jak to zrobić inaczej proszę o jakieś propozycje na maila lukaszg17(malpa)op.pl bardzo pilne w pliku wysyłam gotowe makro jakie mam pobrałem z internetu

  • #15 09 Lut 2011 15:10
    marek003
    Poziom 39  

    Niestety to makro jest zablokowane hasłem więc nie da się go wyedytować i poprawić "PLN" na "EURO" (Jeżeli znasz hasło to podaj).

    Załóż na przyszłość własny topik.

  • #16 10 Lut 2011 00:34
    Aldrin
    Poziom 22  

    Funkcja w tym pliku ma postać:
    SLOWNIE(kwota; [język-opcja] = "POL"; [waluta-opcja] = "PLN"; [określenie waluty/odmiana-opcja] = 0)

    można napisać np. tak:
    =slownie(A1; "POL"; "złoty"; 0)

    Jeśli w A1 wpisana będzie liczba 417,53 to otrzymamy wynik:
    czterysta siedemnaście złotych, 53/100

    Z opcji można korzystać, ale nie jest to konieczne- jak to w opcjach bywa ;)

  • #17 09 Wrz 2011 22:28
    banasiax1
    Poziom 2  

    Super narzędzie, natomiast czy jest mi ktoś w stanie wytłumczyć dlaczego u mnie nie wyświetlają się polskie znaki?

    Podaję przykład:
    1 jeden z³, zero groszy
    22,21 dwadzieœcia dwa z³, dwadzieœcia jeden groszy
    333,32 trzysta trzydzieœci trzy z³, trzydzieœci dwa grosze
    44,43 czterdzieœci cztery z³, czterdzieœci trzy grosze
    66,54 szeœædziesi¹t szeœæ z³, piêædziesi¹t cztery grosze
    77,65 siedemdziesi¹t siedem z³, szeœædziesi¹t piêæ groszy
    88,78 osiemdziesi¹t osiem z³, siedemdziesi¹t osiem groszy
    99,89 dziewiêædziesi¹t dziewiêæ z³, osiemdziesi¹t dziewiêæ groszy

  • #18 09 Wrz 2011 22:32
    adamas_nt
    Moderator Programowanie

    Zmień czcionkę...

  • #19 10 Wrz 2011 12:59
    banasiax1
    Poziom 2  

    dzięki, ale to nie pomaga, problem wynika myśle z tego, że mam angielską wersję Excela a co za tym idzie VBA. Czy mogę problem rozwiązać w inny sposób niż zmiana języka ?

  • #20 07 Paź 2011 23:22
    mikiholik
    Poziom 2  

    Czekam na szybką wiadomość. JBC nawet na pocztę.
    r c k k r d @ g m a i l . c o m

    Jest proste rozwiązanie bez żadnego chorego MAKRA.
    Chcę zrobić następującą rzecz którą kiedyś zrobiłem ale dziś już nie pamiętam.

    Zrobiłem listę wyboru np.:
    ABC
    KJH
    OLP
    Lista znajduje się przykładowo w polu A1
    Następnie w polu B2 wpisuję jakąś wartość np. 123
    Kolejno w polu C1 pragnę uzyskać WYNIK A1*B2

    Oczywiście nie mogę mnożyć wyrazu, jednak istnieje funkcja dzięki której w komórce będę miał ABC lecz będzie się kryła pod wyrazem ustalona prze zemnie cyfra np ABC = 2
    WYNIK A1*B1=246
    (chyba robiłem to tak że do komurki np N12 wpisywałem ABC, a do komórki M12 wpisywałem np 12 kolejno finkcja =WYNIK.JEŻEL(WYRAZ(N12;M12;...))Funkcję wpisełem w polu O12 której użyłem do stworzenia listy. Takich pól z innymi wartościami zrobiłem z 3 i już była lista. To jest źle ale tylko przykład o co mi chodzi)
    Pytanie! Jaką funkcję muszę ustawić dal jakiejś tam komórki aby wyświetlało się np ABC a jej wartością było np 123

    NIE JAKIES TAM MAKRA

  • #21 11 Gru 2015 10:56
    roosiak
    Poziom 8  

    Witam!
    Wykorzystałem makro kolegi Enterka. Mam tylko jeden problem. Jak poprawić makro, żeby w excelu nie wyświetlało się np jeden tysiąc tylko poprostu tysiąc?

  • #22 02 Lut 2016 21:38
    valdi125
    Poziom 7  

    Bardzo, bardzo dawno temu zrobiłem tzw. dodatek do Excell'a, który działa jak na załączonych obrazkach (jako funkcja).

    Konwersja - cyfra => tekst - Excel ?

    Konwersja - cyfra => tekst - Excel ?

    Konwersja - cyfra => tekst - Excel ?

  Szukaj w 4mln produktów
Przeglądaj produkty