Использование Excel для отображения количества вхождений в диапазоне дат

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

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

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


person Howiecamp    schedule 18.01.2010    source источник


Ответы (2)


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

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

person salgo60    schedule 18.01.2010
comment
Спасибо за быстрый ответ. Не могли бы вы пояснить, почему я перетаскиваю идентификатор пользователя в столбцы? Я бы закончил с тысячами столбцов. Другой пробел, который у меня есть, заключается в том, как создать формулы столбца сегмента для подсчета количества вхождений в этом диапазоне. - person Howiecamp; 18.01.2010
comment
Возможно, это плохой подход, если у вас тысячи пользователей... Я подумал об использовании частотной функции, такой как meadinkent.co.uk/xlfreq.htm - person salgo60; 18.01.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
person George Dontas    schedule 23.01.2010