Página 1 de 1

Fórmula para busqueda en un registro

NotaPublicado: Mié Ene 29, 2020 3:50 pm
por ferma
Buenas tardes, estoy organizar un archivo de modo que al meter un número de expte. me diga en que cajón del archivador debería encontrarse. El archivo es extenso y no todos los expedientes empiezan por la misma referencia ya que depende del producto y de la provincia. He intentado con la fórmula BUSCARV, ordenando los expedientes primero por orden numérico y después alfanumérico, el problema lo he encontrado al introducir un número que no se encuentra en ninguno de los rangos, creo que me lo coloca en el cajón más cercano al número que pongo, en cualquier caso lo que quiero en que me de error o que diga que no existe. Adjunto tabla de ejemplo.
También me gustaría saber si existe alguna otra forma de hacerlo (seguro que sí) para no tener que ordenar los registros, es decir poder poner por cajones por orden independientemente de que los expedientes que haya dentro sean correlativos, siempre utilizo BUSCAR y estoy segura de que existen otras maneras.
Muchas gracias

Re: Fórmula para busqueda en un registro

NotaPublicado: Mié Ene 29, 2020 7:42 pm
por PepeOooSevilla
Hola.
Te damos la bienvenida al Foro y, por favor, no dejes de leer la Guía de supervivencia.
Modifica la fórmula de la celda H4:
Código: Seleccionar todo   Expandir vistaContraer vista
=BUSCARV(G4;B4:D10;3)

Por:
Código: Seleccionar todo   Expandir vistaContraer vista
=BUSCARV(G4;B4:D10;3;0)

El cero (0) final es el que le dice que haga una búsqueda exacta y si no encuentra lo que busca que devuelva "#N/D". Consulta en la Ayuda las funciones SI.ND(), SI.ERROR(), ESNOD() y ESERROR() para atrapar los posibles valores erróneos o "no encontrados" y actuar en consecuencia (dependiendo de la versión de OpenOffice/LibreOffice que tengas instalada puede que alguna de estas funciones no existan).
Aquí tienes unos ejemplos de BUSCARV: [RESUELTO] Reemplazar múltiples valores entre campos de Calc.
No dejes de visitar la página Manual de OpenOffice Calc de nuestro compañero SLV-es y, más concretamente, Las funciones BUSCARV y BUSCARH en OpenOffice Calc.
Saludos cordiales.

Re: Fórmula para busqueda en un registro

NotaPublicado: Mié Ene 29, 2020 10:12 pm
por ferma
Buenas noches, muchas gracias por la ayuda y por la rapidez. Mañana lo pruebo y os cuento y gracias por remitirme al manual seguro que le saco partido.

Nos seguimos viendo por aquí, un saludo

Re: Fórmula para busqueda en un registro

NotaPublicado: Jue Ene 30, 2020 8:01 pm
por ferma
Buenas tardes ayer probé en mi archivo de ejemplo a poner 0 como me aconsejasteis y la fórmula salía perfectamente. Pero al hacerlo hoy en el archivo que estoy creando en el trabajo me daba continuamente #N/D tanto si existía como si no el número de expediente dentro de rango. He probado también con FALSO () pero me da el mismo error deja de encontrar cualquier número. No sé si puede ser por la versión que tengo instalada en el trabajo que es LibreOffice 5.0. Sigo probando muchas gracias

Re: Fórmula para busqueda en un registro

NotaPublicado: Jue Ene 30, 2020 11:31 pm
por mriosv
¿Y el archivo ejemplo que te funcionaba lo probaste en el trabajo?

Re: Fórmula para busqueda en un registro

NotaPublicado: Vie Ene 31, 2020 8:23 am
por ferma
Qué va!!! No nos dejan llevar nada de fuera. Seguiré intentando y os cuento, al final tiene que salir. En cualquier caso muchísimas gracias por todo

Re: Fórmula para busqueda en un registro

NotaPublicado: Vie Ene 31, 2020 9:21 am
por PepeOooSevilla
Hola.
En tu firma pone que trabajáis con OpenOffice 3.1. ¿Es correcto? Esa es una versión verdaderamente obsoleta y sin mantenimiento.
Saludos cordiales.

Re: Fórmula para busqueda en un registro

NotaPublicado: Sab Feb 01, 2020 8:44 am
por PepeOooSevilla
Hola.

Al responderte en mi primera intervención no me di cuenta que el expediente a buscar se debe buscar en un rango o intervalo de códigos de expedientes. Pensé que era un código de expediente exacto y por eso añadí el cero (0) como cuarto parámetro de la función BUSCARV(), por tanto, olvida lo que he dicho, no sirve para el caso que nos ocupa.

Ahora bien, mezclar en una tabla de búsqueda, números (ej. 12), textos (ej. A2457), ..., es una fuente de problemas.

Por experiencia propia, lo mejor para buscar en intervalos es que esos intervalos sean numéricos como puedes observar en la Hoja2 del archivo adjunto. La celda B4 tiene el valor 0 y la B5 el valor 100, pues bien, a la hora de buscar es como si la celda B4 tuviera el intervalo 0 - 99 (99 es B5 menos 1), B5 es como si tuviera el intervalo 100 - 999 (999 es B6 menos 1) y así sucesivamente. Por eso comento que la columna C (HASTA) no es necesaria. Y para seguir siendo coherentes se deben rellenar todos los intervalos para que "no haya huecos" (ver celdas B4, B7 y B9). ¡Muy importante! La tabla debe estar ordenada ascendentemente por el campo DESDE (columna B) si queremos buscar por intervalos.

En el caso que tengamos, como te sucede, números y textos, deberemos pasar todas las celdas a formato texto y, para que no haya errores en la búsqueda, todos los códigos deben tener el mismo número de caracteres. Observa la Hoja1. Los códigos numéricos comienzan con la letra "Z". También debe estar la tabla ordenada ascendentemente por el campo DESDE (columna B) y rellenar todos los posibles intervalos para que "no haya huecos". En la columna I hay una fórmula para homogeneizar con la tabla el código a buscar que se encuentra en las columnas G y H.

Obviamente, modifica a tu conveniencia.
Saludos cordiales.