一个周五下午,你打开邮箱,看到客户轻飘飘一句“发票这周能付吗?”,你头皮一麻。上个月发过去的那几张账单,到底哪张该到期了?翻遍聊天记录和本地文件夹,最后不得不把几十行数字从头捋一遍,一边用计算器减日期一边默默祈祷自己没有遗漏。这样的场景,一回就够了。这个周末,我们花一点时间,用Excel搭一个会自动告诉你谁欠钱、欠了多少天的小工具。不背公式、不写宏,零基础也能一次跑通,而且做出来的表格是真的能用在日常收款里的。
整张表的核心逻辑非常简单:把发票登记成一张结构化表格,让Excel自动判断今天是几号、和到期日差几天,再把结果用颜色怼到你眼前。那几个被你催过三次还没付的客户,再也藏不住了。
下面,我们就一步一步来。每一步都附上了具体的按钮位置、公式和格式设置,哪怕你以前只用Excel记过电话号码,也能跟上。
第一步,先给发票们一个像样的家。打开一个空白工作簿,从第5行开始搭建表格——前面几行我们要预留给稍后的汇总面板。在A5单元格敲入“ID”,B5“Client”,C5“Issue”,D5“Due”,E5“Amount”,F5“Status”,G5“Overdue”,H5“Notes”。这八个字段,会把一张发票从诞生到结清的完整生命周期都兜住。
接下来把这行标题转换成真正的Excel“表格”对象。用鼠标从A5拖到H6(多选一行,方便Excel自动扩展),按下快捷键Ctrl+T。弹出来的“创建表”对话框里,确认“表包含标题”已经打上勾,直接敲回车。Excel立刻给这片区域套上一个默认的蓝色条纹样式,别急,马上整理。
先把表格的名字改清楚,避免后期公式里出现那个谁都记不住的“表1”。点击表内任意单元格,功能区上方会多出一个“表设计”选项卡,切进去,在左侧“表名称”框里删掉默认文字,输入“T_Invoices”,按回车。以后你用公式引用这张表,直接打“T_Invoices”就可以了,不用再手动圈选范围。
格式也得对。选中C列和D列(签发日和到期日),在“开始”选项卡的数字组里,把格式下拉菜单改成“短日期”。这两列必须明确是日期,后面算逾期天数全靠它们。再不放心,也可以选中列后按Ctrl+Shift+3,同样一秒设好。E列金额列,选中后按Ctrl+Shift+4,所有数字立刻变成会计专用格式,小数点对齐,还自动带人民币符号,看着就专业。
现在可以随手输几条样本数据进去。比如第一行发票ID写“1001”,客户随便填个“远航设计”,签发日2025-06-10,到期日2025-06-20,金额填8000。再补两条,到期日有过去的也有未来的,故意让它们状态不一。Status和Overdue这两列先空着,马上我们就用公式和下拉菜单把它们填满。
第二步,把“状态”变成点选,别让自己每次都用键盘敲“已付”“未付”六个字。选中F列从F6往下的所有数据行(直接点F列字母可以选中整列,但因为我们有表头,建议点F6单元格,然后按Ctrl+Shift+↓就能选中该列的数据区域)。切到“数据”选项卡,找到“数据验证”按钮(有些版本叫“数据有效性”),点击它,在下拉中选择“数据验证…”。
弹窗里,在“允许”一栏选“序列”。底下“来源”框里直接打字:已付,未付。这里特别注意,逗号必须是英文半角逗号,否则Excel会把它当成一个整体字符串。输完点击“确定”。现在你随便点F列一个单元格,右侧都会出现一个下拉箭头,轻轻一击就能选“已付”或“未付”。想偷懒的话,敲拼音首字母也能触发快速选择。以后新发票录入后,改状态再也不用打字,也不会有“已付款”和“已付”这种前后不一致的麻烦了。
第三步,该算账了。逾期天数这一列,我们要让Excel自动比较到期日和今天。如果发票已经标记为“已付”,那逾期天数就归零,我们只盯未付的。点击G6单元格,在编辑栏里粘贴下面这个公式,然后按回车。Excel会自动识别你在表格内,把公式同步填充到该列所有现有行。以后新增数据时,表格也会自动把这公式送到新增行里,完全不用你再拖拽。
公式长这样:
=IF([@Status]="已付",0, IF(TODAY()>[@Due], TODAY()-[@Due], 0))
拆解一下它的工作逻辑,你会发现并不复杂。最外层IF先看本行的Status是不是“已付”,如果已经付了,直接返回0,干净利落。如果Status不是“已付”——也就是未付——它再去判断第二个条件:今天的日期是不是大于到期日。今天和到期日,TODAY()函数每次打开文件都会自动更新,所以不管你哪天打开工作簿,它拿到的都是你系统中的当前日期。一旦过期,就用今天减掉到期日,算出差额,这就是逾期天数。如果还没到日子,返回0。这样一来,G列的数字只会是0或者正数,绝不会跑出负数来混淆视听。
F9键是验公式的好伙伴,随便点进一个带有TODAY()的单元格,按F9就能看到它此刻返回的数值,按Esc退出。你可以在数据里故意放一张到期日是昨天、状态为“未付”的发票,看G列是否立刻显示1。
第四步,颜色上场。数字算出来了,但扫一眼可能还不够快。我们用条件格式,让已付的整个发票行安静地灰掉,让逾期的行红得刺眼。先选中表格里除了标题行之外的所有数据行——最稳妥的方式是,点表格任意单元格,按Ctrl+A两次,第一次选中当前数据区域,第二次连标题一起选中,但我们需要的是全部数据行,可以点表头左侧的行号快速选中,或者把鼠标移到表格左上角出现斜向黑色箭头时点击。这里推荐一个简单方法:点表格内任一单元格,按快捷键Ctrl+Shift+*(星号),就会选中整个表格的当前数据区域,然后按住Shift再按一下空格,把选择范围局限在数据行。
保持选中状态,切换到“开始”选项卡,点击“条件格式”→“新建规则”。选择最后一项“使用公式确定要设置格式的单元格”。在公式框里,我们先写第一条规则,用来标记已付发票:
=$F6="已付"
注意这里的列字母F前必须带有$符号,让它锁定在F列;而行号6则不带$,这样规则会逐行判断当前行的F列值。接下来点“格式”按钮,在“字体”选项卡里把颜色设成浅灰色,再切到“填充”,选一个极淡的灰色底色,如果有需要还可以勾选“删除线”,完成后确定。这条规则的效果是:只要F列是“已付”,整行都变成灰色,像归档了一样,你根本不会把精力浪费在它上面。
别关闭条件格式管理器,继续新建第二条规则。同样的“使用公式”,这次输入:
=$G6>0
这公式
热门跟贴