Como converter rapidamente números em palavras em inglês no Excel?
A conversão de números em palavras no Excel é útil para preparar relatórios financeiros, documentos legais ou cheques onde você precisa especificar valores. Embora o Excel não ofereça uma função integrada para converter números diretamente em palavras, existem vários métodos que você pode usar para conseguir isso, desde o uso de uma macro Visual Basic for Applications (VBA) até suplementos de terceiros e aplicativos online. ferramentas. A seguir, exploraremos alguns desses métodos para ajudá-lo a encontrar a melhor solução para suas necessidades.
Converta números em palavras monetárias com a função definida pelo usuário
Se você deseja converter os números em palavras da moeda em inglês, deve aplicar o código VBA abaixo.
1. Mantenha pressionada a ALT + F11 chaves, e abre o Microsoft Visual Basic para janela de aplicativos.
2. Clique inserção > Móduloe cole o seguinte código no Janela Módulo.
Function SpellNumberToEnglish(ByVal pNumber)
'Update by Extendoffice
Dim Dollars, Cents
arr = Array("", "", " Thousand ", " Million ", " Billion ", " Trillion ")
pNumber = Trim(Str(pNumber))
xDecimal = InStr(pNumber, ".")
If xDecimal > 0 Then
Cents = GetTens(Left(Mid(pNumber, xDecimal + 1) & "00", 2))
pNumber = Trim(Left(pNumber, xDecimal - 1))
End If
xIndex = 1
Do While pNumber <> ""
xHundred = ""
xValue = Right(pNumber, 3)
If Val(xValue) <> 0 Then
xValue = Right("000" & xValue, 3)
If Mid(xValue, 1, 1) <> "0" Then
xHundred = GetDigit(Mid(xValue, 1, 1)) & " Hundred "
End If
If Mid(xValue, 2, 1) <> "0" Then
xHundred = xHundred & GetTens(Mid(xValue, 2))
Else
xHundred = xHundred & GetDigit(Mid(xValue, 3))
End If
End If
If xHundred <> "" Then
Dollars = xHundred & arr(xIndex) & Dollars
End If
If Len(pNumber) > 3 Then
pNumber = Left(pNumber, Len(pNumber) - 3)
Else
pNumber = ""
End If
xIndex = xIndex + 1
Loop
Select Case Dollars
Case ""
Dollars = "No Dollars"
Case "One"
Dollars = "One Dollar"
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
SpellNumberToEnglish = Dollars & Cents
End Function
Function GetTens(pTens)
Dim Result As String
Result = ""
If Val(Left(pTens, 1)) = 1 Then
Select Case Val(pTens)
Case 10: Result = "Ten"
Case 11: Result = "Eleven"
Case 12: Result = "Twelve"
Case 13: Result = "Thirteen"
Case 14: Result = "Fourteen"
Case 15: Result = "Fifteen"
Case 16: Result = "Sixteen"
Case 17: Result = "Seventeen"
Case 18: Result = "Eighteen"
Case 19: Result = "Nineteen"
Case Else
End Select
Else
Select Case Val(Left(pTens, 1))
Case 2: Result = "Twenty "
Case 3: Result = "Thirty "
Case 4: Result = "Forty "
Case 5: Result = "Fifty "
Case 6: Result = "Sixty "
Case 7: Result = "Seventy "
Case 8: Result = "Eighty "
Case 9: Result = "Ninety "
Case Else
End Select
Result = Result & GetDigit(Right(pTens, 1))
End If
GetTens = Result
End Function
Function GetDigit(pDigit)
Select Case Val(pDigit)
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
3. Salve este código e volte a planilha, em uma célula em branco, insira esta fórmula = SpellNumberToEnglish (A2)( A2 é a célula na qual você deseja converter o número em uma palavra monetária em inglês) e, em seguida, arraste a alça de preenchimento para baixo até as células nas quais deseja aplicar esta fórmula, todos os números foram escritos em palavras monetárias em inglês, veja a captura de tela:
Converta números em palavras monetárias com um recurso útil
Soletre números em palavras sem esforço com o Kutools para Excel! Quer você precise de expressões monetárias em inglês ou de algarismos alemães, Kutools, Números para Palavras recurso oferece suporte a mais de 40 idiomas, agilizando seu fluxo de trabalho. Simplifique seus relatórios financeiros, documentos legais e muito mais convertendo valores numéricos em palavras escritas precisas com apenas alguns cliques. Descubra como o Kutools for Excel pode tornar o processamento de dados mais rápido e preciso. Experimente hoje e experimente o poder da eficiência!
Depois de instalar Kutools for Excel, por favor, faça o seguinte:
1. Selecione a lista de números que deseja converter e clique em Kutools > Conteúdo > Números para Palavras, veja a captura de tela:
2. No Números para palavras de moeda caixa de diálogo, escolha o idioma que deseja usar, aqui selecionarei Inglês opção do Idiomas caixa de lista, veja a captura de tela:
3. E, em seguida, clique em OK botão, você verá que todos os números foram escritos em palavras da moeda em inglês:
Tips: Se você deseja obter apenas palavras em inglês, não palavras monetárias, verifique o Não convertido em moeda caixa de seleção do Opções seção, veja a captura de tela:
Converta números em palavras em inglês com a função definida pelo usuário
Não há recursos ou fórmulas que possam ajudá-lo a resolver essa tarefa diretamente no Excel, mas você pode criar uma Função Definida pelo Usuário para finalizá-la. Siga os seguintes passos:
1. Mantenha pressionada a ALT + F11 chaves, e abre o Microsoft Visual Basic para janela de aplicativos.
2. Clique inserção > Móduloe cole o seguinte código no Janela Módulo.
Function NumberstoWords(ByVal MyNumber)
'Update by Extendoffice
Dim xStr As String
Dim xFNum As Integer
Dim xStrPoint
Dim xStrNumber
Dim xPoint As String
Dim xNumber As String
Dim xP() As Variant
Dim xDP
Dim xCnt As Integer
Dim xResult, xT As String
Dim xLen As Integer
On Error Resume Next
xP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP > 0 Then
xPoint = " point "
xStr = Mid(xNumber, xDP + 1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum = 1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum, 1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNum
xNumber = Trim(Left(xNumber, xDP - 1))
End If
xCnt = 0
xResult = ""
xT = ""
xLen = 0
xLen = Int(Len(Str(xNumber)) / 3)
If (Len(Str(xNumber)) Mod 3) = 0 Then xLen = xLen - 1
Do While xNumber <> ""
If xLen = xCnt Then
xT = GetHundredsDigits(Right(xNumber, 3), False)
Else
If xCnt = 0 Then
xT = GetHundredsDigits(Right(xNumber, 3), True)
Else
xT = GetHundredsDigits(Right(xNumber, 3), False)
End If
End If
If xT <> "" Then
xResult = xT & xP(xCnt) & xResult
End If
If Len(xNumber) > 3 Then
xNumber = Left(xNumber, Len(xNumber) - 3)
Else
xNumber = ""
End If
xCnt = xCnt + 1
Loop
xResult = xResult & xPoint
NumberstoWords = xResult
End Function
Function GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As String
Dim xStrNum As String
Dim xStr As String
Dim xI As Integer
Dim xBB As Boolean
xStrNum = xHDgt
xRStr = ""
On Error Resume Next
xBB = True
If Val(xStrNum) = 0 Then Exit Function
xStrNum = Right("000" & xStrNum, 3)
xStr = Mid(xStrNum, 1, 1)
If xStr <> "0" Then
xRStr = GetDigits(Mid(xStrNum, 1, 1)) & "Hundred "
Else
If xB Then
xRStr = "and "
xBB = False
Else
xRStr = " "
xBB = False
End If
End If
If Mid(xStrNum, 2, 2) <> "00" Then
xRStr = xRStr & GetTenDigits(Mid(xStrNum, 2, 2), xBB)
End If
GetHundredsDigits = xRStr
End Function
Function GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As String
Dim xI As Integer
Dim xArr_1() As Variant
Dim xArr_2() As Variant
Dim xT As Boolean
xArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = True
On Error Resume Next
If Val(Left(xTDgt, 1)) = 1 Then
xI = Val(Right(xTDgt, 1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
Else
xI = Val(Left(xTDgt, 1))
If Val(Left(xTDgt, 1)) > 1 Then
If xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt, 1)))
xT = False
End If
If xStr = "" Then
If xB Then
xStr = "and "
End If
End If
If Right(xTDgt, 1) <> "0" Then
xStr = xStr & GetDigits(Right(xTDgt, 1))
End If
End If
GetTenDigits = xStr
End Function
Function GetDigits(xDgt)
Dim xStr As String
Dim xArr_1() As Variant
xArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume Next
xStr = xArr_1(Val(xDgt))
GetDigits = xStr
End Function
3. Salve e feche este código e volte para a planilha, em uma célula em branco, insira esta fórmula = NumberstoWords (A2)( A2 é a célula para a qual deseja converter o número em uma palavra em inglês), consulte a captura de tela:
4. Então aperte Entrar e selecione a célula C2 e arraste a alça de preenchimento para o intervalo que você deseja que contenha esta fórmula. Todos os valores numéricos foram convertidos em suas palavras inglesas correspondentes.
A escolha do método certo depende da sua preferência e da frequência com que você precisa converter números em palavras no Excel. O VBA oferece mais flexibilidade e integração com o Excel, enquanto os suplementos podem fornecer uma solução mais simples. Seguindo esses métodos, você pode converter números em palavras com eficiência em sua planilha do Excel. Se você estiver interessado em explorar mais dicas e truques do Excel, nosso site oferece milhares de tutoriais. Por favor clique aqui para acessá-los.
Melhores ferramentas de produtividade de escritório
Aprimore suas habilidades de Excel com o Kutools para Excel e experimente uma eficiência como nunca antes. Kutools para Excel oferece mais de 300 recursos avançados para aumentar a produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
Office Tab traz interface com guias para o Office e torna seu trabalho muito mais fácil
- Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
- Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!