Resumen
Para buscar y aproximar la coincidencia en función de más de un criterio, puede utilizar una fórmula de matriz basada en INDICE y COINCIDIR, con la ayuda de la función SI. En el ejemplo que se muestra, la fórmula en G8 es:
(=INDEX(D5:D10,MATCH(G7,IF(B5:B10=G6,C5:C10),1)))
El objetivo de esta fórmula es devolver el "tamaño" cuando se le da un animal y un peso.
Nota: esta es una fórmula de matriz y debe ingresarse con Control + Shift + Enter
Explicación
En esencia, esta es solo una fórmula de INDICE / COINCIDIR. El problema en este caso es que necesitamos "filtrar" las entradas extrañas en la tabla para que nos quedemos solo con las entradas que corresponden al animal que estamos buscando.
Esto se hace con una función SI simple aquí:
IF(B5:B10=G6,C5:C10)
Este fragmento prueba los valores en B5: B10 para ver si coinciden con el valor en G6 (el animal). Cuando hay una coincidencia, se devuelven los valores correspondientes en C5: C11. Donde no hay coincidencia, se devuelve FALSE. Cuando G6 contiene "cat", la matriz resultante se ve así:
(FALSO; FALSO; FALSO; 5; 10; 15)
Esto entra en la función COINCIDIR como matriz. El valor de búsqueda para la coincidencia proviene de G7, que contiene el peso (9 libras en el ejemplo).
Tenga en cuenta que la coincidencia se configura para una coincidencia aproximada estableciendo match_type en 1, y esto requiere que los valores en C5: C11 se deben ordenar.
COINCIDIR devuelve la posición del peso en la matriz, y esto se pasa a la función INDICE como el número de fila. El lookup_array para INDEX son los tamaños en D5: D10, por lo que INDEX devuelve un tamaño correspondiente a la posición generada por MATCH (el número 4 en el ejemplo mostrado).