Autor Tema: Excel: buscar el valor superior más cercano a uno de una celda

0 Usuarios y 1 Visitante están viendo este tema.

16 Enero, 2022, 11:32 am
Leído 386 veces

ingeCampe

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 1
  • País: es
  • Karma: +0/-0
Hola buenos días.

Soy nuevo en el foro y necesito ayuda con una función en excel. Os cuento el caso.

Tengo un valor en una celda y lo que quiero es que ese valor me lo compare en una lista de valores y me devuelva otro valor asociado a la lista de valores. os pongo un ejemplo, para intentar aclararlo más.

En una celda tengo el valor 29. En la lista de valores tengo 4-->25 y 6--> 31. lo que necesito es que la función me busque el valor inmediato superior a 29 (en este caso, 31) y me devuelva como valor 6.

¿De qué manera puedo conseguir esto?

Muchas gracias de antemano. Un saludo

18 Enero, 2022, 12:16 am
Respuesta #1

Richard R Richard

  • Ingeniero Industrial
  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,094
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
  • Oh Oh!!! me contestó... y ahora qué le digo...
Hola prueba de la siguiente forma,  ya que no hay una función directa.
ordena los valores entre los que vas a buscar  de menor a mayor

en una columna paralela a los datos , por ejemplo  los datos entre los que buscar están en la columna A y los a devolver en la B , estoy en fila 2  y los datos arrancan en la 1, el dato a buscar  en la celda c1


+si(y(C1>A1;C1<=A2);+(C1-A1)/(A2-A1)*(B2-B1)+B1;"")
eso te da un dato interpolado
+si(y(C1>A1;C1<=A2);+B2;"")
te da el inmediato superior
copia y pega para hacer la columna paralela, solo  un dato se hará visible arrojando el resultado en la columna,
si al final de la columna haces un sumatorio, tendrás una posición fija para el dato variable en la columna , y lo puedes usar en cualquier lado del libro

 Saludos

 
Saludos  \(\mathbb {R}^3\)

18 Enero, 2022, 02:55 am
Respuesta #2

Abdulai

  • Moderador Global
  • Mensajes: 2,695
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Tenés las funciones INDEX(array, row_num, [column_num])  y   MATCH(lookup_value, lookup_array, [match_type])   ( INDICE() y COINCIDIR() )

Tendrías que escribir INDEX(array_resultado,MATCH(valor_a_comparar, array_a_comparar, -1))

Ojo que con match_type=-1  los valores del array deben estar en orden descendente.

18 Enero, 2022, 11:18 am
Respuesta #3

Richard R Richard

  • Ingeniero Industrial
  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,094
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
  • Oh Oh!!! me contestó... y ahora qué le digo...
Otra forma con los datos ordenados en forma descendente también funcionaria


+CONSULTARH(valor a buscar,matriz dónde buscar, Nro columna dato a devolver; VERDADERO)


Esta función antes era +BUSCARH()
la matriz tiene la primera columna izquierda  con lo datos  a hacer buscar, de allí se empieza a contar el número de columnas haga donde están los datos a devolver.(La inmediata a la derecha es la número 2)
Si pones Falso en vez de verdadero, buscará el dato exacto y devolverá error si no lo encuentras.




Si los datos están ubicados aleatoriamente y no los puedes o quieres ordenar puedes intentar lo siguiente .
Si en A está la columna a coincidir en B la devolución y en C1 el dato a buscar.


Intenta
Crea una columna D con todos los datos mayores a C1 con


+SI(A1>=C1;A1;"")


Ahora de esa columna escoje el mínimo con la función Min(D:D) en C2


Luego haz la búsqueda exacta con C2


+CONSULTARH(C2,A:B, 2; 0)




Saludos  \(\mathbb {R}^3\)