Página 1 de 1

[RESUELTO] Función BUSCAR y MIN juntas

NotaPublicado: Lun May 28, 2018 7:34 pm
por Pablo Cebrian
Hola
Estoy haciendo un ejercicio y llevo varios días dándole vueltas y no hay manera de que me salga. Tengo una lista con diferentes columnas, en una de ellas hay los nombres de los clientes y en otra los gastos. Necesito saber el nombre del cliente que ha hecho el mayor y el menor gasto. Con el mayor no hay problema, he aplicado las funciones BUSCAR y MAX (=BUSCAR(MAX(E2:E31);E2:E31;D2:D31); con el menor aplico las funciones BUSCAR y MIN y da el error de #N/D. He probado también con BUSCARV y BUSCARH y también da error. No logro saber dónde está el fallo. Adjunto archivo. Gracias y saludos.

Re: Función BUSCAR y MIN juntas

NotaPublicado: Lun May 28, 2018 9:20 pm
por PepeOooSevilla
Hola.

Para que la función BUSCAR() devuelva el resultado correcto, el rango donde busca ha de ordenarse ascendentemente. Observa el archivo adjunto. Una vez ordenado ascendentemente por la columna E, "Despesa 2017", la función devuelve el resultado esperado.

Ahora bien, si "no se puede ordenar" tendrías que usar las fórmulas de las celdas H2 para el máximo y H3 para el mínimo.

Código: Seleccionar todo   Expandir vistaContraer vista
H2 =INDICE(D2:D31;COINCIDIR(MAX(E2:E31);E2:E31;0))
H3 =INDICE(D2:D31;COINCIDIR(MIN(E2:E31);E2:E31;0))

Saludos cordiales.

Re: Función BUSCAR y MIN juntas

NotaPublicado: Lun May 28, 2018 11:10 pm
por Pablo Cebrian
Muchísimas gracias PepeOooSevilla por la ayuda. ¡Sale perfecto!
Pero ahora me surge otra duda, cuando comentas que: "la función BUSCAR() devuelva un resultado correcto, el rango donde se busca ha de ordenarse ascendentemente". ¿Por qué cuando buscamos el valor máximo no da error? El rango donde se busca tampoco está ordenado ascendentemente. Es por curiosidad.
Saludos

Re: Función BUSCAR y MIN juntas

NotaPublicado: Mar May 29, 2018 7:38 am
por PepeOooSevilla
Hola.

Supongo que necesita que el rango esté ordenado ascendentemente porque utilizará un algoritmo de búsqueda que así lo necesite, como por ejemplo, la Búsqueda binaria. En la "Ayuda" de Calc así lo especifica:

BUSCAR
Devuelve el contenido de una celda proveniente bien de un intervalo de una sola columna o bien de uno de una sola fila. Facultativamente, el valor asignado (del mismo índice) se puede devolver en una columna o una fila distinta. A diferencia de BUSCARV y BUSCARH, el vector de búsqueda y de resultados puede situarse en posiciones desiguales; no tienen que ser adyacentes. Asimismo, el vector de búsquedas de BUSCAR ha de ordenarse ascendentemente, o de lo contrario la búsqueda no producirá resultados aprovechables.

Si BUSCAR no puede encontrar el criterio de búsqueda, utiliza el valor más grande del vector de búsqueda que sea menor o igual que criterio de búsqueda.


En este tema, BUSCARV(): Búsqueda exacta en una tabla ordenada, expliqué una posible forma de hacer que las búsquedas exactas sean más rápidas (con diferencia) cuando trabajamos con decenas de miles de registros. Efectivamente tiene que ver con los algoritmos de búsqueda.

Saludos cordiales.

Re: Función BUSCAR y MIN juntas

NotaPublicado: Mar May 29, 2018 12:09 pm
por Pablo Cebrian
Muchas gracias de nuevo por tu interés y ayuda. Mi enhorabuena por este magnífico foro.
Saludos cordiales