Excel formula: Extract multiple matches into separate columns

Explicación

Para extraer múltiples coincidencias en celdas separadas, en columnas separadas, puede usar una fórmula de matriz basada en INDICE y K.ESIMO.MENOR. En el ejemplo que se muestra, la fórmula en F5 es:

{=SI.ERROR(INDICE(names,K.ESIMO.MENOR(SI(groups=$E5,FILA(names)-MIN(FILA(names))+1),COLUMNAS($E$5:E5))),"")}

Esta es una fórmula de matriz y debe ingresarse con Control + Shift + Enter.

Después de ingresar la fórmula en la primera celda, arrástrela hacia abajo y hacia adentro para completar las otras celdas.

Cómo funciona esta fórmula

Nota: esta fórmula utiliza dos rangos con nombre: "nombres" se refiere a C5: C11 y "grupos" se refiere a B5: B11. Estos nombres también se definen en la captura de pantalla anterior.

La esencia de esta fórmula es esta: estamos utilizando la función K.ESIMO.MENOR para generar un número de fila correspondiente a una "enésima coincidencia". Una vez que tenemos el número de fila, simplemente lo pasamos a la función de función INDICE, que devuelve el valor en esa fila.

El truco es que K.ESIMO.MENOR está trabajando con una matriz que SI construye dinámicamente en este bit:

SI(groups=$E5,FILA(names)-MIN(FILA(names))+1)

Este fragmento prueba los "grupos" de rango con nombre para el valor en E5. Si se encuentra, devuelve un número de fila de una matriz de números de fila relativos creados con:

FILA(names)-MIN(FILA(names))+1

El resultado final es una matriz que contiene números donde hay una coincidencia, y FALSO donde no:

{1; FALSO; FALSO; FALSO; FALSO; 6; FALSO}

Esta matriz entra en K.ESIMO.MENOR. El valor k para K.ESIMO.MENOR (enésimo) proviene de un rango en expansión:

COLUMNAS($E$5:E5)

Cuando se copia en la tabla de resultados, el rango se expande, haciendo que k (enésimo) se incremente. La función K.ESIMO.MENOR devuelve cada número de fila coincidente, que se proporciona a la función INDICE como row_num, con el rango de nombres "nombres" como la matriz.

Manejo de errores

Cuando COLUMNAS devuelve un valor para k que no existe, K.ESIMO.MENOR arroja un error #NUM. Esto sucede después de que se hayan producido todos los partidos. Para suprimir el error, ajustamos la fórmula en la función SI.ERROR para detectar errores y devolver una cadena vacía ("").


Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT