Strona główna  /  Komputer  /  Jak wpisać kwotę słownie w Excelu?

✦ AI
Arkusz kalkulacyjny Excel z danymi finansowymi oraz pióro z odręcznie zapisaną kwotą na biurku.

Jak wpisać kwotę słownie w Excelu?

Komputer

Microsoft Excel nie ma wbudowanej funkcji, która zapisuje kwoty słownie po polsku. Możesz jednak użyć formatowania niestandardowego dla pojedynczych, stałych wartości, dodatku albo własnej funkcji VBA do automatyzacji faktur i innych dokumentów.

Którą metodę wybrać?

Wybór zależy przede wszystkim od tego, czy potrzebujesz jednorazowo wyświetlić konkretny napis, czy przeliczać wiele kwot pobieranych z komórek. Formatowanie zmienia wyłącznie sposób prezentacji, natomiast VBA i dodatki mogą rzeczywiście konwertować liczby na tekst.

Metoda Łatwość wdrożenia Automatyzacja Zastosowanie
Formatowanie niestandardowe Bardzo łatwe Brak konwersji Stała kwota i prosty wydruk
VBA Średnia Wysoka Faktury, zestawienia i własne funkcje
Dodatek Excel Łatwa po instalacji Wysoka Gotowe funkcje bez pisania kodu

Jak użyć formatowania niestandardowego?

Ta metoda sprawdzi się, gdy w komórce znajduje się konkretna kwota, na przykład 1500, a dokument ma pokazywać napis „tysiąc pięćset złotych”. Tekst wpisany w cudzysłowie jest wtedy tylko maską wyświetlania.

  1. Wpisz kwotę do komórki, na przykład 1500.
  2. Zaznacz komórkę i otwórz okno Formatowanie komórek. Możesz użyć skrótu Ctrl+1.
  3. Przejdź do kategorii Niestandardowe.
  4. W polu „Typ” wpisz format, na przykład "tysiąc pięćset złotych", a następnie zatwierdź przyciskiem OK.

Arkusz Excela z kwotą 1500 wyświetloną słownie za pomocą formatowania niestandardowego

W arkuszu zobaczysz zapis słowny, ale pasek formuły nadal będzie zawierał liczbę 1500. To oznacza, że Excel wciąż może wykonywać na niej działania matematyczne.

Formatowanie niestandardowe nie zamienia liczby na tekst. Nie odmienia automatycznie słów, nie rozpoznaje groszy i nie utworzy poprawnego zapisu dla kolejnych kwot. Przy wartości 1500,50 nie otrzymasz więc automatycznie formy „tysiąc pięćset złotych 50/100”.

Jak stworzyć funkcję kwota słownie w VBA?

VBA, czyli Visual Basic for Applications, pozwala dodać do Excela własną funkcję. Po jej utworzeniu możesz używać jej podobnie jak standardowych funkcji arkusza, na przykład jako =LiczbaSlownie(A1).

Najpierw włącz kartę Deweloper, jeśli nie jest widoczna:

  1. Kliknij prawym przyciskiem myszy dowolną kartę wstążki i wybierz „Dostosuj wstążkę”.
  2. W sekcji „Karty główne” zaznacz „Deweloper”.
  3. Kliknij OK.
  4. Naciśnij Alt+F11, aby otworzyć edytor Visual Basic.
  5. W oknie projektu wybierz skoroszyt, kliknij go prawym przyciskiem myszy i wybierz „Insert” oraz „Module”.
  6. Wklej kod funkcji do otwartego modułu.

Edytor VBA otwarty obok arkusza Excel podczas tworzenia własnej funkcji

Poniższy kod obsługuje liczby od zera do 999 999 999,99, liczby ujemne oraz grosze zapisane w standardzie 00/100. W polskiej praktyce księgowej zapis ułamkowy, na przykład „50/100”, jest często stosowany na fakturach i przelewach.

Option Explicit

