Resulta que en mi empresa se trabaja mucho con bases de datos y en especial con el número de rut (numero de seguro social) de la persona, el problema es que algunos de los sistemas ocupan 10 campos y otros 8 o 9 dependiendo del largo del rut de la persona. Quisiera hacer una función que eliminara los ceros que se anteponen al código no importando que tenga 8 ó 9 campos ejemplos: 0089921234 ó 0101243268.
1 respuesta
Respuesta de fejoal
2
2
fejoal, Por falta de tiempo para responder como me gusta hacerlo suspendo...
Que los ceros aparezcan a la izquierda de un número puede obedecer a dos situaciones: a.- Que los ceros existan "físicamente" en el número... ... en cuyo caso no se trata estrictamente de un valor sino de un texto que representa un valor. Si, por ejemplo, el rut a convertir estuviera en la celda B2, la siguiente fórmula quitará los ceros que se encuentran a la izquierda: =valor(B2) Desde luego, deberías repetir la fórmula para numero en tal lista... Pero puedes convertir todos en la misma celda donde se encuentren con este truco: Coloca un numero 1 en cualquier celda libre que tengas. Copia esa celda ("Edición" | "Copiar"). Luego selecciona el rango de celdas que contengan los números a quitarles los ceros de la izquierda. Haz "Edición" | "Pegado Especial..." y marca la opción "Multiplicar". Finalmente, presiona el botón "Aceptar" y los rut aparecerán sin esos ceros iniciales. --- b.- Que la celda tenga un "formato" que agregue los ceros faltantes hasta completar las posiciones que se indiquen. Probablemente este NO sea tu caso pero vale mencionarlo. Si seleccionas la celda donde está el rut con los ceros a la izquierda pero en la barra de fórmulas estos no aparecen, es muy probable que la celda tenga un formato personalizado del tipo: "0000000000" Bastará, en tal caso, borrar los formatos de celda o con "Formato" | "Celda" acceder a la categoría "Número" y asignarle otro formato como por ejemplo "General". --- De todos modos, creo que la primera solución es la que necesitas. Pero, puedes volver a preguntarme si necesitas alguna ayuda adicional. Un abrazo! Fernando
Gracias pero la solución no me fue my útil, ya que el número que te decía puede terminar en "k", por lo tanto no pude aplicar lo que me decías, yo creo que la idea va por el lado de la función extrae y la función derecha, yo lo hago así derecha(a1;8) y obtengo los ocho caracteres sin ceros, pero si tiene o caracteres debo cambiar la fórmula y no quiero hacerlo manual por eso quiero una función. Gracias por tu ayuda.
Ese "detalle" de un número terminado en QUE, que omitiste en tu planteo original y en los ejemplos que diste, es sumamente importante. (Recuerda que yo no estoy en tu país y desconozco las características de un RUT) De todos modos, puede resolverse con un condicional aplicado a la primera solución: =SI(ESERROR(VALOR(DERECHA(B8;1)));TEXTO(VALOR(IZQUIERDA(B8;LARGO(B8)-1));"0")&DERECHA(B8;1);TEXTO(VALOR(B8);"0")) [Considera si sueles usar comas o punto y coma para separar argumentos de las funciones. Yo usé ";"] Asígnale el formato deseado y, luego, copia esta celda y pégala en las restantes de esta misma columna, una por cada RUT a modificar. Una vez logrado lo que querías, puedes dejar estas fórmulas si crees que te serán útiles o puedes convertirlas a valor. Seleccionas el rango de fórmulas, lo copias ("Edición" | "Copiar") y lo pegas sobre el rango original con "Edición", "Pegado Especial.." [Valores] Esta fórmula quitará los ceros a la izquierda del RUT aun cuando la última posición de la derecha sea una letra (K o cualquier otra) Haz un prueba con esta y dime si te funcionó. Un abrazo! Fernando