我正在查看 Twilio 的一份显示外发短信的 CSV 文件。我有三个消息服务,每个服务都有一个不同的电话号码。报告中的每一行代表一条消息,并有一个时间戳和发件号码。
我想要的是得到一个图表,其中每个数字的消息计数作为一个单独的系列。我想我需要一个数据透视表来实现这一点,但我对 Excel 有点迷茫——通常我会在黑屏上毫无问题地输入 SQL,但我需要一张漂亮的图片!
样本数据:
FromNumber SentDate
2345678910 2018-01-01
5678910112 2018-01-01
9876543210 2018-01-02
5678910112 2018-01-02
5678910112 2018-01-02
2345678910 2018-01-02
9876543210 2018-01-02
9876543210 2018-01-03
2345678910 2018-01-03
9876543210 2018-01-03
5678910112 2018-01-03
期望输出:
我正在运行 Excel 2016,看看是否有区别。
答案1
对于这一点来说,Excel 比 Calc 容易得多。
- 将您的数据转换为 Excel 数据表
Insert > Table
(不是必需的,但它可以使数据维护和长期更新更容易)。 - 选择数据表后,插入数据透视表
Insert > Pivot Table
。 - 设置您的数据透视表:
行 = SentDate
列 = FromNumber
值 = FromNumber 的数量(可能默认为总和,只需通过值字段设置对话框进行更改)。 - 插入图表
Insert > Charts > 2d Column Chart
。默认情况下,这将创建一个数据透视图,而不是常规图表。 - 按口味格式化。
答案2
我使用的是 LibreOffice Calc,因此菜单和选项布局略有不同,但这足够相似,您应该能够在 Excel 中找到设置。我已经有一段时间没有画图表了,所以可能有更直接的方法来找到这个解决方案,但我刚刚想出了一个快速而粗糙的解决方案。
我使用数据透视表来汇总数据:
(取消选择总计,按顺序将 FromNumber 和 SendDate 拖到行字段,将 SendDate 拖到数据字段,将 Sum 更改为 Count。)这将生成此数据透视表:
您想要的柱形图将日期视为类别标签,而不是实际日期。条形图按顺序排列,从第一个类别开始。因此,如果没有实际值,则每个电话号码的每个日期都需要一个占位符。否则,条形图将不会与正确的日期相关联。
您的样本数据中没有 987 这个数字的 1 月份值。为了防止 987 条出现在错误的位置,我刚刚创建了一个重复表并为 1 月份插入了一个零条目:
要复制数据透视表,我只需填充第一个单元格=A2
并拖动即可。然后添加虚拟的一月条目。
选择新表格,插入图表,然后选择柱形图选项。图表需要在其他设置选项卡中进行一些调整。
在“数据范围”下,指定行中的数据系列:
数据系列需要进行一些清理。对于每个电话号码,选择Y-Values
。在下Range for Y Values
,选择适当的计数范围。在下Categories
,选择整个 SendDate 值范围(不包括标题的整个表格列)。一旦您为第一个电话号码指定了类别范围,这也应该适用于其他号码,只需验证即可。
删除所有标记为 的系列Row n
,只留下电话号码。
这将生成基本图表:
您可以自定义图例的位置、Y 轴间隔、图表和轴标签以及其他格式。