martes, abril 07, 2020

Whatsapp y Power Query en tiempos del corona

En la última edición de las tablas de Moisés, corregida y aumentada debido al virus Corona, se ha agregado un nuevo mandamiento: "No reenviarás mensajes, chistes, videos y similares en vano".
Quien más, quien menos, todos pecamos; por aburrimiento, supongo.

En uno de mis grupos Whatsapp alguien se quejó de la cantidad de mensajes y videos reenviados, muchos de los cuales son "fakes", como por ejemplo el poema atribuido a Mario Benedetti (que fue escrito por Alexis Valdez) o que se puede prevenir la infección haciendo gárgaras con bicarbonato de sodio. Buena parte de la discusión giró en torno a quien mandaba más mensajes al grupo. Las respuestas fueron, como era de esperar, "yo no".

Para dirimir la cuestión había que contar cuantos mensajes mandó cada uno al grupo. Una posibilidad era hacer el recuento manualmente lo que demandaría a alguien con la paciencia de un monje tibetano. Otra posibilidad era echar mano a Excel, más precisamente al Power Query. En este post voy a mostrar como hacerlo.

Empezamos por exportar el "chat" del grupo:



  1. seleccionamos el grupo (en el smartphone);
  2. abrimos el menú (los tres puntos verticales a la derecha) y pulsamos more;
  3. en el nuevo menú pulsamos Export chat;
  4. usamos la opción Without media y lo enviamos por correo electrónico a nuestra casilla.
En el correo veremos por lo general varios archivos uno de los cuales tiene el nombre Whatsapp chat with... y el nombre del grupo. Este es el que voy a usar en mi ejemplo (el grupo de ex-compañeros y compañeras del colegio secundario)


Creamos una consulta en Power Query al archivo y de ser necesario ajustamos las definiciones (por ejemplo, coma como delimitador en lugar de dos puntos) 


Apretamos Transformar Datos


Podemos ver que en la primer columna tenemos las fechas y en la segunda la hora y el nombre del miembro que envió el mensaje. Para separa la hora del nombre vamos a usar Dividir columna usando el símbolo "-" como delimitador


Para separar los nombres del resto del texto en la columna [Columna2.2] volvemos a usar Dividir columna esta vez con ":" como delimitador. 
Seleccionamos las columnas con la fecha y los nombres y eliminamos las restantes usando Quitas otras columnas



Eliminamos las primeras cuatro filas que son irrelevantes. También tenemos que eliminar otras filas irrelevantes como la número 19 que es un mensaje del sistema.Para hacerlo hacerlo abrimos el filtro de la columna y eliminamos las textos no relevantes


Las fechas aparecen en formato americano: mes/día/año. Para evitar errores vamos a dividir la columna usando el delimitador "/" y convertir las fechas a nuestro formato usando #date(año,mes,día)



Necesitamos completar el número del año (2018 en lugar de 18) por lo que sumamos 2000 a los valores de la columna [Column1.3] usando Transformar-Estándar-Agregar. Ahora creamos la columna personalizada [Fecha]


Eliminamos las columnas innecesarias y reordenamos las columnas de fechas y nombres


 Para el recuento de cuantas mensajes envió cada miembros podemos usar Agrupar por del Power Query o una tabla dinámica.

Usamos Agrupar por básico


y ordenamos el resultado de mayor a menor


 Con este resultado dimos por concluida la discusión en el grupo.

Resumir los datos con una tabla dinámica nos ofrece mayor flexibilidad, por ejemplo, mostrar los totales por año


2 comentarios:

  1. Hola Jorge... Saludos desde Nicaragua... Como siempre admirable tu dominio de los temas de Power Query y Excel...

    Pido tu ayuda para saber como puedo trabajar con Power Query la base de datos de mi sistema contable... Es decir no se como acceder a la base de datos donde deben estar todos los registros de operaciones contables...

    ResponderBorrar
    Respuestas
    1. Hola, Power Query se puede conectar muchos tipos de fuentes de datos. Por ejemplo bases de datos Access y SQL Server. Tendrías que ver sobre que plataforma corre tu base de datos.
      Por otro lado, muchos sistemas permiten exportar datos (como informes o tablas) en formatos como Excel o archivos texto (.txt, .csv. etc.), que luego puedes usar para tus análisis con Power Query.

      Borrar

Nota: sólo los miembros de este blog pueden publicar comentarios.