Saber si un numero esta dentro de un rango

Deseo saber como poder hacer la comparación de un numero (A1) esta dentro de un rango de 2 números (C1 y D1) y si esta adentro de ese rango me devuelva el valor que esta en D1. ¿Alguien me puede ayudar?

1 respuesta

1
Respuesta de
Hola. Eso es fácil. Basta con poner en la celda B1 o en la que quieras que te devuelva el valor:
=SI(Y(A1>C1;D1>A1);D1;"nada")
En este caso si tienes Excel en ingles sustituye SI por IF e Y por AND. Por otro lado si no se cumple la condición escribo "nada" pero puedes dejar "" o cualquier otra cosa.
Saludos.
Antes que anda un agradecimiento por atender mi duda
Pero tengo una pregunta más sino incomodo
¿Y si la búsqueda es una tabla de 4 columnas por 8 renglones y debo comparar linea por linea el A1 con el B1 y C1; sino esta en ese rango entonces seguir con la comparación de A1 con B2 y C2 y así sucesivamente hasta comparar A1 si esta dentro del rango comprendido entre B8 y C8, para entonces devolverme el valor de D1 que le corresponda como lo escribiría?
¿Seria una serie de FUNCIONES?
Yo la escribí pero no me responde la escribí de la siguiente manera:
=SI(Y((A4)>=B4,(A4)<=C4),E4), SI(Y((A4)>=B5, (A4)<=C5),E5), SI(Y((A4)>=B6, (A4)<=C6),E6), SI(Y((A4)>=B7, (A4)<=C7),E7), SI(Y((A4)>=B8, (A4)<=C8),E8), SI(Y((A4)>=B9, (A4)<=C9),E9), SI(Y((A4)>=B10, (A4)<=C10),E10), SI(Y((A4)>=B11),E11)
Hola. Para resolveré tu problema tendrías que hacer lo siguiente. Entiendo que tienes rellenos A1, C1 hasta C8 y D1 hasta D8.
- Copia en A2 a C8 lo siguiente: =$A$1 . Con ello en A1 a A8 tendrás el mismo valor
- Copia la formula que te día en las celdas B1 a B8, adaptada a la fila. por ejemplo en la fila 3 la formula sería: =SI(Y(A3>C3;D3>A3);D3;"nada")
Con esto en todas las filas de la columna B tendrás "nada" excepto en la que sea.
Si no quieres ver valores repetidos en A2 a A8 siempre los puedes escribir en color blanco o usar otras celdas libre. Si no quieres ver "nada" puedes dejarlos como "".
Anidar las fórmulas está muy bien, pero Excel no permite más de siete niveles, por eso no te funcionará.
Otra posibilidad es hacer una macro. El código sería algo como (suponiendo valore enteros):
Function Mifuncion(c1 As Range, c2 As Range, value As Integer) As Integer
Dim aux(7) As Integer
Dim i As Integer
For i = 1 To 8
If (value > c1.Cells(i)) And (value < c2.Cells(i)) Then
aux(i - 1) = c2.Cells(i)
Else
aux(i - 1) = 0
End If
Next i
For i = 0 To 7
If aux(i) <> 0 Then
Mifuncion = aux(i)
Exit Function
End If
Next i
End Function
Y para llamarla escribes en B1: =MiFuncion(C1:C8;D1:D8;A1)
Saludos.
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje
¿No es la respuesta que estabas buscando? Puedes explorar otras preguntas del tema Microsoft Excel o hacer tu propia pregunta: