我正在尝试在 Excel 中创建前后图表,在零月排列多个里程碑日期,并为里程碑月之前和之后的月份分配相对月份数。
我的电子表格大约有 5,000 行,如下所示:
+------------+-------------+---------+---------+---------+---------+---------+---------+
| UserID |MilestoneDate| 2014-01 | 2014-02 | 2014-03 | 2014-04 | 2014-05 | 2014-06 |
+------------+-------------+---------+---------+---------+---------+---------+---------+
| 7 | 2014-01-02 | 232 | 22 | 19 | 77 | 11 | 89 |
+------------+-------------+---------+---------+---------+---------+---------+---------+
| 89 | 2014-04-02 | 345 | 45 | 564 | 13 | 122 | 77 |
+------------+-------------+---------+---------+---------+---------+---------+---------+
| 678 | 2014-03-11 | 55 | 14 | 17 | 222 | 109 | 111 |
+------------+-------------+---------+---------+---------+---------+---------+---------+
| 897 | 2014-03-07 | 234 | 56 | 201 | 19 | 55 | 78 |
+------------+-------------+---------+---------+---------+---------+---------+---------+
| 789 | 2014-02-22 | 331 | 33 | 67 | 108 | 111 | 56 |
+------------+-------------+---------+---------+---------+---------+---------+---------+
| 989 | 2014-01-09 | 12 | 89 | 97 | 125 | 323 | 99 |
+------------+-------------+---------+---------+---------+---------+---------+---------+
MilestoneDate = 用户下载应用程序的日期,月份列代表用户每月访问网站的次数。
最终,我想生成一个折线图,X 轴上为相对月份 #,所有 MilestoneDate 月份均设置为零。MilestoneDate 之前的访问应计入相应的负月份(例如,用户 89 的 3 月活动应发生在“-1”月份,而他的 2 月活动应发生在“-2”月份)。
我不知道如何在 Excel 中实现这一点(以编程方式创建一个带有偏移值的新表 - 如何实现?)。我甚至不知道这种图表叫什么,这让我很难通过 Google 来寻求帮助。
有什么帮助吗?
答案1
看看这是否符合要求。
需要为图表源创建一个表。在此表中,用户按与原始数据源相同的顺序列出。检查每个用户的开始日期,并在 A16 及以下使用以下公式计算偏移量
=MONTH(B5)-MONTH(MonthZero)
第 15 行从 -5 到 6 的标签是手动输入的。公式从 C16 开始填充表格,向下和向内复制
=IF(IFERROR(OFFSET($C5:$H5,0,$A16+C$15,1,1),NA())=$A5,NA(),IF(IFERROR(OFFSET($C5:$H5,0,$A16+C$15,1,1),NA())=$B5,NA(),IFERROR(OFFSET($C5:$H5,0,$A16+C$15,1,1),NA())))
该公式抓取用户的原始数据,并使用计算出的偏移量将其相对于加入月份进行定位。使用两个嵌套的 IF 来避免用户名及其加入日期出现在表中,而 IFError 则确保仅返回有效的偏移量。
然后创建一个以第 14 行和第 15 行作为 X 轴并以用户 ID 作为系列的折线图。
我已经分享了用于创建屏幕截图的文件在我的 OneDrive 上。
笔记:不应尝试使用 5000 个用户使用 5000 个系列的此类数据可视化。您需要以某种方式聚合数据。
编辑:这是另一个版本,使用了不同的公式。我创建了另一张表,将原始数据排列在 A 至 H 列中,将图表源并排排列在 J 列及以下列中。
Offset 函数不稳定,会导致速度变慢。现在,此索引函数位于单元格 L5 中,并复制到单元格 L5 和单元格 L6 中,这样更短、更快,并且结果相同。
=IFERROR(IF($J5+L$4>=0,INDEX($C5:$H5,($J5+L$4)+1),NA()),NA())
您可以在 OneDrive 文件的第 2 表上找到它。