Homogeneización de códigos
La consulta que quería dejar planteada es un poco complicada y de momento no tengo tantos conocimientos como para solventarla. El problema en cuestión es que no se como emular en Excel o access un proceso que efectúa un sistema que usamos y que me es necesario trasladar a una de estas dos herramientas. Explico:
Este sistema hace un proceso de "paso a través" por así llamarlo en el que un código se va depurando hasta llegar a otro código (sería una homogeneización de códigos), es decir, yo tengo un listado de códigos asociados a otro.
Código de paso Código final
4567891 90
45678912 89
5346849 91
53468495 93
5631976 94
56319767 92
Resulta que tengo unos códigos de origen, los cuáles necesariamente se tienen que identificar con el código de paso para obtener el código final. Hasta aquí parece que un simple buscar lo solucionaría, pero... El problema es que los códigos de origen no coinciden con el código de paso en el número de caracteres. Un ejemplo: si nosotros nos encontramos con un código de origen que fuese el 45678911005277, el primer código que iría buscando en la columna código de paso sería el mismo (45678911005277), como no lo va a encontrar iría a buscar el 4567891100527(va eliminando cifras por la derecha), luego sería el 456789110052, 45678911005, 4567891100... Así hasta la primera coincidencia que sería el 4567891, al que le asignaría el código final de 90. Otro ejemplos:
Código origen Código de paso Código final
4567891145 4567891 90
456789124597 45678912 91
45678910 4567891 90
456 45 95
45 4 100
Todo esto lo he "medio conseguido" combinado las funciones izquierda con largo y luego mediante buscar, pero me vale para un número de códigos limitados y para un número de caracteres limitados, por no deciros el peso que le imprimiría al archivo. Con lo cual su viabilidad tiende a ser escasa.
Ruego ayuda de alguien que sepa alguna manera de agilizar el proceso(función, VBA...). La manera que tiene el sistema de hacerlo es mediante SQL(pero el proceso es imposible de reproducir en Access) Sé que es complicado.
Este sistema hace un proceso de "paso a través" por así llamarlo en el que un código se va depurando hasta llegar a otro código (sería una homogeneización de códigos), es decir, yo tengo un listado de códigos asociados a otro.
Código de paso Código final
4567891 90
45678912 89
5346849 91
53468495 93
5631976 94
56319767 92
Resulta que tengo unos códigos de origen, los cuáles necesariamente se tienen que identificar con el código de paso para obtener el código final. Hasta aquí parece que un simple buscar lo solucionaría, pero... El problema es que los códigos de origen no coinciden con el código de paso en el número de caracteres. Un ejemplo: si nosotros nos encontramos con un código de origen que fuese el 45678911005277, el primer código que iría buscando en la columna código de paso sería el mismo (45678911005277), como no lo va a encontrar iría a buscar el 4567891100527(va eliminando cifras por la derecha), luego sería el 456789110052, 45678911005, 4567891100... Así hasta la primera coincidencia que sería el 4567891, al que le asignaría el código final de 90. Otro ejemplos:
Código origen Código de paso Código final
4567891145 4567891 90
456789124597 45678912 91
45678910 4567891 90
456 45 95
45 4 100
Todo esto lo he "medio conseguido" combinado las funciones izquierda con largo y luego mediante buscar, pero me vale para un número de códigos limitados y para un número de caracteres limitados, por no deciros el peso que le imprimiría al archivo. Con lo cual su viabilidad tiende a ser escasa.
Ruego ayuda de alguien que sepa alguna manera de agilizar el proceso(función, VBA...). La manera que tiene el sistema de hacerlo es mediante SQL(pero el proceso es imposible de reproducir en Access) Sé que es complicado.
2 respuestas
Respuesta de nandoaule
1
Respuesta de smanero
1