Public Function LiczbaSlownie(ByVal Kwota As Variant) As String
    Dim wartosc As Currency
    Dim zlote As Long
    Dim grosze As Long
    Dim wynik As String
    Dim minus As String

    If IsEmpty(Kwota) Or Not IsNumeric(Kwota) Then
        LiczbaSlownie = "#Nieprawidłowa kwota"
        Exit Function
    End If

    wartosc = CCur(Kwota)

    If wartosc < 0 Then
        minus = "minus "
        wartosc = Abs(wartosc)
    End If

    wartosc = CCur(Application.WorksheetFunction.Round(wartosc, 2))
    zlote = Fix(wartosc)
    grosze = CInt((wartosc - zlote) * 100)

    wynik = LiczbaDoTekstu(zlote) & " "
    wynik = wynik & OdmianaZlotego(zlote) & " "
    wynik = wynik & Format(grosze, "00") & "/100"

    LiczbaSlownie = UCase(Left(minus & wynik, 1)) & _
                    Mid(minus & wynik, 2)
End Function

Private Function LiczbaDoTekstu(ByVal liczba As Long) As String
    Dim jednosci As Variant
    Dim nastki As Variant
    Dim dziesiatki As Variant
    Dim setki As Variant
    Dim wynik As String
    Dim reszta As Long

    jednosci = Array("", "jeden", "dwa", "trzy", "cztery", _
        "pięć", "sześć", "siedem", "osiem", "dziewięć")
    nastki = Array("dziesięć", "jedenaście", "dwanaście", _
        "trzynaście", "czternaście", "piętnaście", "szesnaście", _
        "siedemnaście", "osiemnaście", "dziewiętnaście")
    dziesiatki = Array("", "", "dwadzieścia", "trzydzieści", _
        "czterdzieści", "pięćdziesiąt", "sześćdziesiąt", _
        "siedemdziesiąt", "osiemdziesiąt", "dziewięćdziesiąt")
    setki = Array("", "sto", "dwieście", "trzysta", "czterysta", _
        "pięćset", "sześćset", "siedemset", "osiemset", "dziewięćset")

    If liczba = 0 Then
        LiczbaDoTekstu = "zero"
        Exit Function
    End If

    If liczba >= 1000000 Then
        wynik = LiczbaDoTekstu(liczba \ 1000000) & " milion"
        If (liczba \ 1000000) Mod 10 >= 2 And _
           (liczba \ 1000000) Mod 10 <= 4 Then wynik = wynik & "y"
        If (liczba \ 1000000) Mod 10 = 0 Or _
           (liczba \ 1000000) Mod 10 > 4 Then wynik = wynik & "ów"
        reszta = liczba Mod 1000000
        If reszta > 0 Then wynik = wynik & " " & LiczbaDoTekstu(reszta)
        LiczbaDoTekstu = wynik
        Exit Function
    End If

    If liczba >= 1000 Then
        wynik = LiczbaDoTekstu(liczba \ 1000) & " tysiąc"
        If (liczba \ 1000) Mod 10 >= 2 And _
           (liczba \ 1000) Mod 10 <= 4 Then wynik = wynik & "e"
        If (liczba \ 1000) Mod 10 = 0 Or _
           (liczba \ 1000) Mod 10 > 4 Then wynik = wynik & "y"
        reszta = liczba Mod 1000
        If reszta > 0 Then wynik = wynik & " " & LiczbaDoTekstu(reszta)
        LiczbaDoTekstu = wynik
        Exit Function
    End If

    If liczba >= 100 Then
        wynik = setki(liczba \ 100)
        reszta = liczba Mod 100
    Else
        reszta = liczba
    End If

    If reszta >= 20 Then
        wynik = wynik & " " & dziesiatki(reszta \ 10)
        If reszta Mod 10 > 0 Then wynik = wynik & " " & jednosci(reszta Mod 10)
    ElseIf reszta >= 10 Then
        wynik = wynik & " " & nastki(reszta - 10)
    ElseIf reszta > 0 Then
        wynik = wynik & " " & jednosci(reszta)
    End If

    LiczbaDoTekstu = Trim(wynik)
End Function

