Doble filtro en excel? Una pregunta para super expertos. Ayuda!

He estado buscando la manera de filtrar una fila que cumpla con dos condiciones. Me explico mejor, estoy haciendo tablas de nutrición infantil que me digan el nivel de desnutrición de acuerdo a la edad y peso. Anexo una imagen para que se den una idea. El usuario captura la fecha de nacimiento en la casilla E6 y en las casillas F6.G6 y H6 me da en automático los años, meses y días que tiene el niño respectivamente. Hasta ahí no tengo problema. Con estos datos busco posicionarme en la fila que cumpla con años y mese. Como en el ejemplo que tengo en la imagen (1 año, 5 meses) busco posicionarme en la fila 28, cosa que no he logrado por ningún método. Habiendo logrado esto, me viene otra interrogante, porque necesito también que me arroje automáticamente el nivel de desnutrición. Por ejemplo, el usuario solo captura la fecha de nacimiento en la casilla E6 y el Peso en la casilla C4, tomando en base el ejemplo de 1 año 5 meses y como ejemplo un peso de 7.1 entra en el rango de la columna D, específicamente casilla D28 y mi resultado en la casilla k11 deberá ser DM tomando en cuenta la tabla de grados de nutrición. Las siglas son DG para columna C...DM para D, DL para E, N para F, SBP para G y OBS para H.

De antemano mil gracias por su interés y ayuda.

1 Respuesta

Respuesta
1

Sobre lo primero que preguntas, según el ejemplo: "busco posicionarme en la fila 28", para qué quieres posicionarte, ¿quieres qué el cursor se ponga en la fila 28? ¿O en la celda A28? ¿O quieres obtener algún dato de la fila 28?

Para la segunda interrogante: "necesito también que me arroje automáticamente el nivel de desnutrición", ¿puedes explicarme por qué 7.1 corresponde a la celda D28?

Saludos, de antemano gracias por tu interés. Respecto a lo primero, necesito que se haga un criterio de búsqueda que me lleve a la fila 28 porque en esa fila se cumplen las dos condiciones (Columna A=1 y Columna B=5), ya obtenido el numero de la fila se hace otro criterio de búsqueda de acuerdo al peso que el usuario capture. Para el ejemplo que di de 7.1 (peso) le corresponde a la casilla D21 porque el criterio de búsqueda que necesito es que se seleccione de la siguiente manera:

si Peso <= C28 entonces =C28

si Peso >C28 y <=D28 entonces =D28

Si Peso >D28 y <=E28 entonces =E28

Si Peso >E28 y <=F28 entonces =F28

Si Peso >F28 y <=G28 entonces =G28

Si Peso >G28 y <=H28 entonces =H28

Por eso es indispensable obtener el numero de fila prime. Segundo, ya obtenida la casilla correspondiente de acuerdo al peso, lo que necesito es el valor de la columna para igualarla a las clasificaciones de nutrición, es decir, si en el ejemplo de 7.1 corresponde a D21, necesito ahora numero de columna, la columna C corresponde a DG, Columna D=DM, E=DL, F=N, G=SBP, H=OBS. Los significados para que sepas que estoy haciendo un poquito mejor son: DG(desnutrición grave), DM(desnutrición moderada), DL(desnutrición leve), N(normal), SBP(sobre peso)  y OBS(obesidad).

Al final no necesito números, sino estas abreviaturas, pero se obtuvieron tan solo con ingresar la fecha de nacimiento y peso, el proceso busca en la fila la edad (Año y mes en columnas A y B respectivamente), después compara el peso ingresado con los de la fila para ubicar la columna y según el numero de columna correspondiente será el valor de la abreviatura.

Espero este un poco mas claro, se que esta muy enredado el tema.

De nuevo gracias por tu atención.

La fórmula a emplear resultó muy compleja.

=desref(k12,-si(c4>indice(a:h,coincidir(f6&g6,a:a&b:b,0),si.error(coincidir(c4,indirecto("c" & coincidir(f6&g6,a:a&b:b,0)&":h"&coincidir(f6&g6,a:a&b:b,0)),1),1)+2),si(si.error(coincidir(c4,indirecto("c" & coincidir(f6&g6,a:a&b:b,0)&":h"&coincidir(f6&g6,a:a&b:b,0)),1),1)+3<9,si.error(coincidir(c4,indirecto("c" & coincidir(f6&g6,a:a&b:b,0)&":h"&coincidir(f6&g6,a:a&b:b,0)),1),1)+3,si.error(coincidir(c4,indirecto("c" & coincidir(f6&g6,a:a&b:b,0)&":h"&coincidir(f6&g6,a:a&b:b,0)),1),1)+2),si.error(coincidir(c4,indirecto("c" & coincidir(f6&g6,a:a&b:b,0)&":h"&coincidir(f6&g6,a:a&b:b,0)),1),1)+2),0)

NOTA: La fórmula es matricial para aceptarla deberás presionar al mismo tiempo las teclas SHIF CTRL y ENTER, después de que presiones las teclas la fórmula hace la búsqueda y la fórmula aparece entre {}.

Tienes que poner la fórmula en la celda K11, la estructura debe respetar lo siguiente, los nombres de las columnas, como pude ver en tus imágenes están en el cuadro que tienes en de la celda J4 a la K9, específicamente los nombres

OBS sbp N DL DM DG, los tienes en la columna K, la fórmula busca la fila y la columna, una vez que obtiene esos datos va a la columna K y obtiene las letras.

Lo complejo de la fórmula es por encontrar la columna que le corresponde, ya que para encontrar la fila, basta con esto:

COINCIDIR(F6&G6,A:A&B:B,0)

La fórmula tiene que hacer varias búsquedas y puede tardar en resolver, por lo que te recomiendo que pongas el cálculo de tu libro en modo manual y hasta que hayas terminado de capturar tus datos, entonces presiones F9 para encontrar el resultado de la celda K11.

La otra opción sería hacer una macro.

No he recibido comentarios, podrías valorar la respuesta.

Te toma solamente un minuto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas