Enumerar 3 mejores partidos
- Jaime Franco Jimenez

- 10 nov 2023
- 2 Min. de lectura
Tenemos los siguientes encuentros:

Debemos de enumerar los 3 mejores partidos en los que la diferencia entre goles es máxima.
En la celda F2, usamos LET, creamos una variable, usamos la funcion TEXTOANTES, como argumento texto, seleccionamos el rango D2:D11, como argumento delimitador, entre comillas dobles, ponemos un guion medio, probamos variable.
=LET(a;TEXTOANTES(D2:D11;"-");a)
Tenemos una matriz desbordada en vertical con los goles de los encuentros en casa.

Creamos otra variable, usamos la funcion TEXTODESPUES, como argumento texto, seleccionamos el rango D2:D11, como argumento delimitador entre comillas dobles, ponemos el guion medio.
=LET(a;TEXTOANTES(D2:D11;"-");b;TEXTODESPUES(D2:D11;"-");b)
Tenemos los goles de los equipos de fuera.

Creamos otra variable, restamos la variable “a” menos la variable “b”, pero, antes ponemos la funcion ABS.
=LET(a;TEXTOANTES(D2:D11;"-");b;TEXTODESPUES(D2:D11;"-");c;ABS(a-b);c)
Tenemos la diferencia de goles para cada encuentro.

Creamos otra variable, usamos la funcion K.ESIMO.MAYOR, como argumento matriz, ponemos la variable “c”, como argumento K, usamos una constante de matriz, abrimos unas llaves, ponemos los valores 1, 2, y, 3, separados por punto y coma, cerramos llaves.
=LET(a;TEXTOANTES(D2:D11;"-");b;TEXTODESPUES(D2:D11;"-");c;ABS(a-b);d;K.ESIMO.MAYOR(c;{1;2;3});d)
Obtenemos los tres primeros valores mayores.

¿Qué problema vemos?
Vemos que como segundo y tercer valor mayor aparece el mismo número, por lo que dichos valores se cuentan como uno solo, entonces, falta un siguiente elemento mayor.
Creamos otra variable, usamos la funcion FRECUENCIA, como argumento datos, ponemos la variable “d”, como argumento grupos, ponemos, de nuevo, la variable “d”.
=LET(a;TEXTOANTES(D2:D11;"-");b;TEXTODESPUES(D2:D11;"-");c;ABS(a-b);d;K.ESIMO.MAYOR(c;{1;2;3});e;FRECUENCIA(d;d);e)
Obtenemos una matriz desbordada en vertical con las veces que aparece cada valor.

Vemos que un valor aparece dos veces.
Creamos otra variable, preguntamos si la variable “e” es mayor a 1.
=LET(a;TEXTOANTES(D2:D11;"-");b;TEXTODESPUES(D2:D11;"-");c;ABS(a-b);d;K.ESIMO.MAYOR(c;{1;2;3});e;FRECUENCIA(d;d);f;e>1;f)
Obtenemos VERDADERO donde es mayor a 1, y, FALSO donde no lo es.

Usamos la funcion FILTRAR, como argumento array es la expresión “e>1”, como argumento Include, volvemos a poner “e>1”, ya sabemos que, de forma predeterminada, compara con VERDADERO.
=LET(a;TEXTOANTES(D2:D11;"-");b;TEXTODESPUES(D2:D11;"-");c;ABS(a-b);d;K.ESIMO.MAYOR(c;{1;2;3});e;FRECUENCIA(d;d);f;FILTRAR(e>1;e>1);f)
Obtenemos VERDADERO.
Antes de la funcion FILTRAR, usamos el condicional SI, como argumento prueba lógica, es la funcion FILTRAR, como argumento valor si verdadero, usamos la funcion K.ESIMO.MAYOR, como argumento matriz, ponemos la variable “c”, como argumento K, usamos una constante de matriz, abrimos unas llaves, ponemos los valores 1, 2, 3, y, 4, es decir, que nos devuelva un valor mayor mas, como argumento valor si falso, ponemos la variable “d”.
=LET(a;TEXTOANTES(D2:D11;"-");b;TEXTODESPUES(D2:D11;"-");c;ABS(a-b);d;K.ESIMO.MAYOR(c;{1;2;3});e;FRECUENCIA(d;d);f;SI(FILTRAR(e>1;e>1);K.ESIMO.MAYOR(c;{1;2;3;4});d);f)
Obtenemos los tres valores mayores incluyendo el valor duplicado.

Creamos otra variable, usamos la funcion ENFILA, como argumento usamos la funcion UNICOS, y, como argumento ponemos la variable “f”.
LET(a;TEXTOANTES(D2:D11;"-");b;TEXTODESPUES(D2:D11;"-");c;ABS(a-b);d;K.ESIMO.MAYOR(c;{1;2;3});e;FRECUENCIA(d;d);f;SI(FILTRAR(e>1;e>1);K.ESIMO.MAYOR(c;{1;2;3;4});d);g;ENFILA(UNICOS(f));g)
Obtenemos los valores únicos en horizontal.

