miércoles, 10 de junio de 2020

EXCEL: Obtener el enésimo partido

Excel formula: Get nth match

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:
=K.ESIMO.MENOR(SI(list=E5,FILA(list)-MIN(FILA(list))+1),F5)
Esta fórmula devuelve la posición de la segunda aparición de "rojo" en la lista.
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:
{VERDADERO;FALSO;FALSO;FALSO;VERDADERO;FALSO;VERDADERO}
El "valor si es verdadero" es un conjunto de números de fila relativos creados por este código:
FILA(list)-MIN(FILA(list))+1
El resultado es una matriz como esta:
{1;2;3;4;5;6;7}
Vea esta página para una explicación completa.
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í:
{1;FALSO;FALSO;FALSO;5;FALSO;7}
Los números 1, 5 y 7 corresponden a la ubicación de "rojo" en la lista.
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.

Combinar con INDICE

Una vez que tenga la posición relativa de la enésima coincidencia, puede usar esa posición dentro de INDICE para devolver un valor asociado.

Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT