Fórmula de Excel: obtenga la enésima coincidencia con INDEX / MATCH -

Fórmula genérica

(=INDEX(array,SMALL(IF(vals=val,ROW(vals)-ROW(INDEX(vals,1,1))+1),nth)))

Resumen

Para recuperar múltiples valores coincidentes de un conjunto de datos con una fórmula, puede usar las funciones SI y PEQUEÑO para calcular el número de fila de cada coincidencia y retroalimentar ese valor al ÍNDICE. En el ejemplo que se muestra, la fórmula en I7 es:

(=INDEX(amts,SMALL(IF(ids=id,ROW(ids)-ROW(INDEX(ids,1,1))+1),H6)))

Donde los rangos con nombre son amts (D4: D11), id (I3) e ids (C4: C11).

Tenga en cuenta que esta es una fórmula de matriz y debe ingresarse con Control + Shift + Enter.

Explicación

En esencia, esta fórmula es simplemente una fórmula de ÍNDICE que recupera el valor de una matriz en una posición determinada. El valor de n se proporciona en la columna H, y todo el trabajo "pesado" que hace la fórmula es averiguar la fila de la que recuperar un valor, donde la fila corresponde a la coincidencia "n-ésima".

La función SI hace el trabajo de averiguar qué filas contienen una coincidencia, y la función PEQUEÑA devuelve el enésimo valor de esa lista. Dentro de IF, la prueba lógica es:

ids=id

que produce esta matriz:

(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE)

Tenga en cuenta que la identificación del cliente coincide en las posiciones 1 y 4, que aparecen como VERDADERO. El argumento "valor si es verdadero" en IF genera una lista de números de fila relativos con esta expresión:

ROW(ids)-ROW(INDEX(ids,1,1))+1

que produce esta matriz:

(1;2;3;4;5;6;7)

Luego, esta matriz se "filtra" por los resultados de la prueba lógica y la función SI devuelve el siguiente resultado de la matriz:

(1;FALSE;FALSE;4;FALSE;FALSE;FALSE)

Tenga en cuenta que tenemos números de fila válidos para la fila 1 y la fila 2.

Esta matriz luego es procesada por SMALL, que está configurado para usar valores en la columna H para devolver valores "n-ésimo". La función PEQUEÑO ignora automáticamente los valores lógicos VERDADERO y FALSO en la matriz. Al final, las fórmulas se reducen a:

=INDEX(amts,1) // I6, returns $150 =INDEX(amts,4) // I7, returns $125

Manejo de errores

Una vez que no haya más coincidencias para una identificación determinada, la función PEQUEÑA devolverá un error #NUM. Puede manejar este error con la función IFERROR o agregando lógica para contar coincidencias y cancelar el procesamiento una vez que el número en la columna H sea mayor que el recuento de coincidencias. El ejemplo aquí muestra un enfoque.

Varios criterios

Para agregar varios criterios, use la lógica booleana, como se explica en este ejemplo.

Articulos interesantes...