top of page

Recuento de equipos

En una primera columna, tenemos una serie de equipos de futbol, en la segunda columna, tenemos los equipos a los que se enfrentaron, y, en una tercera columna, los resultados.














Debemos de realizar un recuento de los partidos jugados por cada equipo.


En la celda E2, usamos la función LET, creamos una variable, usamos la función EXTRAER, como argumento texto, seleccionamos el rango C2:C11, como argumento posición inicial, ponemos 1, los caracteres a extraer son los caracteres, o, carácter que hay antes del guion medio, por lo que usamos la función ENCONTRAR, como argumento texto buscado, entre comillas dobles, ponemos el guion medio, como argumento dentro del texto, seleccionamos el rango C2:C11.


A la función ENCONTRAR, debemos de restar 1, porque es espacio no lo vamos a extraer.

Probamos variable.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);a)


Obtenemos una matriz desbordada en vertical con los goles de los equipos de la primera columna.


















Ahora, vamos a traernos los goles de los equipos de la segunda columna, en este caso, los caracteres a extraer son a partir del espacio, creamos otra variable, usamos la función DERECHA, como argumento texto, seleccionamos el rango C2:C11, como argumento numero de caracteres, usamos la función LARGO, como argumento texto de LARGO, seleccionamos el rango C2:C11, a esta longitud debemos de restar los caracteres que hay hasta el espacio, ponemos el signo de menos, usamos la función ENCONTRAR, como argumento texto buscado, entre comillas dobles, ponemos el guion medio, como argumento dentro del texto, seleccionamos el rango C2:C11, probamos variable.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));b)


Tenemos los goles de los equipos de la segunda columna.

















Creamos otra variable, la llamaremos result, restamos la variable “a” con la variable “b”, probamos variable.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;a-b;resul)


Obtenemos números positivos, negativos, y, ceros.


















Si el valor es mayor a cero, quiere decir que ese equipo de la columna primera ha ganado, por lo que vamos a usar el condicional SI, como argumento prueba lógica, es la resta anterior, como argumento valor si verdadero, seleccionamos el rango A2:A11, como argumento valor si falso, ponemos un error.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;SI(a-b>0;A2:A11;NOD());resul)











Obtenemos los equipos de la primera columna que ganaron a los equipos de la segunda columna.

















Usamos la función APILARV antes del condicional SI, como argumento matriz1, es el condicional anterior, como argumento matriz2, es el mismo condicional, pero cambiamos el símbolo de comparación mayor por menor.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;APILARV(SI(a-b>0;A2:A11;NOD());SI(a-b<0;B2:B11;NOD()));resul)


Obtenemos una matriz desbordada en vertical con los equipos ganadores, y, error donde no hay coincidencia.



















Antes de la función APILARV, usamos la función ENCOL, como argumento matriz es la función APILARV, como argumento ignorar, ponemos 3, es decir, ignorar blancos y errores.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;ENCOL(APILARV(SI(a-b>0;A2:A11;NOD());SI(a-b<0;B2:B11;NOD()));3);resul)


Obtenemos los equipos ganadores, pero, repetidos.















Ordenamos, para ello, usamos la función ORDENAR.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;ORDENAR(ENCOL(APILARV(SI(a-b>0;A2:A11;NOD());SI(a-b<0;B2:B11;NOD()));3));resul)
















Creamos otra variable, la llamaremos solos, y, nos traemos los valores únicos de la columna A, ya que son los mismos equipos que la columna B.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;ORDENAR(ENCOL(APILARV(SI(a-b>0;A2:A11;NOD());SI(a-b<0;B2:B11;NOD()));3));solos;UNICOS(A2:A11);solos)












Creamos otra variable, la llamaremos resul2, usamos la función COINCIDIR, como argumento valor buscado, ponemos la variable resul, como argumento matriz buscada, volvemos a poner la variable result, como argumento tipo de coincidencia, seleccionamos exacta.


LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;ORDENAR(ENCOL(APILARV(SI(a-b>0;A2:A11;NOD());SI(a-b<0;B2:B11;NOD()));3));solos;UNICOS(A2:A11);resul2;COINCIDIR(resul;resul;0);resul2)


Tenemos una matriz desbordada con la posición de cada equipo.
















Para verlo mas claro, vamos a usar la función APILARH, como argumento matriz1, ponemos la variable resul, como argumento matriz2, ponemos la variable resul2.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;ORDENAR(ENCOL(APILARV(SI(a-b>0;A2:A11;NOD());SI(a-b<0;B2:B11;NOD()));3));solos;UNICOS(A2:A11);resul2;COINCIDIR(resul;resul;0);APILARH(resul;resul2))


Vemos que Milán aparece en la posición 1, como aparece dos veces, en las dos veces que aparece, están en la posición 1, Real Madrid, se encuentra en la posición 6, como aparece tres veces, en las tres veces aparece la posición 6.
















