Infelizmente, o Excel 2007 não possui uma função nativa para converter números em extenso. No entanto, é possível criar uma fórmula personalizada usando VBA (Visual Basic for Applications) para realizar essa conversão.
Segue abaixo um exemplo de código para criar essa fórmula personalizada:
Function NumPorExtenso(ByVal x As Double) As StringDim c, d, u, z, r As IntegerDim s As String
'Recipientes para centena, dezena e unidade c = Int(x / 100) d = Int((x Mod 100) / 10) u = x Mod 10 'Recipientes para os valores entre 10 e 19 z = x Mod 100 'Valores especiais If z = 10 Then s = "Dez" If z = 11 Then s = "Onze" If z = 12 Then s = "Doze" If z = 13 Then s = "Treze" If z = 14 Then s = "Catorze" If z = 15 Then s = "Quinze" If z = 16 Then s = "Dezesseis" If z = 17 Then s = "Dezessete" If z = 18 Then s = "Dezoito" If z = 19 Then s = "Dezenove" 'Centena Select Case cCase 1: s = "Cem"Case 2: s = "Duzentos"Case 3: s = "Trezentos"Case 4: s = "Quatrocentos"Case 5: s = "Quinhentos"Case 6: s = "Seiscentos"Case 7: s = "Setecentos"Case 8: s = "Oitocentos"Case 9: s = "Novecentos" End Select 'Dezena Select Case dCase 1: If z > 19 Then s = "Dez"Case 2: s = IIf(s = "", "Vinte", s & " e Vinte")Case 3: s = IIf(s = "", "Trinta", s & " e Trinta")Case 4: s = IIf(s = "", "Quarenta", s & " e Quarenta")Case 5: s = IIf(s = "", "Cinquenta", s & " e Cinquenta")Case 6: s = IIf(s = "", "Sessenta", s & " e Sessenta")Case 7: s = IIf(s = "", "Setenta", s & " e Setenta")Case 8: s = IIf(s = "", "Oitenta", s & " e Oitenta")Case 9: s = IIf(s = "", "Noventa", s & " e Noventa") End Select 'Unidade Select Case uCase 1: If z < 10 Or z > 19 Then s = IIf(s = "", "Um", s & " e Um")Case 2: If z < 10 Or z > 19 Then s = IIf(s = "", "Dois", s & " e Dois")Case 3: If z < 10 Or z > 19 Then s = IIf(s = "", "Três", s & " e Três")Case 4: If z < 10 Or z > 19 Then s = IIf(s = "", "Quatro", s & " e Quatro")Case 5: If z < 10 Or z > 19 Then s = IIf(s = "", "Cinco", s & " e Cinco")Case 6: If z < 10 Or z > 19 Then s = IIf(s = "", "Seis", s & " e Seis")Case 7: If z < 10 Or z > 19 Then s = IIf(s = "", "Sete", s & " e Sete")Case 8: If z < 10 Or z > 19 Then s = IIf(s = "", "Oito", s & " e Oito")Case 9: If z < 10 Or z > 19 Then s = IIf(s = "", "Nove", s & " e Nove") End Select 'Número zero If x = 0 Then s = "Zero" NumPorExtenso = s
End Function
Exemplo:
Suponha que você queira converter o número 123 em extenso. Siga os passos acima para criar a fórmula personalizada.
Na célula A1, digite o número 123. Na célula B1, digite a fórmula =NumPorExtenso(A1).
A célula B1 exibirá o resultado "Cento e Vinte e Três".
Observação: essa fórmula personalizada funciona para números inteiros positivos de até 999. Para números decimais, você precisaria adaptar a fórmula. Além disso, o código foi escrito em Português Brasileiro, portanto, se você estiver usando outra versão do Excel, pode ser necessário ajustar as palavras usadas na fórmula.