Fórmula genérica
=K.ESIMO.MENOR(SI(logical,FILA(list)-MIN(FILA(list))+1),n)
Explicación
Para obtener la posición de la enésima coincidencia (por ejemplo, el segundo valor coincidente, el tercer valor coincidente, etc.), puede usar una fórmula basada en la función K.ESIMO.MENOR. En el ejemplo que se muestra, la fórmula en G5 es:
Nota: esta es una fórmula de matriz y debe ingresarse con control + shift + enter.
El núcleo de esta fórmula es la función K.ESIMO.MENOR, que simplemente devuelve el enésimo valor más pequeño en una lista de valores que corresponden a números de fila. Los números de fila han sido "filtrados" por la declaración SI, que aplica la lógica para una coincidencia. Trabajando de adentro hacia afuera, SI compara todos los valores en la "lista" de rango con el valor en B5, lo que crea una matriz como esta:
Con una prueba lógica que devuelve una serie de resultados, la función SI actúa como un filtro: solo los números de fila que corresponden a una coincidencia sobreviven, el resto devuelve FALSO. El resultado devuelto por SI se ve así:
Finalmente, K.ESIMO.MENOR devuelve el enésimo elemento más pequeño de esta lista, ignorando los valores FALSO. En el ejemplo, F5 contiene 2, por lo que K.ESIMO.MENOR devuelve el segundo valor más pequeño: 5.
Esta fórmula devuelve la posición de la segunda aparición de "rojo" en la lista.=K.ESIMO.MENOR(SI(list=E5,FILA(list)-MIN(FILA(list))+1),F5)
Nota: esta es una fórmula de matriz y debe ingresarse con control + shift + enter.
Cómo funciona esta fórmula
Esta fórmula utiliza la "lista" de rango con nombre, que es el rango B5: B11.El núcleo de esta fórmula es la función K.ESIMO.MENOR, que simplemente devuelve el enésimo valor más pequeño en una lista de valores que corresponden a números de fila. Los números de fila han sido "filtrados" por la declaración SI, que aplica la lógica para una coincidencia. Trabajando de adentro hacia afuera, SI compara todos los valores en la "lista" de rango con el valor en B5, lo que crea una matriz como esta:
El "valor si es verdadero" es un conjunto de números de fila relativos creados por este código:{VERDADERO;FALSO;FALSO;FALSO;VERDADERO;FALSO;VERDADERO}
El resultado es una matriz como esta:
Vea esta página para una explicación completa.{1;2;3;4;5;6;7}
Con una prueba lógica que devuelve una serie de resultados, la función SI actúa como un filtro: solo los números de fila que corresponden a una coincidencia sobreviven, el resto devuelve FALSO. El resultado devuelto por SI se ve así:
Los números 1, 5 y 7 corresponden a la ubicación de "rojo" en la lista.{1;FALSO;FALSO;FALSO;5;FALSO;7}
Finalmente, K.ESIMO.MENOR devuelve el enésimo elemento más pequeño de esta lista, ignorando los valores FALSO. En el ejemplo, F5 contiene 2, por lo que K.ESIMO.MENOR devuelve el segundo valor más pequeño: 5.
0 comentarios:
Publicar un comentario