Excel 2017收款追踪器:COLLECTION STATUS单元格显示规则设置求助
嘿,我来帮你搞定这个收款追踪器的小问题!根据你的需求,我们只需要在现有逻辑里先判断ACCOUNT STATUS是否为PAID,如果是就直接返回---,否则再执行原来的逾期判断逻辑就行。下面分两种常见情况给你解决方案:
解决方案:让PAID状态时COLLECTION STATUS显示---
方法1:用Excel单元格公式(最常用)
假设你的ACCOUNT STATUS在单元格A2,COLLECTION STATUS在单元格B2,原来的逾期判断公式可能类似=IF(逾期条件, "OVERDUE", "NOT OVERDUE")。现在把它改成嵌套IF公式:
=IF(A2="PAID", "---", IF(你的逾期判断条件, "OVERDUE", "NOT OVERDUE"))
关键说明:
- 把
A2替换成你实际的ACCOUNT STATUS单元格地址 - 把
你的逾期判断条件替换成你原来用来判断是否逾期的逻辑(比如C2<TODAY(),假设C2是到期日单元格) - 这个公式会优先检查账户是否已付款,是的话直接显示
---,否则正常判断逾期状态
方法2:用VBA代码(适合需要自动触发更新的场景)
如果你之前用的是VBA代码来自动更新COLLECTION STATUS,可以修改代码逻辑,先判断ACCOUNT STATUS的值:
Private Sub Worksheet_Change(ByVal Target As Range) ' 替换成你实际的单元格地址 Dim accountStatusCell As Range Dim collectionStatusCell As Range Dim dueDateCell As Range ' 如果需要用到到期日判断 Set accountStatusCell = Me.Range("A2") ' ACCOUNT STATUS单元格 Set collectionStatusCell = Me.Range("B2") ' COLLECTION STATUS单元格 Set dueDateCell = Me.Range("C2") ' 到期日单元格(根据你的实际情况调整) ' 只在ACCOUNT STATUS单元格变化时触发更新 If Not Intersect(Target, accountStatusCell) Is Nothing Then If UCase(accountStatusCell.Value) = "PAID" Then ' 用UCase避免大小写问题 collectionStatusCell.Value = "---" Else ' 这里放你原来的逾期判断逻辑,示例如下: If dueDateCell.Value < Date Then collectionStatusCell.Value = "OVERDUE" Else collectionStatusCell.Value = "NOT OVERDUE" End If End If End If End Sub
关键说明:
- 替换代码里的单元格地址为你实际使用的单元格
- 用
UCase()可以避免因为输入大小写不一致导致的判断错误(比如输入paid也能识别) - 把示例里的逾期判断逻辑替换成你原来的代码逻辑就行
内容的提问来源于stack exchange,提问作者CCSS
相关产品推荐
相关产品推荐

