先明确任务与结果
对本例日历,W01与周末开单的W02都用了1个工作日;同日关闭的W03为0,W04为2。W05没有关闭日期,只能报告截至2026-10-29的在途年龄2天,不能写成0天完成,也不能放进已关闭工单的达标率分母。
先写清业务规则,公式才有要回答的问题
工作日不是两个日期直接相减,也不是从任何计数结果里减1。这里先固定一个公司内部的教学规则:周一到周五工作,周六、周日不工作;2026-10-26额外休息。这个假日是虚构设定,不是任何国家或地区的法定假日判断。
本例只比较日期,忽略具体小时和分钟。开单日不计,之后每个符合日历的日期计1,关闭日也遵循同一规则;同日开单关闭为0。教学目标为已关闭记录历时不超过1个工作日。实际团队若采用开单日计入、下个班次开始或小时阈值,必须先重写规则和参考答案。
Microsoft的NETWORKDAYS.INTL文档说明函数可配置周末与假日范围;其中0000011表示周六、周日不工作。这是函数能力,公司的起止日政策仍需另行确认。
三种信息分别保存
日期含义
opened_date和closed_date是同一公司日历下的日期,不是尚待换时区的时间戳。
工作日历
周末掩码0000011;额外假日只有2026-10-26。
报表规则
起日不计;终日按日历计;已关闭≤1天达标;未关闭单独列在途。
把5条原始工单连同规则交给AI
以下输入、提示词、错误稿和参考答案都是KitNelo编辑设计的教学材料,没有真实客户数据,也不是某个模型的亲测结果。日期特意覆盖周五、周末、同日关闭和未关闭四种边界。
先保留ticket_id,不让AI为了得到完整结果填补W05的关闭日期。若原数据存在03/11/2026之类约定不明的值,先按日期含义与格式核查方法确认,再进入工作日计算;能解析成日期不代表业务含义已经确认。
任务:根据以下完整CSV生成逐条核对表,不改原始日期。
日历:周一至周五为工作日,周六周日不工作,2026-10-26是本教学案例额外假日。
计数:开单日不计,开单日之后到关闭日之间的工作日计入,关闭日若为工作日则计入;同日关闭为0。
已关闭记录≤1个工作日为within_target,>1为over_target。
空关闭日期保持空,closed_result写open;在单独字段计算截至2026-10-29的在途工作日,不把它当已关闭记录。
输出ticket_id、closed_workdays、closed_result、open_age_workdays,并列出每条实际计入的日期。保留5条,不猜测假日或补全日期。若关闭早于开单,标REVIEW,不输出正常历时。
先解释区间与日历,再给答案,不使用今天的动态日期。
SOURCE CSV:
ticket_id,opened_date,closed_date
W01,2026-10-23,2026-10-27
W02,2026-10-24,2026-10-27
W03,2026-10-27,2026-10-27
W04,2026-10-27,2026-10-29
W05,2026-10-27,不先看总数,先圈出每条实际计入的日期
W01从周五10月23日开单,23日因起日规则排除;24、25日是周末,26日是本例假日,只有27日计入。W02在24日周六开单,起日原本就不工作,同样只计27日。因此这两条应得到相同结果。
W03开关日期都是27日,区间里没有开单日之后的日期,结果为0。W04在27日之后计入28日和29日,共2天。W05没有终结事件,可以对同一截止日期算在途年龄,但它仍然是open。
| 记录 | 计入日期 | 排除或未决 | 结果 |
|---|---|---|---|
| W01 | 10-27 | 10-23起日;24–25周末;26假日 | 已关闭1天,达标 |
| W02 | 10-27 | 10-24起日且周末;25周末;26假日 | 已关闭1天,达标 |
| W03 | 无 | 10-27是起日,同时也是终日 | 已关闭0天,达标 |
| W04 | 10-28、10-29 | 10-27起日 | 已关闭2天,超目标 |
| W05 | 截至10-29计10-28、10-29 | 关闭日期未提供 | 在途2天,未关闭 |
参考交付:四条关闭记录与一条在途记录分开
下表的空字段表示“不适用”,不是漏写的0。W05的closed_workdays为空,其他已关闭记录的open_age_workdays为空。原始日期应保存在源表,交付表用同一ticket_id对应。
按本例规则,已关闭4条,达标3条,达标比例为3÷4=75%。不能因为W05在途2天,就把它当第5条已关闭超时记录,把同一个报表改成3÷5=60%;如需评估所有未完成任务,那是另一个已定义口径的指标。
ticket_id,closed_workdays,closed_result,open_age_workdays
W01,1,within_target,
W02,1,within_target,
W03,0,within_target,
W04,2,over_target,
W05,,open,2一律减1为什么错?只扣除起日实际贡献的工作日
把源CSV放进A1:C6,A列为ticket_id,B列开单日期,C列关闭日期。将H2设为真实日期值2026-10-26;B、C的非空值也必须是真实日期值,不能仅把文本外观格式化。D2放下式并填到D6。这里固定单个假日,真实项目扩展假日清单时也要扩展固定范围。
此式先保留空关闭日期,再拦下关闭早于开单的记录。对其余记录,先算包括起日的工作日数,再扣除起日当天在同一日历中的贡献:工作日起日扣1,非工作日起日扣0。这样同日关闭自然为0,周末开单也不会多扣。
若使用Google Sheets,官方函数说明同样要求日期参数有正确含义,并提醒直接在公式中写10/10/2000会被当作连续除法。这里使用日期单元格;应用地区设置不同,参数分隔符可能需要调整。先解决输入类型和语法,再核对业务答案。
=IF(C2="","",IF(C2<B2,"REVIEW",NETWORKDAYS.INTL(B2,C2,"0000011",$H$2:$H$2)-NETWORKDAYS.INTL(B2,B2,"0000011",$H$2:$H$2)))W02揭穿“包含首尾后统一减1”的错误
=NETWORKDAYS.INTL(B3,C3,"0000011",$H$2:$H$2)-1 W02:区间内只有10-27是工作日,1-1=0。
1 - NETWORKDAYS.INTL(B3,B3,"0000011",$H$2:$H$2) W02:10-24是周六,起日贡献0,因此1-0=1。
修正AI结论时,同时修正历时和分母
一个看似完整的错误稿可能写:“W02当天完成,W05耗时0,5条里4条达标,达标率80%。”这里同时犯了三种不同错误:周末开单被多减1;空关闭日期被当成完成;分母把在途和已关闭混在一起。改一条公式不能自动修好最后一句话。
向AI指出具体差异:W02应1天,W05只在open_age_workdays写2,已关闭集合必须恰好为W01–W04。然后要求重新给出逐条日期和3÷4的算式。检查新稿是否仍将“1个工作日”改成“24小时”,或把教学假日写成真实公众假日。
在真实报表里,保留日历版本、起止日规则、截止日、公式版本和未决记录。若源数据提供小时级时间戳,先确认时区、上班时段、暂停规则,再决定是否还能用日期粒度;本文的工作日计数不能替代小时级SLA。
交付前跑一次能推翻错误答案的检查
对每个边界单独保留预期和实际结果。以下是建议执行的验收计划,不代表本页面已运行Excel、Sheets或你的AI账号。先在副本中运行,再把失败记录交给报表负责人。
沿用AI公式的逐行与变更核验方法,每次只改一项,回到原样再做下一项。成功显示一个数字不等于规则正确,重复问同一个模型也不替代这份独立日历账本。
本例交付条件
- 5个ticket_id均保留;4条已关闭,1条open,空日期未被补成今天。
- 已关闭D2:D5依次为1、1、0、2;W05的关闭历时保持空。
- W05在途年龄的截止日明确为2026-10-29,数值2不被写成关闭结果。
- 达标比例只用3/4=75%,并标明≤1工作日的教学目标。
- 临时把W04关闭日改到开单日前,应出现REVIEW;恢复原值后再交付。
- 去掉假日清单后,W01/W02都应多计10-26一天;若没有变化,检查假日引用或输入类型。
常见问题
在途2天为什么不直接判断为关闭超时?
可以另设在途预警规则并报告,但它还没有关闭事件。不要把在途年龄混作最终关闭历时,或悄悄改变已关闭工单达标率的分母。
周末收到工单,要把开单日期改成周一吗?
先保留真实开单日期。团队可以约定下一个工作日开始计时,但必须明确那一天计不计入;本例周一10月26日还是额外假日,改日期并不能代替规则。


