Saltar al contenido

Extraer y agregar caracteres


Recommended Posts

publicado

Hola amigos

Excel 2010

Tengo una hoja con datos string en el rango A1:A15600

Los datos (string) se presentan entre dos guiones.

Después del primer guión puede haber ninguno o n ceros. Por ejemplo:

A-0001234-XX debe quedar A-1234-XX

A-01234-XX debe quedar A-1234-XX

A-0001234-XXXX debe quedar A-1234-XXXX

Como se nota en los ejemplos arriba indicados, después del segundo guión puede haber 2 o 4 caracteres.

Si el primer caracter es >= 0 agregar 20 antes del primer caracter.

A-000A-1234-00 debe quedar A-1234-2000

Si el primer caracter es mayor que cero agregar 19

A-000A-1234-95 debe quedar A-1234-1995

Si hay hay cuatro caracteres dejarlos. Por ejemplo

A-0001234-75 debe quedar A-1234-1975

A-0001234-2000 debe quedar A-0001234-2000

El resultado debe colocarse en el Rango C1:C5600

Con la Función Med trato de eliminar los ceros entre los guiones, pero, como puede haber ninguno o n ceros, ese trabajo es muy tedioso y sujeto al error.

Después del segundo guión, con la Función Izquierda antes del primer dígito, puedo agregar los caracteres correspondientes,

no obstante, debo seleccionar los caracteres segun sea el caso y ese trabajo también es tedioso y sujeto al error.

Me pueden orientar a solucionar esta tarea. Muchas gracias

Ejemplo.zip

publicado

Hola amigo, soy nuevo en el foro y me pareció muy interesante tu problema. Aquí te envío la solución.

Espero que sea lo que estabas buscando aunque creo que tu consulta estaba en un foro inadecuado porque aquí no tienes necesidad de usar macros.

Saludos

Ejemplo.zip

publicado

Hola, una opcion con formula:

="A-"&EXTRAE(SUSTITUIR(A2,"-",REPETIR(" ",10)),10,10)+0&"-"&SI(DERECHA(A2,2)="00",2000,DERECHA(A2,2)+1900)[/CODE]

Cambia las comas por punto y coma.

[color=blue]- - - - - Mensaje combinado - - - - -

[/color]Codigo generado por la grabadora:

[CODE]Sub Macro1()
Selection.FormulaR1C1 = _
"=""A-""&MID(SUBSTITUTE(RC[-5],""-"",REPT("" "",10)),10,10)+0&""-""&IF(RIGHT(RC[-5],2)=""00"",2000,RIGHT(RC[-5],2)+1900)"
End Sub[/CODE]

Clic el corazon abajo a la derecha de los mensajes que hayan servido, gracias.

publicado

Armando. Las dos sugerencias funcionan correctamente. Voy a estudiar los códigos, no había visto algo así, me parecen muy interesante y con pocas instrucciones. Muchas gracias. saludos:lemo:

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.