如何在Excel数据透视表中计算日期字段得出账单已过天数并筛选超期未结清账单?
如何在Excel数据透视表中计算日期字段得出账单已过天数并筛选超期未结清账单?
别担心,刚上手数据透视表碰到日期计算确实容易懵,我给你一步步拆解,保证你能轻松搞定~
第一步:先给源数据新增「已过天数」列
数据透视表本身直接算日期差不太友好,咱们先在原始数据里把“已过多少天”算好,后续透视表用起来就顺手多了:
- 找个空白列(比如你的数据到F列,就用G列),表头输入
已过天数 - 在G2单元格输入公式:
=TODAY()-C2(这里假设你的Bill_Date在C列,要是你的日期列在别的位置,把C改成对应的列号就行) - 按回车后,把鼠标放在G2单元格右下角,等光标变成十字形,双击或者下拉填充所有行,这样每一行的账单都能算出到今天为止过了多少天
- 要是你发现单元格显示的是日期格式(比如####或者一串奇怪的日期),选中这列,右键→「设置单元格格式」,选「常规」,就能看到数字形式的天数啦
第二步:创建数据透视表
- 选中整个源数据区域(一定要包含刚新增的「已过天数」列哦,漏了就白忙活啦)
- 点击顶部菜单栏的「插入」,选择「数据透视表」,弹出来的对话框直接点「确定」就行(默认放在新工作表里,和源数据分开看更清爽)
第三步:布置透视表字段,调出你要的账单详情
在右侧的「数据透视表字段」面板里拖放字段:
- 把
Party_Name、Bill_No、Bill_Date拖到「行」区域,这样就能按客户+账单号清晰显示每条账单的明细 - 把
Bill_Amt、Amt_Paid、Bal_Amt拖到「值」区域,这里要注意:拖进去后默认可能是「求和项」,如果你的这些金额都是单条记录的数值,右键点击值区域的字段(比如「求和项:Bill_Amt」),选择「值字段设置」,改成「最大值」或者「最小值」(因为单条记录的话,求和、最大、最小结果都一样,这样显示的就是每条账单的实际金额)
第四步:筛选出符合条件的超期未结清账单
现在来设置筛选,把不需要的账单过滤掉:
- 筛选未结清账单:
- 把
Bal_Amt拖到「筛选」区域 - 点击透视表顶部的「Bal_Amt」筛选器,选择「值筛选」→「大于」,在弹出的框里输入
0,点击确定,这样就只保留有未结余额的账单了
- 把
- 筛选超期10天以上的账单:
- 把
已过天数拖到「筛选」区域 - 点击「已过天数」的筛选器,选择「值筛选」→「大于」,输入
10,点击确定,搞定!
- 把
一些小提醒
- 每次打开Excel文件,
TODAY()会自动更新成当天的日期,所以「已过天数」也会跟着变,不用手动修改,右键透视表选「刷新」就能同步最新的筛选结果 - 如果之后源数据新增了新的账单,记得把「已过天数」的公式填充到新行,再刷新透视表就可以啦
这样下来,你要的超期未结清账单明细就都整整齐齐显示在透视表里了,是不是比你想象的简单?要是哪一步卡壳了,随时再问~




