Uso de fórmulas (limitadas a números más pequeños):
1. Número de texto: Use la función `Text` para convertir el número en texto. Por ejemplo, `=texto (10," 0 ")` devolverá "10".
2. Tabla de búsqueda: Cree una tabla de búsqueda que contenga números y sus ortografía correspondiente. Esta tabla deberá incluir todos los números que desea convertir.
3. Vlookup: Use la función `vlookup` para buscar el número en la tabla de búsqueda y devolver la ortografía correspondiente. Por ejemplo, `=Vlookup (A1, Tabla1,2, False)` buscará el valor en la celda A1 en la tabla "Tabla1" y devolverá el valor en la segunda columna.
Limitaciones del enfoque de fórmula:
* Rango limitado: Este método solo funciona para números dentro del rango de su tabla de búsqueda.
* Configuración compleja: Crear y mantener una gran tabla de búsqueda para todos los números posibles puede ser tedioso.
Uso del código VBA (más flexible):
1. Abra el editor VBA: Presione `Alt + F11` para abrir el editor de Visual Basic.
2. Insertar módulo: Inserte un nuevo módulo haciendo clic en "Insertar"> "Módulo".
3. Pegue el código: Pegue el siguiente código en el módulo:
`` `VBA
Function spellnumber (byval mynumber como doble) como cadena
Dim Cientos como cadena, decenas como cadena, un como cadena
Dim lugar como entero
'Manejar números negativos
Si mynumber <0 entonces
SpellNumber ="Negativo" y SpellNumber (ABS (MyNumber))
Función de salida
Final si
'Manejar cero
Si mynumber =0 entonces
SpellNumber ="cero"
Función de salida
Final si
'Manejo de números superiores a 999,999,999
Si MyNumber> 999999999 entonces
SpellNumber ="Número demasiado grande"
Función de salida
Final si
'Crear matrices para la ortografía numérica
Dim oneArray () como cadena
OneSarray =Split ("Zero, uno, dos, tres, cuatro, cinco, seis, siete, ocho, nueve", ",")
Dim TeensArray () como cadena
TeensArray =Split ("diez, once, doce, trece, catorce, quince, dieciséis, diecisiete, dieciocho años, diecinueve", ",")
Dim tensArray () como cadena
TensArray =Split ("Veinte, treinta, cuarenta, cincuenta, sesenta, setenta, ochenta, noventa", ",")
'Desglose el número en sus valores de lugar
Lugar =1
Cientos =""
TENS =""
Un =""
Hacer mientras mynumber> 0
Seleccionar lugar de casos
Caso 1
One =OneSarray (MyNumber Mod 10)
Mynumber =int (mynumber / 10)
Caso 2
Si mynumber mod 10 =1 entonces
TENS =TeensArray (MyNumber Mod 100 - 10)
Mynumber =int (mynumber / 100)
Demás
TENS =TensArray (MyNumber Mod 10 - 1)
Mynumber =int (mynumber / 10)
Final si
Caso 3
Cientos =OneSarray (MyNumber Mod 10) y "cien"
Mynumber =int (mynumber / 10)
Caso 4
Si mynumber mod 10 =1 entonces
TENS =TeensArray (MyNumber Mod 100 - 10)
Mynumber =int (mynumber / 100)
Demás
TENS =TensArray (MyNumber Mod 10 - 1)
Mynumber =int (mynumber / 10)
Final si
Cientos =OneSarray (MyNumber Mod 10) y "Mil"
Mynumber =int (mynumber / 10)
Caso 5
One =OneSarray (MyNumber Mod 10)
Mynumber =int (mynumber / 10)
Caso 6
Si mynumber mod 10 =1 entonces
TENS =TeensArray (MyNumber Mod 100 - 10)
Mynumber =int (mynumber / 100)
Demás
TENS =TensArray (MyNumber Mod 10 - 1)
Mynumber =int (mynumber / 10)
Final si
Caso 7
Cientos =OneSarray (MyNumber Mod 10) y "cien"
Mynumber =int (mynumber / 10)
Caso 8
Si mynumber mod 10 =1 entonces
TENS =TeensArray (MyNumber Mod 100 - 10)
Mynumber =int (mynumber / 100)
Demás
TENS =TensArray (MyNumber Mod 10 - 1)
Mynumber =int (mynumber / 10)
Final si
Cientos =OneSarray (MyNumber Mod 10) y "Millones"
Mynumber =int (mynumber / 10)
Final seleccionar
Lugar =lugar + 1
Bucle
'Combine los valores de lugar en una sola cadena
SpellNumber =cientos y decenas y otros
Función final
`` `` ``
4. Use la función en Excel: En su hoja de Excel, puede usar la función como esta:`=Spellnumber (A1)`, donde A1 contiene el número que desea convertir.
Ventajas del enfoque VBA:
* Números más grandes: Maneja números de hasta 999,999,999.
* Sin tabla de búsqueda: No es necesario crear y mantener una tabla de búsqueda.
nota: El código VBA requiere habilitar las macros en Excel.
Recuerde elegir el enfoque que mejor se adapte a sus necesidades y al tamaño de los números que necesita para convertir.