Private Function OdmianaZlotego(ByVal liczba As Long) As String
    Dim dwieOstatnie As Long
    dwieOstatnie = liczba Mod 100

    If liczba = 1 Then
        OdmianaZlotego = "złoty"
    ElseIf dwieOstatnie >= 12 And dwieOstatnie <= 14 Then
        OdmianaZlotego = "złotych"
    ElseIf liczba Mod 10 >= 2 And liczba Mod 10 <= 4 Then
        OdmianaZlotego = "złote"
    Else
        OdmianaZlotego = "złotych"
    End If
End Function

Po zamknięciu edytora wpisz w arkuszu formułę:

=LiczbaSlownie(A1)

Jeżeli komórka A1 zawiera wartość 1500,50, wynik będzie miał postać zbliżoną do „Tysiąc pięćset złotych 50/100”. Kod zaokrągla wartość do dwóch miejsc po przecinku, dlatego nie należy traktować go jako zamiennika kontroli księgowej dla nietypowych danych lub bardzo dużych sum.

Wynik funkcji VBA zapisującej kwotę w złotych i groszach słownie

Jak zainstalować dodatek do Excela?

Dodatek jest rozwiązaniem dla osób, które chcą korzystać z gotowej funkcji bez samodzielnego pisania kodu. Pliki dodatków Excela mogą mieć rozszerzenia .xla albo .xlam. Przykładowy dodatek slownie.xla udostępnia funkcje w rodzaju =slownie(A1), zależnie od wersji i dokumentacji konkretnego pliku.

  1. Pobierz dodatek wyłącznie ze źródła, któremu ufasz, i zapisz plik na dysku.
  2. W Excelu wybierz „Plik”, „Opcje”, „Dodatki”.
  3. W polu „Zarządzaj” wybierz „Dodatki programu Excel” i kliknij „Przejdź”.
  4. Wybierz „Przeglądaj”, wskaż pobrany plik i zatwierdź dodanie.
  5. Zaznacz dodatek na liście i kliknij OK.

Ścieżka folderu dodatków może różnić się zależnie od systemu i wersji pakietu Office. Dlatego bezpieczniej użyć przycisku „Przeglądaj” w oknie dodatków niż ręcznie kopiować plik do wskazanego katalogu. Po instalacji sprawdź w instrukcji dodatku, jak nazywa się jego funkcja i jakie argumenty przyjmuje.

Na co uważać przy makrach i dodatkach?

Makra dają Excelowi dodatkowe możliwości, ale jednocześnie mogą uruchamiać kod zapisany w skoroszycie lub dodatku. Przed użyciem gotowego pliku sprawdź jego pochodzenie i zakres działania.

  • Zapisz skoroszyt z funkcją VBA jako .xlsm, czyli skoroszyt programu Excel z obsługą makr.
  • Nie zapisuj pliku z kodem jako .xlsx, ponieważ ten format nie przechowuje makr.
  • Nie włączaj makr w dodatkach pobranych z nieznanych stron.
  • Używaj zaufanych lokalizacji Excela tylko dla plików, których pochodzenie i zawartość są znane.
  • Przed wysłaniem faktury sprawdź kwotę cyfrową, zapis słowny, odmianę waluty i grosze.

Do dokumentów finansowych najczęściej stosuje się zapis groszy jako ułamek, na przykład „Dwa tysiące złotych 00/100” albo „Dwa tysiące złotych 50/100”. Jeżeli potrzebujesz tylko jednego stałego napisu, wybierz formatowanie. Przy regularnym tworzeniu dokumentów lepiej sprawdzi się funkcja VBA lub sprawdzony dodatek.


Artykuł nie stanowi porady finansowej ani księgowej. Przed zastosowaniem automatycznego zapisu w dokumentach firmowych sprawdź wynik i zgodność z procedurami obowiązującymi w Twojej organizacji.

Redakcja Plikus

Kochamy świat wirtualny i technologię, dlatego każdego dnia chcemy dzielić się z Tobą specjalistyczną wiedzą o komputerach, komponentach, Internecie i sprzętach, które ułatwią Ci codzienne życie.

Może Cię również zainteresować

Potrzebujesz więcej informacji?