Использование Excel для отображения количества вхождений в диапазоне дат - PullRequest
3 голосов
/ 18 января 2010

У меня есть список дат транзакций и идентификатор пользователя, который совершил транзакцию в эту дату (разрешено только 1 Tx / день). Например:

image

Я хотел бы создать матрицу, которая на каждую дату показывает количество пользователей, которые сделали 1 транзакцию, 2-10 транзакций, 10-20 транзакций и т. Д. не соответствуют данным транзакции выше):

image

Является ли сводная таблица моим лучшим механизмом здесь? Если да (или нет), как бы я подошел к этому?

Ответы [ 2 ]

2 голосов
/ 18 января 2010

Мой голос использует опору Если у вас есть что-то подобное в 2007 году

1) Выберите данные, которые у вас есть выше 2) Вставьте опору 3) Перетащите дату в строку Loabel 4) Перетащите идентификатор пользователя в столбцы => вы получите один столбец на идентификатор пользователя 5) В значениях вы должны иметь количество пользователей 6) Затем вам нужно добавить новые столбцы, которые подсчитывают количество пользователей в сегменте 1-10 и т. Д.

1 голос
/ 23 января 2010

Я знаю, что я собираюсь сказать, что это немного "выходит за рамки", но у меня была такая проблема, и я вместо этого использовал R , чтобы обойти ее. (Если бы я не использовал R, я бы попробовал sql, но ни в коем случае не выбрал бы Excel)

У меня также есть таблица из двух столбцов с именем "trans_data", как и ваша. Имена столбцов: «trans_date» и «user_id». Я также хотел получить таблицу на случай непредвиденных обстоятельств, такую ​​как ваша, с количеством пользователей в определенных лимитах транзакций.

Вот код

library(plyr)
adply(table(trans_date),1,function(x) {
     d = NULL
     d["1"] <- sum(x==1)
     d["2_to_5"] <- sum(x > 1 & x <= 5) 
     d["6_to_27"] <- sum(x > 5 & x <= 27)
     d["28_to_120"] <- sum(x > 27 & x <= 120)
     d["121_to_398"] <- sum(x > 120 & x <= 398)
     d[">_398"] <- sum(x > 398)
     return(d)
   }
)

и часть результата

  trans_date   1 2_to_5 6_to_27 28_to_120 121_to_398 >_398
1 2009-01-25 257    169      61         7          1     0
2 2009-01-26 145    125      53         3          1     0
3 2009-01-27 175    117      44        12          0     0
4 2009-01-28 171    138      49         7          4     0
5 2009-01-29 756    217      71         5          3     0
...