Creamos otra variable, usamos la funcion SUSTITUIR, como argumento texto, usamos la funcion ENCONTRAR, como argumento texto buscado, ponemos la variable “g”, como argumento dentro del texto, ponemos la variable “c”, como argumento texto original, ponemos 1, como argumento texto nuevo, seleccionamos el rango A2:A11.
=LET(a;TEXTOANTES(D2:D11;"-");b;TEXTODESPUES(D2:D11;"-");c;ABS(a-b);d;K.ESIMO.MAYOR(c;{1;2;3});e;FRECUENCIA(d;d);f;SI(FILTRAR(e>1;e>1);K.ESIMO.MAYOR(c;{1;2;3;4});d);g;ENFILA(UNICOS(f));h;SUSTITUIR(ENCONTRAR(g;c);1;A2:A11);h)
Obtenemos una matriz desbordada de tres columnas, donde tenemos el encuentro correspondiente y error donde no hay coincidencia.

Transponemos.
=LET(a;TEXTOANTES(D2:D11;"-");b;TEXTODESPUES(D2:D11;"-");c;ABS(a-b);d;K.ESIMO.MAYOR(c;{1;2;3});e;FRECUENCIA(d;d);f;SI(FILTRAR(e>1;e>1);K.ESIMO.MAYOR(c;{1;2;3;4});d);g;ENFILA(UNICOS(f));h;TRANSPONER(SUSTITUIR(ENCONTRAR(g;c);1;A2:A11));h)
Antes de TRANSPONER, usamos ENCOL, como argumento matriz, es la funcion TRANSPONER, como argumento ignorar, seleccionamos 3.
=LET(a;TEXTOANTES(D2:D11;"-");b;TEXTODESPUES(D2:D11;"-");c;ABS(a-b);d;K.ESIMO.MAYOR(c;{1;2;3});e;FRECUENCIA(d;d);f;SI(FILTRAR(e>1;e>1);K.ESIMO.MAYOR(c;{1;2;3;4});d);g;ENFILA(UNICOS(f));h;ENCOL(TRANSPONER(SUSTITUIR(ENCONTRAR(g;c);1;A2:A11));3);h)
Ya tenemos los encuentros.

Creamos otra variable, usamos la funcion APILARH, como argumento matriz1, ponemos la variable “h”, como argumento matriz2, ponemos la variable “f”, y, tenemos los encuentros y la diferencia de goles.
=LET(a;TEXTOANTES(D2:D11;"-");b;TEXTODESPUES(D2:D11;"-");c;ABS(a-b);d;K.ESIMO.MAYOR(c;{1;2;3});e;FRECUENCIA(d;d);f;SI(FILTRAR(e>1;e>1);K.ESIMO.MAYOR(c;{1;2;3;4});d);g;ENFILA(UNICOS(f));h;ENCOL(TRANSPONER(SUSTITUIR(ENCONTRAR(g;c);1;A2:A11));3);i;APILARH(h;f);i)

Creamos otra variable, usamos una constante de matriz, abrimos unas llaves, entre comillas dobles, ponemos Encuentros, ponemos la barra inclinada, entre comillas dobles, ponemos Dif. Goles, cerramos llaves.
=LET(a;TEXTOANTES(D2:D11;"-");b;TEXTODESPUES(D2:D11;"-");c;ABS(a-b);d;K.ESIMO.MAYOR(c;{1;2;3});e;FRECUENCIA(d;d);f;SI(FILTRAR(e>1;e>1);K.ESIMO.MAYOR(c;{1;2;3;4});d);g;ENFILA(UNICOS(f));h;ENCOL(TRANSPONER(SUSTITUIR(ENCONTRAR(g;c);1;A2:A11));3);i;APILARH(h;f);j;{"Encuentros"\"Dif. goles"};j)
Usamos el argumento cálculo de LET, usamos la funcion APILARV, como argumento matriz1, ponemos la variable “j”, como argumento matriz2, ponemos la variable “i”.
=LET(a;TEXTOANTES(D2:D11;"-");b;TEXTODESPUES(D2:D11;"-");c;ABS(a-b);d;K.ESIMO.MAYOR(c;{1;2;3});e;FRECUENCIA(d;d);f;SI(FILTRAR(e>1;e>1);K.ESIMO.MAYOR(c;{1;2;3;4});d);g;ENFILA(UNICOS(f));h;ENCOL(TRANSPONER(SUSTITUIR(ENCONTRAR(g;c);1;A2:A11));3);i;APILARH(h;f);j;{"Encuentros"\"Dif. goles"};APILARV(j;i))
Aceptamos, y, ya lo tenemos.

Miguel Angel Franco




Comentarios