使用 Excel 显示日期范围内的出现次数

Posted

技术标签:

【中文标题】使用 Excel 显示日期范围内的出现次数【英文标题】:Using Excel to display the number of occurrences within a date range 【发布时间】:2011-01-06 04:38:02 【问题描述】:

我有一个交易日期列表和在该日期进行交易的人的用户 ID(仅允许 1 Tx/天)。例如:

我想创建一个矩阵,显示截至每个日期进行 1 次交易、2-10 次交易、10-20 次交易等的用户数量。例如(请注意,以下数据不'不对应上面的交易数据):

数据透视表是我最好的机制吗?如果是(或不是)我将如何处理这个问题?

【问题讨论】:

【参考方案1】:

我的投票使用轴心 如果你有 2007 年这样的东西

1) 选择您上面的数据 2) 插入枢轴 3)将日期拖到行Loabel 4) 将用户 ID 拖到列 => 每个用户 ID 获得一列 5) 在 Values 中你应该有 Count of Users 6)然后您需要添加新列来计算段 1-10 中的用户数等

【讨论】:

感谢您的快速回答。您能否解释一下为什么我要将用户 ID 拖到列中?我最终会得到数千列。我遇到的另一个差距是如何创建分段列公式来计算该范围内的出现次数。 如果你有成千上万的用户,这可能是一个不好的方法......我考虑过使用像meadinkent.co.uk/xlfreq.htm这样的频率函数【参考方案2】:

我知道我要说的有点“超出范围”,但我遇到了这样的问题,我使用R 来解决它。 (如果我没有使用 R,我想我会尝试 sql 但绝不会选择 excel)

我也有一个名为“trans_data”的 2 列表,就像你的一样。列名是“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

【讨论】:

以上是关于使用 Excel 显示日期范围内的出现次数的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL中统计某个区域内多个数字一共出现的次数

excel中 一组数中选出出现次数最多的数字

计算按日期范围拆分的值的先前出现次数

excel统计每个数据出现次数 多行多列

SQL在where语句中使用日期范围的选择子查询来确定该日期范围内的最大值

计算日期出现的次数并从中制作图表[关闭]