Agregue ceros / 0 a los valores existentes de Excel a cierta longitud


299

Hay muchas, muchas preguntas y respuestas de calidad en SO con respecto a cómo evitar que los ceros iniciales se eliminen al importar o exportar desde Excel. Sin embargo, ya tengo una hoja de cálculo que tiene valores truncados como números cuando, de hecho, deberían haberse manejado como cadenas. Necesito limpiar los datos y volver a agregar los ceros iniciales.

Hay un campo que debe tener cuatro caracteres con ceros iniciales que completan la cadena a cuatro caracteres. Sin embargo:

"23" should be "0023", 
"245" should be "0245", and
"3829" should remain "3829"

Pregunta: ¿Existe una fórmula de Excel para rellenar estos 0 en estos valores para que sean los cuatro caracteres?

Nota: esto es similar al antiguo problema del código postal en el que los códigos postales del área de Nueva Inglaterra obtienen su cero inicial y debe volver a agregarlos.


¿Se supone que el período debe estar allí "3829."?
Josh Lee

No, pero esa es la posición adecuada para un "." personaje en la oración de acuerdo con mi fiel copia de Strunk & White. Lo quité para mayor claridad.
Mark A

77
Acepto eso, excepto que estaba en un bloque de código, en el que tiendo a tomar las cosas más literalmente. (Además, Excel almacena cada número como flotante, por lo que podría haber sido un lugar decimal.)
Josh Lee

44
@josh votó por la ortografía correcta "acepte eso excepto eso".
Michiel van der Blonk

Respuestas:


506
=TEXT(A1,"0000")

Sin embargo, la función TEXT también puede hacer otras cosas elegantes como el formateo de fechas.


44
¡DIOS MIO! ¡Perfecto! Aprendes algo nuevo todos los días. Incluso tengo varios libros de Excel con orejas de perro y nunca me encontré con esto; lo usaré en cualquier momento en el que haya destrozado datos de código postal basados ​​en Excel en el futuro.
Mark A

1
Esto funciona bien con números decimales ... pero ¿qué pasa con hexadecimal? No puedo encontrar una manera de hacer que los ceros iniciales funcionen con él ...
Shadow

10
@shadow El número hexadecimal para Excel es una cadena, no un número. Así que manejarlo como una cadena: =RIGHT("0000" + A1, 4).
GSerg

8
@shadow, DEC2HEX toma un argumento de lugares. Entonces =DEC2HEX(HEX2DEC(A1),4)funciona bien para rellenar números hexadecimales.
Raz Wilson

99
@mcs No cambiaron la sintaxis. Su versión de Excel se utiliza; como separador de parámetros, que se toma de la configuración de idioma de Windows.
GSerg

78

La forma más eficiente (menos molesta) de hacerlo es a través del formateo personalizado.

  1. Resalte la columna / matriz que desea diseñar.
  2. Haga clic en ctrl+ 1o Formato -> Formato de celdas.
  3. En la pestaña Número, elija Personalizado.
  4. Establezca el formato personalizado en 000 #. (cero cero cero #)

Tenga en cuenta que esto en realidad no cambia el valor de la celda. Solo muestra los ceros a la izquierda en la hoja de trabajo.


8
Esto funciona muy bien si no hay necesidad de retener los ceros iniciales más allá de la celda original, pero no funcionará si las cadenas deben usarse en otro lugar. Haría que las celdas se mostraran como 0004, 01032, 0284 pero si intentara combinar las cadenas en una celda separada, mostraría, por ejemplo, 4-1032-284 en lugar del deseado 0004-01032-0284
Ashton Sheets

@AshtonSheets sí, como señalé en la respuesta, solo muestra los ceros a la izquierda, no hace nada al valor real. Sin embargo, ha habido situaciones en las que usé esto en lugar de =text()por su conveniencia y falta de fórmula involucrada.
Moisés

77
Como referencia, esto debería ser 0000, no 000#. De lo contrario, no funciona para 0.
PearsonArtPhoto

2
Para aquellos con mi problema anterior, la respuesta fue cambiar # (hash) por 0 (cero). ¡El # no te da ningún carácter cuando no hay ningún valor, pero el 0 te da un cero cuando no hay ningún valor! Tiene sentido y funciona muy bien: $ 0.0 ,, "M"
Andrew

1
Tampoco funcionó para mí usando 000 # pero funcionó cuando acabo de especificar un formato personalizado como 0000 para un número de cuatro dígitos, 00000 para cinco, 000000 para seis, etc. Obviamente, esto solo es útil para números de formato más cortos
Hilary

16

Llegué a esta página tratando de rellenar los valores hexadecimales cuando me di cuenta de que DEC2HEX()proporciona esa característica de forma gratuita .

Solo necesita agregar un segundo parámetro. Por ejemplo, tratando de convertirse 12en 0C
DEC2HEX(12,2)=> 0C
DEC2HEX(12,4)=> 000C
... y así sucesivamente


9

No estoy seguro de si esto es nuevo en Excel 2013, pero si hace clic derecho en la columna y dice "Especial", en realidad hay una opción predefinida para Código postal y Código postal + 4. Magia.

ingrese la descripción de la imagen aquí


66
Gran sugerencia y actualización. Necesito darle a Microsoft un -1 por alentar a cualquiera a almacenar SSN en una hoja de cálculo.
Mark A

8

Sé que esto fue respondido hace un tiempo, pero solo replicó con una solución simple que me sorprende que no se mencionara.

=RIGHT("0000" & A1, 4)

Cada vez que necesito rellenar uso algo como lo anterior. Personalmente, me parece la solución más simple y más fácil de leer.


1

Si usa un formato personalizado y necesita concatenar esos valores en otra parte, puede copiarlos y pegar especiales -> valores en otra parte de la hoja (o en una hoja diferente), luego concatenar esos valores.


1

Incluso esto funcionará bien

REPT(0,2-LEN(F2)&F2

donde 2 es el número total de dígitos, para 0 ~ 9 -> mostrará 00 a 09 descanso, no se agregará nada.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.