Excel数据透视表:取消日期分组,实现跨月同日登录量对比
解决Excel透视表按日对比各月登录量的问题
问题背景
现有原始数据如下:
| 日期 | 登录量 |
|---|---|
| 01/01/2021 | 550 |
| 02/01/2021 | 687 |
| 03/01/2021 | 781 |
| --- | --- |
| 01/03/2021 | 478 |
| 02/03/2021 | 925 |
| --- | --- |
期望制作透视表实现按日数对比各月份登录量,理想输出:
| 日数 | 一月 | 二月 | 三月 |
|---|---|---|---|
| 01 | 550 | 717 | 478 |
| 02 | 687 | 397 | 925 |
| 03 | 781 | 714 | 397 |
| --- | --- | --- | --- |
但直接使用透视表分组功能后,日期与所属月份绑定,得到错误结果:
| 日数 | 一月 | 二月 | 三月 |
|---|---|---|---|
| 01-1月 | 550 | ||
| 02-1月 | 687 | ||
| 03-1月 | 781 | ||
| --- | --- | --- | --- |
| 01-3月 | 478 | ||
| 02-3月 | 925 | ||
| --- | --- | --- | --- |
解决方案
核心思路是提前拆分日期的“日”和“月份”信息,再用透视表组合,避免日期与月份绑定:
1. 添加辅助列拆分日期
在原始数据右侧新增两列:
日数列:提取日期中的日部分,使用公式(假设日期在A列,从第2行开始):
用=TEXT(A2,"dd")TEXT函数确保输出两位数格式(如01、02),若不需要两位数,也可使用=DAY(A2)。月份列:提取中文月份名称,使用公式:
该公式会直接输出“一月”“二月”这类中文月份名,无需额外转换。=TEXT(A2,"mmmm")
2. 构建目标透视表
- 选中包含辅助列的全部数据区域,点击菜单栏的插入→数据透视表,选择透视表放置位置。
- 在透视表字段面板中进行如下设置:
- 将
日数拖至行区域 - 将
月份拖至列区域 - 将
登录量拖至值区域,默认汇总方式为求和(若每个日期对应唯一登录量,求和结果与原值一致)
- 将
3. 优化格式(可选)
- 如果列区域的月份顺序混乱,右键点击任意月份标签,选择排序→自定义排序,手动调整为“一月、二月、三月”的顺序。
- 按需隐藏透视表的总计行/列,或者调整单元格样式匹配需求。
完成以上步骤后,即可得到与理想输出一致的透视表。
内容的提问来源于stack exchange,提问作者Fabio Manniti
相关产品推荐
相关产品推荐

