Manejo de datos en Excel: Ejemplo BetExplorer

En esta tercera entrega de la serie relacionada con el manejo de datos en excel, vamos a hacer un ejemplo de como se puede arreglar la información obtenida de una página web como es BetExplorer.

Partiremos de los datos que ofrece la web, que tienen el siguiente aspecto:


Para llegar a esto otro.


Para ello lo primero que debemos hacer es seleccionar todos los datos, copiarlos y hacer un Pegado Especial > Texto en Excel.

Con esto habremos conseguido la primera parte de la tabla (la zona verde). Ahora nos queda rematar la faena y rellenar usando funciones de excel la zona azul.

Las dos primeras columnas son los nombres de los equipos y los vamos a separar utilizando las funciones IZQUIERDA(Texto; Numero de caracteres), ENCONTRAR(Texto buscado; Texto donde busca; Posicion inicial), y EXTRAE(Texto; Posicion inicial; Numero de Caracteres). Esta es la parte más complicada de la hoja, porque lleva varias funciones de texto anidadas, pero una vez la tienes acabada funciona a la perfección.

Lo más importante para poder separar los equipos es ver si hay algún texto que sirva de separardor entre ambos. En este caso se utiliza el guión "-". Esto nos facilita mucho la tarea, porque lo que haremos es decirle a excel que el primer equipo es el texto que hay antes del guion y el segundo es el que hay después. Vamos a ver como traducimos esto a funciones de excel.

La función ENCONTRAR nos devuelve la posición dentro del texto que ocupa el caracter o caracteres que deseamos buscar. Así = ENCONTRAR(Partido;"-") nos va a devolver la posición en la que se encuentra el guión dentro del Partido.

La función IZQUIERDA nos va a devolver los n primeros carácteres del texto. Con esto lo tenemos casi hecho, lo que queremos es pedirle a Excel que nos devuelva los primeros caracteres hasta el guión. Es decir:

Equipo1 = ESPACIOS(IZQUIERDA(Partido;ENCONTRAR("-";Partido)-1))

La función ESPACIOS la coloco para quitar todos los espacios en blanco que sobren y el -1 de después de ENCONTRAR sirve para eliminar el "-" del texto.

Para el Equipo2 es un poco más complicado, porque cambiando la función IZQUIERDA por DERECHA no nos funciona, debido a que necesitamos saber cuantos caracteres hay empezando por la derecha hasta el guión y la función ENCONTRAR nos dice eso pero empezando por la izquierda. Así que tenemos dos alternativas, utilizar la función derecha y calcular el número de caracteres que necesitamos como la longitud total del texto menos la posición del guión, o bien utilizar la función extrae que nos devuelve un trozo de texto desde la posición que nosotros le digamos. Yo voy a utilizar esta última

Equipo2 = ESPACIOS(EXTRAE(Partido;ENCONTRAR("-";Partido)+1;100))

El +1 que hay después de ENCONTRAR, se usa en este caso para que no nos devuelva el guión junto al nombre del segundo equipo, y el 100 del final es para que extraiga 100 caracteres, como no hay tantos, lo que hace es extraer hasta el final del texto.

Ya tenemos hecho lo más difícil y solo nos queda completar la tabla con las columnas finales.

Los goles marcados por el equipo 1 y el equipo 2 los obteníamos con las funciones HORA() y MINUTO(), como vimos en el anterior artículo. Para obtener el resultado del partido, vamos a usar la función SI(condición; accion si verdadero; accion si falso). Esta función se puede anidar hasta un máximo de 7 veces, y para este caso deberemos anidar dos de ellas. Y nos quedaría algo así:

Res = SI (Eq1>Eq2; 1; SI(Eq1=Eq2; "X"; 2))

Con esta función lo que hacemos es comparar si los goles que ha metido el equipo1 son mayores que los que ha metido el equipo2 y si es así nos devuelve 1, si no es así, miramos si los goles del equipo1 son iguales a los del 2, si es así nos devuelve una X, que como es un texto debemos colocarla entre comillas dobles, y si no es así nos devuelve un 2. Como podeis ver la X la debemos de colocar entre comillas porque es un texto.

Para el cálculo del Over2.5 hacemos algo parecido.

O2.5 = SI (Eq1+Eq2>2;1;0)

Si la suma de los goles es mayor que 2, devuelve 1 y si es menor devuelve 0. El 1 y el 0 lo podríamos cambiar por lo que nosotros quisieramos "OVER" y "UNDER", "O" y "U"... pero yo suelo utilizar 1 y 0 porque para saber el % de overs que han salido solo tengo que hacer la media de esta columna. Si utilizamos cualquier otra nomenclatura el cálculo se complica un poco más.

La columna de O1.5, se calcula prácticamente igual que la de O2.5 y no lo voy a hacer. Lo dejo como deberes ;-)

La columna Par se calcula también usando la función Si y la función Es.Par() de la siguiente manera:

Par = SI (ES.PAR(Eq1+Eq2);1;0)

Con estas funciones ya tendríamos completada nuestra tabla.

La hoja de cálculo completa la he subido a GoogleDocs y la podeis encontrar pinchando en este enlace. El funcionamiento es sencillo, copiais los datos de BetExplorer y los pegais en la hoja con CTRL+V. El resto funciona automático. Espero que os sirva.

0 Comentarios: