Todos los días descargo datos de un sitio que tendrá filas cada una llena de datos individuales para clientes. Puedo ingresar los datos en Excel en su conjunto, pero después de eso tengo problemas para descubrir cómo ponerlos en un gráfico.
Por ejemplo, tiempo de visitas a la web. Digamos que el Cliente 1 permaneció durante 5 minutos aumentando su tiempo total en el sitio a 20 minutos y el Cliente 2 permaneció durante 0 minutos manteniendo su tiempo de 10 minutos y ambos se registraron en la víspera de año nuevo, y el último inicio de sesión de R1 fue hoy y R2 fue ayer. (R por alguna razón representa al Cliente, no tengo idea de por qué ...) . El cliente 3 no ha estado encendido desde que se registró, manteniendo su total a los 4 minutos
Entonces mis datos se verían así para hoy (20110104)
R1,20101231,20110104,20
R2,20101231,20110103,10
R3,20101231,20101231,4
Y esto para el día anterior (201101030),
R1,20101231,20110102,15
R2,20101231,20110103,10
R3,20101231,20101231,4
Recibo alrededor de 200 filas de clientes cada día, donde incluso los nombres de la lista de clientes están cambiando. ¿Es posible importar los datos cada día y completarlos en una hoja de Excel donde el número de Cliente está en el lado izquierdo en una tabla, y la cantidad de tiempo (Número entero ej. 4) cada día que pasa en el sitio extienda a la derecha debajo de su fecha específica ver imagen ?
Me las arreglé para crear una hoja manual, pero no logré que Excel hiciera nada por mí.
Aquí hay dos fotos:
Un proceso de pensamiento sobre cómo podría hacerse es crear una macro que solicite el archivo csv, luego, para cada cliente, encuéntrelo, reste los nuevos minutos totales con los minutos totales anteriores ( digamos 22-18 = 4 ), inserte la diferencia en la columna de hoy. Luego elimine todos los ceros en el rango. Si no se encuentra el cliente, podría omitirse hasta que todos los clientes que quedan sean nuevos usuarios, entonces la tabla podría expandirse hacia abajo por el número de clientes restantes. En esos nuevos lugares se puede ingresar el número de cliente.
Respuestas:
No estoy seguro de que esto pueda suceder de forma completamente automática antes de escribir un script increíble ... pero si pudiera hacerlo, recomendaría escribir un programa real con una base de datos. Estoy divagando.
Supongo que su columna más a la izquierda es una suma de todas las otras columnas para una fila en particular. Estoy confundido por los diferentes números para el cliente. prefijo, sufijo y luego, ¿cuál es el número en naranja en la parte superior? Continuaré asumiendo que cada cliente es una fila diferente.
Primero debe colocar el nuevo archivo en una hoja de trabajo (probablemente en el mismo archivo) para que pueda hacer referencia a él.
Suponiendo que tiene alguna ID común entre cada archivo ... primero debe agregar cualquier nuevo cliente a su lista maestra. Quizás haga esto manualmente. puede usar un
=countif(thisID, <range of known id's>)
archivo nuevo de cada día para ver si hay nuevos y cuáles. Los que tienen un 0 serían nuevos. O si las identificaciones están en orden y siempre se agregan al final, solo puede mirar el # más grande en ambas listas y agregarlo si es necesario.Ahora que su lista está completa, coloque una función vlookup en la columna de hoy. y reste los minutos totales existentes
=vlookup(<cell with clientid>, <range from today's file including all columns>, 4, false) - A<samerow>
.(se supone que el "4" le dará los minutos del cliente, por lo que si no es así, algo está mal)
Entonces, lo que tienes ahora en esta columna son los minutos de hoy. Pero como harás lo mismo mañana, tienes que eliminar la fórmula y reemplazarla con valores reales para que no cambien más tarde. Copie la columna completa, luego péguela haciendo clic derecho, seleccionando 'pegar especial ... "y elija" valores ".
Eso debería acercarte bastante a lo que necesitas con unos pocos pasos menos. Lo siento si eso no es lo que estabas buscando. ¡Buena suerte!
fuente