如何在Excel中将数字转换为文字

  • Share This
Michael Brown

在这篇文章中,我将向你展示在Excel 2019、2016、2013和其他版本中把货币数字转换成英文单词的两种快速和免费的方法。

Microsoft Excel是一个计算这个和那个的伟大程序。 它最初是为了处理大型数据阵列而开发的。 然而,它也可以快速有效地创建会计记录,如发票、评估或资产负债表。

在或多或少可靠的支付文件中,有必要将数字与文字形式重复。 伪造打字的数字比手写的数字要难得多。 一些骗子可以试图将3000个数字变成8000个,而将 "3 "秘密替换成 "8 "几乎是不可能的。

因此,你需要的不仅仅是在Excel中把数字转换成文字(如123.45转换成 "一百二十三,四十五"),而是拼出美元和美分(如29.95美元为 "二十九美元和九十九美分"),英镑和便士为英镑,欧元和欧分为欧元,等等。

即使是最新版本的Excel也没有内置的数字拼写工具,更不用说早期的版本了。 但这正是Excel真正优秀的时候。 你可以随时利用公式来改进它的功能,在所有的

组合,VBA宏,或第三方插件。

下面你会发现两种将数字从数字转换为文字的方法

    而且,有可能,你可能需要在Excel中把Words转换成Numbers

    注意:如果你正在寻找 数字到文本的转换 对于这一点,你可以使用TEXT函数或《如何在Excel中把数字变成文本》中描述的其他一些方法。

    SpellNumber VBA宏将数字转换为文字

    正如我已经提到的,微软并不想为这项任务增加一个工具。 然而,当他们看到有多少用户需要它时,他们在他们的网站上创建并发布了这个特殊的VBA宏。 这个宏的作用正如它的名字SpellNumber一样。 我遇到的所有其他宏都是基于微软的代码。

    你可以找到提到的宏 "spellnumber formula"。 然而,它不是一个公式,而是一个宏函数,或者更精确地说 Excel用户定义函数 (UDF)。

    拼写数字选项能够书写美元和美分。 如果你需要不同的货币,你可以改变" 美元 "和" "与你的那个人的名字。

    如果你不是一个精通VBA的人,下面你可以找到一份代码。 如果你还是不想或没有时间来整理,请使用这个解决方案。

    1. 打开你需要拼写数字的工作簿。
    2. 按Alt+F11键,打开Visual Basic编辑器窗口。
    3. 如果你有几个书打开了,使用编辑器左上角的项目列表检查需要的工作簿是否处于活动状态(其中一个工作簿元素用蓝色突出显示)。
    4. 在编辑器菜单中,进入 插入 -> 模块 .
    5. 你应该看到一个名为YourBook - Module1的窗口,选择下面框架中的所有代码并将其粘贴到这个窗口。

      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 GetHundreds( ByVal MyNumber) Dim Result As String If Val( MyNumber) = 0 Then Exit Function MyNumber = Right( "000" & MyNumber,3) ' 转换百位。 If Mid(MyNumber, 1, 1) "0" Then Result = GetDigit(Mid(MyNumber, 1, 1) & " Hundred " End If ' 转换十位和一位。 If Mid(MyNumber, 2, 1) "0" Then Result = Result & GetTens(Mid(MyNumber, 2) Else Result = Result & GetDigit(Mid(MyNumber, 3) End If GetHundreds = Result 结束函数 GetTens(TensText) Dim Result As String Result = ""如果Val(Left(TensText, 1)) = 1 那么 ' 如果数值在10-19之间... 选择案例Val(TensText) 案例10:结果="十" 案例11:结果="十一" 案例12:结果="十二" 案例13:结果="十三" 案例14:结果="十四" 案例15:结果="十五" 案例16:结果="十六" 案例17:结果="十七" 案例18:结果="十八" 案例19:结果="Nineteen" Case Else End Select Else ' If value between 20-99... Select Case Val(Left(TensText, 1)) Case 2: Result = "20 " Case 3: Result = "30 " Case 4: Result = "40 " Case 5: Result = "50 " Case 6: Result = "60 " Case 7: Result = "70 " Case 8: Result = "80 " Case Else End Select Result = Result & GetDigit _ (Right(TensText, 1) ) ' RetrieveEnd If GetTens = Result End Function GetDigit(Digit) Select Case Val(Digit) Case 1: GetDigit = "1" Case 2: GetDigit = "2" Case 3: GetDigit = "3" Case 4: GetDigit = "4" Case 5: GetDigit = "5" Case 6: GetDigit = "6" Case 7: GetDigit = "7" Case 8: GetDigit = "8" Case 9: GetDigit = "9" Case Else : GetDigit = " " End Select End Function

    6. 按Ctrl+S保存更新的工作簿。

      你需要重新保存你的工作簿。 当你试图用宏保存工作簿时,你会得到消息" 以下功能不能保存在无宏工作簿中 "

      当你看到一个新的对话框时,选择保存为选项。 在" 保存为类型 "选取选项" 启用Excel宏的工作簿 ".

    在你的工作表中使用SpellNumber巨集

    现在你可以使用函数 咒语号码 在你的Excel文件中输入 =SpellNumber(A2) 这里A2是有数字或金额的单元格的地址。

    在这里你可以看到结果。

    Voila!

    快速复制SpellNumber函数到其他单元格。

    如果你需要转换整个表格,而不仅仅是一个单元格,请将鼠标光标放在有公式的单元格的右下角,直到它变成一个小黑叉。

    左键点击并拖动它横跨一栏来填入公式。 松开按钮即可看到结果。

    注意:请记住,如果你使用SpellNumber与另一个单元格的链接,每次源单元格中的数字发生变化时,写入的总和就会更新。

    你也可以直接在函数中输入数字,比如说。 =SpellNumber(29.95) (29.95 - 不含引号和美元符号)。

    在Excel中使用宏来拼写数字的弊端

    首先,你必须了解VBA,以便根据你的需要修改代码。 有必要为每个工作簿粘贴代码,在那里你打算改变它。 否则,你将需要创建一个带有宏的模板文件,并配置Excel在每次启动时加载该文件。

    使用宏的主要缺点是,如果你把工作簿发给别人,这个人将看不到文本,除非宏是内置在工作簿中的。 即使是内置的,他们也会得到一个提示,说工作簿中有宏。

    使用一个特殊的插件将数字拼成单词

    对于那些需要快速拼写金额,但又没有时间学习VBA或想办法解决的Excel用户,我们创建了一个特殊的工具,可以快速进行几种流行货币的金额到文字的转换。 请见见我们最新发布的Excel终极套件中包含的拼写数字插件。

    除了可以随时使用外,该工具在将金额转换为文本方面确实很灵活。

    • 你可以选择以下货币之一:美元、欧元、英镑、比特、澳元。
    • 用美分、便士或比特拼出小数部分。
    • 为结果选择任何文本大小写:小写、大写、标题大小写或句子大小写。
    • 用不同的方式拼出小数部分。
    • 包括或省略零分。

    该插件支持所有现代版本,包括Excel 365、Excel 2029、Excel 2016、Excel 2013和Excel 2010。 请随时在上述链接的产品主页上探索其他功能。

    现在,让我们看看这个数字拼写工具的运作。

    1. 选择一个空单元格作为结果。
    2. 关于 机会 选项卡,在 公用事业 组,点击 咒语编号 .
    3. 溢出物编号 在出现的对话窗口中,配置以下内容。
      • 对于 选择你的号码 框,选择包含你想写成文本的金额的单元格。
      • 指定所需的 目前 , 字母盒 和的方式。 小数部分 的数字应该是拼出来的。
      • 定义是否包括零分。
      • 选择是否将结果作为数值或公式插入。
    4. 在对话窗口的底部。 预览 如果你对你的数字的写法感到满意,请点击 咒语 否则,请尝试不同的设置。

    下面的截图展示了默认选择和B2中的拼写数字。 请注意公式栏中有一个公式(更准确地说,是一个用户定义的函数)。

    而这是一个快速示范,说明其他货币可以被拼写出来。

    提示和说明。

    • 因为 咒语编号 该插件被设计用来处理现实生活中的使用情况,如发票和其他财务文件,它只能转换 一个数字 在一个时间。
    • 要拼出一个 数列 ,在第一个单元格中插入一个公式,然后向下复制该公式。
    • 如果你的源数据有可能在未来发生变化,那么最好的办法是 将结果作为公式插入 ,所以它随着原始号码的变化而自动更新。
    • 在选择 结果如公式 选项,一个自定义的 用户定义的功能 (如果你打算与没有安装Ultimate Suite的人分享你的工作簿,记得在分享前用数值替换公式。

    逆向转换--英语单词转换成数字

    坦率地说,我无法想象你为什么会需要它。 只是为了以防万一... :)

    看来,Excel MVP,Jerry Latham,创建了这样的Excel用户定义函数(UDF),即 词语到数字 它将英语单词转换为数字。

    你可以下载Jerry的WordsToDigits工作簿来查看UDF代码。 在这里你还可以找到他关于如何使用该函数的例子。

    你可以在工作表上看到该功能是如何工作的" 参赛作品样本 如果你打算在你的文件中使用WordsToDigits,请注意这个功能是有限制的。 例如,它不能识别在单词中输入的分数。 你可以在""上找到所有细节。 信息 "张。

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.