Borramos la función APILARH, usamos la función FRECUENCIA, como argumento datos, es la función COINCIDIR, y, como argumento grupos volvemos a poner la función COINCIDIR.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;ORDENAR(ENCOL(APILARV(SI(a-b>0;A2:A11;NOD());SI(a-b<0;B2:B11;NOD()));3));solos;UNICOS(A2:A11);resul2;FRECUENCIA(COINCIDIR(resul;resul;0);COINCIDIR(resul;resul;0));resul2)


Obtenemos las veces que se repite cada valor.














A diferencia de COINCIDIR, que nos devuelve la primera posición que ocupa la coincidencia en todas las veces que aparece dicho valor, la función FRECUENCIA, solo devuelve las veces que aparece un valor en la primera aparición, en el resto de las veces que aparece dicho valor, aparece como cero.


Nos interesan aquellos valores que son mayores a cero, primero, antes de la función FRECUENCIA, ponemos la función APILARH, como argumento matriz1, ponemos la variable resul, como argumento matriz2, es la función FRECUENCIA.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;ORDENAR(ENCOL(APILARV(SI(a-b>0;A2:A11;NOD());SI(a-b<0;B2:B11;NOD()));3));solos;UNICOS(A2:A11);resul2;APILARH(resul;FRECUENCIA(COINCIDIR(resul;resul;0);COINCIDIR(resul;resul;0)));resul2)


Obtenemos primera los equipos, y, después, los valores obtenidos anteriormente.


















La función FRECUENCIA siempre devuelve un ultimo valor que es cero, de ahí el error que tenemos en la última fila.


Vamos a usar el argumento calculo de LET, y, quitamos el error con la función SI.ERROR, ponemos blanco donde es error.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;ORDENAR(ENCOL(APILARV(SI(a-b>0;A2:A11;NOD());SI(a-b<0;B2:B11;NOD()));3));solos;UNICOS(A2:A11);resul2;APILARH(resul;FRECUENCIA(COINCIDIR(resul;resul;0);COINCIDIR(resul;resul;0)));SI.ERROR(resul2;""))


















Usamos la función FILTRAR, como argumento array, es la expresión anterior.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;ORDENAR(ENCOL(APILARV(SI(a-b>0;A2:A11;NOD());SI(a-b<0;B2:B11;NOD()));3));solos;UNICOS(A2:A11);resul2;APILARH(resul;FRECUENCIA(COINCIDIR(resul;resul;0);COINCIDIR(resul;resul;0)));FILTRAR(SI.ERROR(resul2;"")


Como argumento include, usamos la función INDICE, como argumento matriz, es la función SI.ERROR, omitimos el argumento numero de fila, como argumento numero de columna, ponemos 2, ponemos el símbolo de indistinto (<>), y, ponemos el valor cero, es decir, nos va a filtrar la variable result2, siempre que la los valores de la segunda columna de la variable resul2, sea distinto a cero.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;ORDENAR(ENCOL(APILARV(SI(a-b>0;A2:A11;NOD());SI(a-b<0;B2:B11;NOD()));3));solos;UNICOS(A2:A11);resul2;APILARH(resul;FRECUENCIA(COINCIDIR(resul;resul;0);COINCIDIR(resul;resul;0)));FILTRAR(SI.ERROR(resul2;"");INDICE(SI.ERROR(resul2;"");;2)<>0))


Aceptamos, y, ya lo tenemos.









Por último, ordenamos la función FILTRAR por la segunda columna, de menor a mayor.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;ORDENAR(ENCOL(APILARV(SI(a-b>0;A2:A11;NOD());SI(a-b<0;B2:B11;NOD()));3));solos;UNICOS(A2:A11);resul2;APILARH(resul;FRECUENCIA(COINCIDIR(resul;resul;0);COINCIDIR(resul;resul;0)));ORDENAR(FILTRAR(SI.ERROR(resul2;"");INDICE(SI.ERROR(resul2;"");;2)<>0);2))









Y si queremos ver los equipos que empataron, pues, volvemos a la expresión, borramos en texto que aparece en negrita.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;ORDENAR(ENCOL(APILARV(SI(a-b>0;A2:A11;NOD());SI(a-b<0;B2:B11;NOD()));3));solos;UNICOS(A2:A11);resul2;APILARH(resul;FRECUENCIA(COINCIDIR(resul;resul;0);COINCIDIR(resul;resul;0)));ORDENAR(FILTRAR(SI.ERROR(resul2;"");INDICE(SI.ERROR(resul2;"");;2)<>0);2))


Lo sustituimos por el texto que aparece en negrita.


=LET(a;EXTRAE(C2:C11;1;ENCONTRAR("-";C2:C11)-1);b;DERECHA(C2:C11;LARGO(C2:C11)-ENCONTRAR("-";C2:C11));resul;ORDENAR(SI(a=b;A2:C11;""));solos;UNICOS(A2:A11);FILTRAR(resul;INDICE(resul;;1)<>""))


Aceptamos, y, ya lo tenemos.









Miguel Angel Franco

 
 
 

Comentarios


© 2019 Miguel Ángel Franco García

bottom of page