Gondoltad volna valaha, hogy az Excel nem csak számolni tud, hanem akár egyenesen szöveggé is varázsolhatja a számokat? Nos, ez nem varázslat, hanem egy kis ügyesség kérdése, és mi most eláruljuk a titkot, hogyan írhatod ki a számokat betűvel magyarul az Excelben. Legyen szó számlákról, szerződésekről vagy bármilyen más dokumentumról, ahol a pontos összeg betűvel is szerepel, ez a tudás aranyat ér!
Miért jó, ha a számokat betűvel is kiírjuk?
Sokan felteszik a kérdést, hogy mi értelme a számokat betűvel is leírni. A válasz egyszerű: a pontosság és a biztonság. A kézzel írt számok könnyebben olvashatók és értelmezhetők, így minimalizálhatjuk a tévedések lehetőségét. Különösen fontos ez pénzügyi dokumentumok esetében, ahol egyetlen elírás is komoly problémákhoz vezethet.
Az alapok: Hogyan is működik ez?
Sajnos az Excel gyárilag nem kínál olyan funkciót, ami ezt automatikusan megoldaná. Ez azt jelenti, hogy szükségünk lesz egy kis egyedi kódra, azaz egy VBA (Visual Basic for Applications) makróra. Ne ijedj meg, nem kell programozó zseninek lenned, mi megmutatjuk lépésről lépésre!
A VBA makró: A kulcs a sikerhez
Íme, a VBA kód, amivel megoldhatod a problémát: (Másold be a VBA szerkesztőbe, ahogy az a következő részben le lesz írva)
Function SzámBetűvel(Szám As Double) As String
Dim Egész As Long, Tizedes As Integer
Dim Szöveg As String
Egész = Int(Szám)
Tizedes = Round((Szám - Egész) * 100)
Szöveg = EgészSzöveg(Egész)
If Tizedes > 0 Then
Szöveg = Szöveg & " egész " & TizedesSzöveg(Tizedes) & " század"
Else
Szöveg = Szöveg & " egész"
End If
SzámBetűvel = Szöveg
End Function
Function EgészSzöveg(Szám As Long) As String
Dim Milliárd As Long, Millió As Long, Ezer As Long, Száz As Long
Dim MilliárdSzöveg As String, MillióSzöveg As String, EzerSzöveg As String, SzázSzöveg As String
Milliárd = Int(Szám / 1000000000)
Szám = Szám Mod 1000000000
Millió = Int(Szám / 1000000)
Szám = Szám Mod 1000000
Ezer = Int(Szám / 1000)
Szám = Szám Mod 1000
Száz = Szám
If Milliárd > 0 Then
MilliárdSzöveg = SzázasSzöveg(Milliárd) & " milliárd "
End If
If Millió > 0 Then
MillióSzöveg = SzázasSzöveg(Millió) & " millió "
End If
If Ezer > 0 Then
EzerSzöveg = SzázasSzöveg(Ezer) & " ezer "
End If
If Száz > 0 Then
SzázSzöveg = SzázasSzöveg(Száz)
End If
EgészSzöveg = MilliárdSzöveg & MillióSzöveg & EzerSzöveg & SzázSzöveg
End Function
Function SzázasSzöveg(Szám As Long) As String
Dim Száz As Integer, Tizes As Integer, Egyes As Integer
Dim Szöveg As String
Száz = Int(Szám / 100)
Szám = Szám Mod 100
Tizes = Int(Szám / 10)
Egyes = Szám Mod 10
Select Case Száz
Case 1: Szöveg = "száz"
Case 2: Szöveg = "kétszáz"
Case 3: Szöveg = "háromszáz"
Case 4: Szöveg = "négyszáz"
Case 5: Szöveg = "ötszáz"
Case 6: Szöveg = "hatszáz"
Case 7: Szöveg = "hétszáz"
Case 8: Szöveg = "nyolcszáz"
Case 9: Szöveg = "kilencszáz"
End Select
If Tizes = 1 Then
Select Case Egyes
Case 0: Szöveg = Szöveg & " tíz"
Case 1: Szöveg = Szöveg & " tizenegy"
Case 2: Szöveg = Szöveg & " tizenkettő"
Case 3: Szöveg = Szöveg & " tizenhárom"
Case 4: Szöveg = Szöveg & " tizennégy"
Case 5: Szöveg = Szöveg & " tizenöt"
Case 6: Szöveg = Szöveg & " tizenhat"
Case 7: Szöveg = Szöveg & " tizenhét"
Case 8: Szöveg = Szöveg & " tizennyolc"
Case 9: Szöveg = Szöveg & " tizenkilenc"
End Select
Else
Select Case Tizes
Case 2: Szöveg = Szöveg & " húsz"
Case 3: Szöveg = Szöveg & " harminc"
Case 4: Szöveg = Szöveg & " negyven"
Case 5: Szöveg = Szöveg & " ötven"
Case 6: Szöveg = Szöveg & " hatvan"
Case 7: Szöveg = Szöveg & " hetven"
Case 8: Szöveg = Szöveg & " nyolcvan"
Case 9: Szöveg = Szöveg & " kilencven"
End Select
Select Case Egyes
Case 1: Szöveg = Szöveg & "egy"
Case 2: Szöveg = Szöveg & "kettő"
Case 3: Szöveg = Szöveg & "három"
Case 4: Szöveg = Szöveg & "négy"
Case 5: Szöveg = Szöveg & "öt"
Case 6: Szöveg = Szöveg & "hat"
Case 7: Szöveg = Szöveg & "hét"
Case 8: Szöveg = Szöveg & "nyolc"
Case 9: Szöveg = Szöveg & "kilenc"
End Select
End If
SzázasSzöveg = Szöveg
End Function
Function TizedesSzöveg(Szám As Integer) As String
Dim Tizes As Integer, Egyes As Integer
Dim Szöveg As String
Tizes = Int(Szám / 10)
Egyes = Szám Mod 10
If Tizes = 1 Then
Select Case Egyes
Case 0: Szöveg = "tíz"
Case 1: Szöveg = "tizenegy"
Case 2: Szöveg = "tizenkettő"
Case 3: Szöveg = "tizenhárom"
Case 4: Szöveg = "tizennégy"
Case 5: Szöveg = "tizenöt"
Case 6: Szöveg = "tizenhat"
Case 7: Szöveg = "tizenhét"
Case 8: Szöveg = "tizennyolc"
Case 9: Szöveg = "tizenkilenc"
End Select
Else
Select Case Tizes
Case 2: Szöveg = "húsz"
Case 3: Szöveg = "harminc"
Case 4: Szöveg = "negyven"
Case 5: Szöveg = "ötven"
Case 6: Szöveg = "hatvan"
Case 7: Szöveg = "hetven"
Case 8: Szöveg = "nyolcvan"
Case 9: Szöveg = "kilencven"
End Select
Select Case Egyes
Case 1: Szöveg = Szöveg & "egy"
Case 2: Szöveg = Szöveg & "kettő"
Case 3: Szöveg = Szöveg & "három"
Case 4: Szöveg = Szöveg & "négy"
Case 5: Szöveg = Szöveg & "öt"
Case 6: Szöveg = Szöveg & "hat"
Case 7: Szöveg = Szöveg & "hét"
Case 8: Szöveg = Szöveg & "nyolc"
Case 9: Szöveg = Szöveg & "kilenc"
End Select
End If
TizedesSzöveg = Szöveg
End Function
Hogyan illesszük be a makrót az Excelbe?
- Nyisd meg az Excel fájlt, amiben használni szeretnéd a funkciót.
- Nyomd meg az Alt + F11 billentyűkombinációt, ezzel megnyitod a VBA szerkesztőt.
- A VBA szerkesztőben menj a „Beszúrás” (Insert) menüre, majd válaszd a „Modul” (Module) opciót.
- Másold be a fenti kódot a modulba.
- Zárd be a VBA szerkesztőt.
- Mentsd el a fájlt „Excel makrót tartalmazó munkafüzet” (.xlsm) formátumban. Ez nagyon fontos, különben nem fog működni!
Használat: Hogyan hívhatjuk meg a függvényt?
Miután beillesztetted a kódot és elmentetted a fájlt, a SzámBetűvel() függvény már elérhető az Excelben. Egyszerűen írd be egy cellába a következő képletet:
=SzámBetűvel(A1)
Ahol az „A1” helyére azt a cellát írd, amiben a szám található, amit betűvel szeretnél kiírni. Például, ha az A1 cellában a 1234.56 szám szerepel, akkor a képlet a következő szöveget fogja visszaadni: „ezerkétszázharmincnégy egész ötvenhat század”.
Fontos tudnivalók és hibaelhárítás
- Nagy számok kezelése: A kód jelenleg a milliárd nagyságrendig kezeli a számokat. Ha nagyobb számokra van szükséged, módosítani kell a kódot.
- Formázás: A kód egyszerű formázást használ. Ha más formázásra van szükséged (például a „forint” szó hozzáadása), azt is a kódban kell módosítani.
- Makrók engedélyezése: Ha az Excel figyelmeztet, hogy a makrók le vannak tiltva, engedélyezd őket a „Fejlesztőeszközök” fülön (ha nincs ilyen fül, a Fájl -> Beállítások -> Szalag testreszabása menüpontban aktiváld).
Összegzés
A számok betűvel kiírása az Excelben nem egy bonyolult feladat, ha követed a fenti lépéseket. A VBA makró segítségével könnyedén bővítheted az Excel tudását, és automatizálhatod ezt a fontos funkciót. Reméljük, ez a cikk segített neked, és most már te is profin kezeled a számokat az Excelben!