miércoles, 10 de junio de 2020

EXCEL: Encuentra el partido más cercano

Excel formula: Find closest match

Fórmula genérica

{=INDICE(data,COINCIDIR(MIN(ABS(data-value)),ABS(data-value),0))}

Explicación

Para encontrar la coincidencia más cercana con un valor de búsqueda y datos numéricos, puede usar una fórmula de matriz basada en las funciones INDICE, COINCIDIR, ABS y MIN. En el ejemplo que se muestra, la fórmula en E5 es:

{=INDICE(data,COINCIDIR(MIN(ABS(data-E4)),ABS(data-E4),0))}

donde "datos" es el rango con nombre B5: B14 y E4 contiene un valor de búsqueda.

Nota: esta es una fórmula de matriz y debe ingresarse con control + shift + enter.

Cómo funciona esta fórmula

En el fondo, esta es una fórmula INDICE y COINCIDIR donde COINCIDIR localiza la posición de la coincidencia más cercana y alimenta esa posición en INDICE. INDICE luego devuelve el valor en esa posición. Todo el trabajo duro se realiza dentro de la función COINCIDIR, que se configura así:

COINCIDIR(MIN(ABS(data-E4)),ABS(data-E4),0)

Dentro de COINCIDIR, esta expresión calcula las diferencias entre el valor de búsqueda en E4 y los valores en los datos de rango con nombre:

data-E4

Esta es una expresión de matriz, y devuelve un resultado de matriz como este:

{-18;-6;-2;1;6;8;10;11;13;19}

La función ABS se usa para convertir valores negativos en positivos:

{18;6;2;1;6;8;10;11;13;19}

Estos valores representan la diferencia entre el valor de búsqueda y los valores en los datos. Estamos buscando la coincidencia más cercana, por lo que utilizamos la función MIN para devolver el valor más pequeño. En este caso, el valor más pequeño es 1, y este se convierte en el valor de búsqueda dentro de COINCIDIR.

La matriz de búsqueda se calcula de manera similar. La expresion:

ABS(data-E4)

devuelve la siguiente matriz a COINCIDIR como la matriz de búsqueda:

{18;6;2;1;6;8;10;11;13;19}

El último argumento dentro de COINCIDIR es match_type, que se establece en cero para forzar una coincidencia exacta.

Finalmente, con estos valores, la función COINCIDIR devuelve la posición de 1 dentro de la matriz, que es 4. La posición se introduce en INDICE como argumento de fila:

=INDICE(data,4)

La función INDICE devuelve el valor en esa posición, que es la fecha 26 de julio de 2018.

Nota: en caso de empate, esta fórmula devolverá el primer partido.


Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT