Jak zamienić liczbę na słowa w programie Excel

  • Udostępnij To
Michael Brown

W tym artykule pokażę Ci dwa szybkie i darmowe sposoby na konwersję liczb walutowych na angielskie słowa w Excelu 2019, 2016, 2013 i innych wersjach.

Microsoft Excel to świetny program do obliczania tego i owego. Początkowo został stworzony do przetwarzania dużych tablic danych, jednak pozwala również na szybkie i efektywne tworzenie dokumentacji księgowej, takiej jak faktury, wyceny czy bilanse.

W mniej lub bardziej solidnych dokumentach płatniczych konieczne jest dublowanie wartości liczbowych z ich formą słowną. Znacznie trudniej jest sfałszować liczby wpisane na maszynie niż te napisane ręcznie. Jakiś oszust może próbować zrobić 8000 z 3000, podczas gdy potajemne zastąpienie "trzech" przez "osiem" jest prawie niemożliwe.

Więc to, czego potrzebujesz, to nie tylko konwersja liczb na słowa w Excelu (np. 123.45 na "sto dwadzieścia trzy, czterdzieści pięć"), ale przeliteruj dolary i centy (np. 29,95 USD jako "dwadzieścia dziewięć dolarów i dziewięćdziesiąt dziewięć centów" ), funty i pensy dla GBP, euro i eurocenty dla EUR itp.

Nawet najnowsze wersje Excela nie mają wbudowanego narzędzia do literowania liczb, nie wspominając o wcześniejszych wersjach. Ale właśnie wtedy Excel jest naprawdę dobry. Zawsze możesz poprawić jego funkcjonalność, używając formuł we wszystkich ich

kombinacje, makra VBA lub dodatki innych firm.

Poniżej znajdziesz dwa sposoby na konwersję liczb z cyfr na słowa

    I, ewentualnie, może być potrzebna konwersja słów na liczby w Excelu

    Uwaga. Jeśli szukasz konwersja liczby na tekst , czyli chcesz, aby Excel widział Twoją liczbę jako tekst, to trochę inna sprawa. Do tego możesz użyć funkcji TEKST lub kilku innych sposobów opisanych w Jak zmienić liczby na tekst w Excelu.

    Makro SpellNumber VBA do konwersji liczb na słowa

    Jak już wspomniałem, Microsoft nie chciał dodawać narzędzia do tego zadania. Jednak gdy zobaczyli, jak wielu użytkowników go potrzebuje, stworzyli i opublikowali na swojej stronie internetowej specjalne makro VBA. Makro robi to, co sugeruje jego nazwa SpellNumber. Wszystkie inne makra, na które się natknąłem, są oparte na kodzie Microsoftu.

    Możesz znaleźć makro wspomniane jako "formuła spellnumber". Jednak nie jest to formuła, ale funkcja makra, a dokładniej Funkcja zdefiniowana przez użytkownika w programie Excel (UDF).

    Opcja spellnumber jest w stanie pisać dolary i centy. Jeśli potrzebujesz innej waluty, możesz zmienić " dolar " i " cent " z nazwą swojej jedynki.

    Jeśli nie jesteś obeznany z VBA, poniżej znajdziesz kopię kodu. Jeśli nadal nie chcesz lub nie masz czasu, aby to uporządkować, skorzystaj z tego rozwiązania.

    1. Otwórz skoroszyt, w którym musisz przeliterować liczby.
    2. Naciśnij Alt+F11, aby otworzyć okno edytora Visual Basic.
    3. Jeśli masz otwartych kilka książek, sprawdź czy potrzebny skoroszyt jest aktywny korzystając z listy projektów w lewym górnym rogu edytora (jeden z elementów skoroszytu jest podświetlony na niebiesko).
    4. W menu edytora przejdź do Wkładka -> Moduł .
    5. Powinieneś zobaczyć okno o nazwie YourBook - Module1. Zaznacz cały kod w ramce poniżej i wklej go do tego okna.

      Option Explicit 'Main Function Function SpellNumber( ByVal MyNumber) Dim Dollars, Cents, Temp Dim DecimalPlace, Count ReDim Place(9) As String Place(2) = " Thousand " Place(3) = " Million " Place(4) = " Billion " Place(5) = " Trillion " MyNumber = Trim(Str(MyNumber)) DecimalPlace = InStr(MyNumber, "." ) If DecimalPlace> 0 Then Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1)) & _ "00", 2)) MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber "" Temp = GetHundreds(Right(MyNumber, 3)) If Temp "" Then Dollars = Temp & Place(Count) & Dollars If Len(MyNumber)> 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case Dollars Case "" Dollars = "No Dollars" Case "One" Dollars = "OneDollar" Case Else Dollars = Dollars & " Dollars" End Select Select Case Cents Case "" Cents = " and No Cents" Case "One" Cents = " and One Cent" Case Else Cents = " and " & Cents & " Cents" End Select SpellNumber = Dollars & Cents End Function Function GetHundreds( ByVal MyNumber) Dim Result As String If Val(MyNumber) = 0 Then Exit Function MyNumber = Right( "000" & MyNumber,3) ' Konwersja miejsca setek. If Mid(MyNumber, 1, 1) "0" Then Result = GetDigit(Mid(MyNumber, 1, 1)) & " Setki " End If ' Konwersja miejsca dziesiątek i jedynek. If Mid(MyNumber, 2, 1) "0" Then Result = Result & GetTens(Mid(MyNumber, 2)) Else Result = Result & GetDigit(Mid(MyNumber, 3)) End If GetHundreds = Result End Function Function GetTens(TensText) Dim Result As String Result = ""' Null out wartość funkcji tymczasowej. If Val(Left(TensText, 1)) = 1 Then ' Jeśli wartość pomiędzy 10-19... Select Case Val(TensText) Case 10: Wynik = "Ten" Case 11: Wynik = "Eleven" Case 12: Wynik = "Twelve" Case 13: Wynik = "Thirteen" Case 14: Wynik = "Fourteen" Case 15: Wynik = "Fifteen" Case 16: Wynik = "Sixteen" Case 17: Wynik = "Seventeen" Case 18: Wynik = "Eighteen" Case 19: Wynik =."Nineteen" Case Else End Select Else ' Jeżeli wartość pomiędzy 20-99... Select Case Val(Left(TensText, 1)) Case 2: Wynik = "Twenty " Case 3: Wynik = "Thirty " Case 4: Wynik = "Forty " Case 5: Wynik = "Fifty " Case 6: Wynik = "Sixty " Case 7: Wynik = "Seventy " Case 8: Wynik = "Eighty " Case 9: Wynik = "Ninety " Case Else End Select Result = Result & GetDigit _ (Right(TensText, 1)) ' Retrieveones place. end if GetTens = Result End Function Function GetDigit(Digit) Select Case Val(Digit) Case 1: GetDigit = "One" Case 2: GetDigit = "Two" Case 3: GetDigit = "Three" Case 4: GetDigit = "Four" Case 5: GetDigit = "Five" Case 6: GetDigit = "Six" Case 7: GetDigit = "Seven" Case 8: GetDigit = "Eight" Case 9: GetDigit = "Nine" Case Else : GetDigit = "" End Select End Function.

    6. Naciśnij Ctrl+S, aby zapisać zaktualizowany skoroszyt.

      Będziesz musiał ponownie zapisać swój skoroszyt. Przy próbie zapisania skoroszytu z makrem otrzymasz komunikat " W skoroszycie bez makr nie można zapisać następujących funkcji "

      Kliknij Nie. Po wyświetleniu nowego okna dialogowego wybierz opcję Zapisz jako. W polu " Zapisz jako typ " wybrać opcję " Skoroszyt z makrami w programie Excel ".

    Użyj makra SpellNumber w swoich arkuszach.

    Teraz możesz użyć funkcji SpellNumber w dokumentach Excela. Wpisz =SpellNumber(A2) do komórki, w której trzeba uzyskać liczbę zapisaną słownie. Tutaj A2 to adres komórki z liczbą lub kwotą.

    Tutaj można zobaczyć rezultat:

    Voila!

    Szybkie kopiowanie funkcji SpellNumber do innych komórek.

    Jeśli musisz przekonwertować całą tabelę, a nie tylko 1 komórkę, umieść kursor myszy w prawym dolnym rogu komórki z formułą, aż zmieni się w mały czarny krzyż:

    Kliknij lewym przyciskiem myszy i przeciągnij ją po kolumnie, aby wypełnić formułę. Zwolnij przycisk, aby zobaczyć wyniki:

    Uwaga. Należy pamiętać, że jeśli użyjesz SpellNumber z odnośnikiem do innej komórki, suma pisana będzie aktualizowana za każdym razem, gdy zmieni się liczba w komórce źródłowej.

    Można też wprowadzić numer bezpośrednio do funkcji, np, =SpellNumber(29.95) (29,95 - bez cudzysłowu i znaku dolara).

    Wady używania makra do zaklinania liczb w Excelu

    Po pierwsze, musisz znać VBA, aby zmodyfikować kod zgodnie ze swoimi potrzebami. Konieczne jest wklejenie kodu dla każdego skoroszytu, w którym planujesz go zmienić. W przeciwnym razie będziesz musiał stworzyć plik szablonu z makrami i skonfigurować Excela tak, aby ładował ten plik przy każdym uruchomieniu.

    Główną wadą używania makra jest to, że jeśli wyślesz skoroszyt do kogoś innego, ta osoba nie zobaczy tekstu, chyba że makro jest wbudowane w skoroszyt. A nawet jeśli jest wbudowane, dostanie alert, że w skoroszycie są makra.

    Literowanie liczb w słowach za pomocą specjalnego dodatku

    Dla użytkowników Excela, którzy potrzebują szybko przeliterować kwoty, ale nie mają czasu na naukę VBA lub wymyślanie obejść, stworzyliśmy specjalne narzędzie, które może szybko wykonać konwersję kwoty na słowa dla kilku popularnych walut. Poznaj dodatek Spell Number dołączony do najnowszego wydania naszego pakietu Ultimate Suite dla Excela.

    Oprócz gotowości do użycia, narzędzie jest naprawdę elastyczne w konwersji kwot na tekst:

    • Możesz wybrać jedną z następujących walut: USD, EUR, GBP, BIT, AUD.
    • Pisać część ułamkową w centach, groszach lub bitcentach.
    • Wybierz dowolną wielkość tekstu dla wyniku: MAŁA, DUŻA, Tytułowa lub Zdaniowa.
    • Pisownia części dziesiętnej na różne sposoby.
    • Włączenie lub pominięcie centów zerowych.

    Dodatek obsługuje wszystkie nowoczesne wersje, w tym Excel 365, Excel 2029, Excel 2016, Excel 2013 i Excel 2010. Zapraszamy do zapoznania się z innymi możliwościami na stronie głównej produktu, do której link znajduje się powyżej.

    A teraz zobaczmy to narzędzie pisowni liczb w akcji:

    1. Wybierz pustą komórkę dla wyniku.
    2. Na Ablebits zakładka, w Narzędzia grupa, kliknij Numer zaklęcia .
    3. W Numer wycieku W wyświetlonym oknie dialogowym skonfiguruj następujące rzeczy:
      • Dla Wybierz swój numer wybierz komórkę zawierającą kwotę, która ma być zapisana jako tekst.
      • Określić żądany obecnie , obudowa litery i sposób, w jaki część dziesiętna numeru należy przeliterować.
      • Określenie, czy uwzględniać zerowe centy, czy nie.
      • Wybierz, czy wynik ma być wstawiony jako wartość czy formuła.
    4. W dolnej części okna dialogowego, podgląd Jeśli jesteś zadowolony ze sposobu, w jaki zapisany jest Twój numer, kliknij Zaklęcie W przeciwnym razie należy spróbować innych ustawień.

    Poniższy zrzut ekranu demonstruje domyślne wybory i przeliterowaną liczbę w B2. Proszę zauważyć formułę (dokładniej funkcję zdefiniowaną przez użytkownika) w pasku formuły:

    I to jest szybka demonstracja tego, jak można zaklinać inne waluty:

    Wskazówki i uwagi:

    • Ponieważ Numer zaklęcia dodatek został zaprojektowany do obsługi rzeczywistych przypadków użycia, takich jak faktury i inne dokumenty finansowe, może on jedynie konwertować jeden numer w tym samym czasie.
    • Aby przeliterować kolumna liczb , wstawić formułę do pierwszej komórki, a następnie skopiować formułę w dół.
    • Jeśli istnieje szansa, że dane źródłowe mogą się zmienić w przyszłości, najlepiej jest wstawić wynik jako wzór , więc aktualizuje się automatycznie, gdy zmienia się oryginalny numer.
    • Przy wyborze wynik jako wzór opcja, niestandardowy funkcja zdefiniowana przez użytkownika (Jeśli planujesz udostępnić swój skoroszyt komuś, kto nie ma zainstalowanego pakietu Ultimate Suite, pamiętaj, aby przed udostępnieniem zastąpić formuły wartościami.

    Odwrotna konwersja - angielskie słowa na liczby

    Szczerze mówiąc, nie potrafię sobie wyobrazić, po co może być Ci to potrzebne, ale na wszelki wypadek :)

    Okazuje się, że Excel MVP, Jerry Latham, stworzył takie Excel User defined function (UDF) jako WordsToDigits Konwertuje angielskie słowa z powrotem na liczbę.

    Możesz pobrać podręcznik Jerry'ego WordsToDigits, aby zobaczyć kod UDF. Tutaj znajdziesz również jego przykłady użycia funkcji.

    Sposób działania funkcji można zobaczyć na arkuszu " Przykładowe wpisy ", gdzie będzie można również wprowadzić własne przykłady. Jeśli planujesz wykorzystać WordsToDigits w swoich dokumentach, informujemy, że funkcja ta ma ograniczenia. Na przykład nie rozpoznaje ułamków wprowadzonych słownie. Wszystkie szczegóły znajdziesz na stronie " Informacje " arkusz.

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.