Extraer letras en una cadena en access |
Responder ![]() |
Autor | |||||||||||||||||||||||
chalogonza ![]() Nuevo ![]() Unido: 07/Noviembre/2023 Localización: Cádiz Estado: Sin conexión Puntos: 1 |
![]() ![]() ![]() ![]() ![]() Enviado: 07/Noviembre/2023 a las 22:18 |
||||||||||||||||||||||
Buenas noches, estoy haciendo una base de datos en access de mi biblioteca particular, y para poder imprimir los tejuelos tengo que extraer del título las tres primeras letras del mismo, eso no tendría problema en hacerlo, pero cuando el título comienza con un artículo la cosa se me complica y no soy capaz de hacerlo. Os pongo un ejemplo para que veáis qué es lo que quiero hacer en una consulta:
por ejemplo yo tengo un libro que se titula La verdad sobre la arena, la consulta me tendía que devolver "ver"; o si en el caso de que no tenga artículo también me tiene que devolver las tres primeras letras del título, por ejemplo: Visión de noche, el resultado tiene que ser "vis". Muchas gracias, os lo agradeceré siempre.
|
|||||||||||||||||||||||
![]() |
|||||||||||||||||||||||
xavi ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() ![]() Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14646 |
![]() ![]() ![]() ![]() ![]() |
||||||||||||||||||||||
Hola,
En una consulta complicado ya que es difícil controlar todas las cadenas de texto que deben considerarse artículo. Yo me plantearía un cambio de estrategia para tener un segundo campo de búsqueda dónde almacenar el título con el artículo al final: "verdad sobre la arena, La" Si sigues empeñado en ese planteamiento solo se me ocurre utilizar una función VBA que realice ese cambio. En la función le pasas el título y dentro colocas todas las cadenas posibles de inicio con artículo y realizas la sustitución por "". Devuelves el libro sin artículo al inicio y haces el "match" contra ese campo calculado. Un saludo
|
|||||||||||||||||||||||
![]() |
|||||||||||||||||||||||
AnSanVal ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() ![]() Unido: 16/Marzo/2005 Localización: España Estado: Sin conexión Puntos: 5943 |
![]() ![]() ![]() ![]() ![]() |
||||||||||||||||||||||
¿Tal vez excluyendo espacios? La verdad sobre la… Lav Visión de noche Vis El amante japonés Ela Legado en los huesos Leg Vestido de novia Ves El silencio de la… Els =IZQUIERDA(SUSTITUIR(A2;" ";"");3) Estas son funciones integradas en Excel (¿Las tiene Access?). |
|||||||||||||||||||||||
Saludos desde Tenerife.
|
|||||||||||||||||||||||
![]() |
|||||||||||||||||||||||
Mihura ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() ![]() Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 13867 |
![]() ![]() ![]() ![]() ![]() |
||||||||||||||||||||||
Si, un saludo Antonio. |
|||||||||||||||||||||||
![]() |
|||||||||||||||||||||||
pitxiku ![]() Colaborador ![]() ![]() Unido: 27/Septiembre/2017 Localización: En mi casa Estado: Sin conexión Puntos: 1491 |
![]() ![]() ![]() ![]() ![]() |
||||||||||||||||||||||
Otra posibilidad con expresiones regulares:
1. En un módulo estándar de VBA copia y pega esta función:
2. Basándonos en la lista de libros de AnSanVal, creamos una tabla de nombre Libros:
3. Y si creamos una consulta basada en esa tabla, y con la función que hemos creado:
El resultado es:
En la función no he puesto las contracciones (al, del) porque no sé si interesan, pero es fácil agregarlas.
|
|||||||||||||||||||||||
![]() |
|||||||||||||||||||||||
AnSanVal ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() ![]() Unido: 16/Marzo/2005 Localización: España Estado: Sin conexión Puntos: 5943 |
![]() ![]() ![]() ![]() ![]() |
||||||||||||||||||||||
Pensé en tejuelos personales/simples (mi error fue no leer con calma la consulta). Tambien existen artículos indefinidos, palabras de menos de 3 letras, etc. Suelo utilizar un truco (similar al aporte de Xavi), invisible, para dividir una cadena de texto (por ejemplo: nombre apellido1 apellido2) donde el espacio después de nombre en vez de un espacio (carácter 32) pongo un falso espacio (carácter 160), se ven iguales pero informáticamente son diferentes...
... la fórmula es: =EXTRAE(titulo;HALLAR(CARACTER(160);titulo)+1;3) (En Excel: =EXTRAE(A1;HALLAR(CARACTER(160);A1)+1;3)) |
|||||||||||||||||||||||
Saludos desde Tenerife.
|
|||||||||||||||||||||||
![]() |
Responder ![]() |
|
Tweet
|
Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |