一、适用工作场景(工程 / 项目管理高频痛点)
做项目计划、船舶建造、工程进度管控的朋友,日常一定会遇到这样的麻烦:我们手里有一份节点计划清单,如下图所示:记录了多个项目编号 + 对应施工节点 + 计划完成日期

如果想要直观查看「当月每一天,分别有哪些项目到了关键节点」,传统做法只能手工建月历、逐行核对日期、手动填写节点名称,项目一多极易漏填、错填,计划变更后还要全部重新修改,效率极低。

今天这套方案,核心目的就是:自动生成当月完整月历,把所有项目的计划里程碑自动匹配到对应日历日期上,形成一张可视化月度节点总看板,一眼看清当月每日各项目关键工作,方便统筹管控所有项目进度。
二、表格整体规划与实现思路
1. 两张功能分区

① 左侧:项目节点数据源(A:C 列)
A 列:项目编号(如 H001/H002/H003/H004) B 列:项目里程碑节点(合同签约、开工、铺龙骨、下水、交付) C 列:该节点对应的计划完成日期
只需要维护这张明细表,后续月历看板全部自动联动更新。
② 右侧:月度日历看板(E:I 列)
E 列:自动生成当月 1 日至当月月底完整连续日期(月历日期轴,大月 31 天 / 小月 30 天 / 2 月 28-29 天自动适配) F1:I1:横向表头,对应每一个项目编号 F2:I 区域:空白单元格,通过公式自动匹配:当天该项目是否存在计划节点,有则自动显示节点名称,无则空白
2. 完整实现步骤
用优化版 SEQUENCE+EOMONTH函数一键生成当月精准完整月历,无多余空白行;在看板首个单元格写入 LOOKUP 多条件匹配公式; 公式向右、向下批量填充整张月历矩阵; 后续只需修改左侧数据源的计划时间,右侧月度日历自动同步更新。
三、分段详解核心函数公式
公式一:E2 单元格
=SEQUENCE(DAY(EOMONTH(TODAY(),0)),1,TODAY()-DAY(TODAY())+1,1)
函数拆解(自动适配当月天数)
TODAY():读取系统当前日期,自动识别当前月份; TODAY()-DAY(TODAY())+1:计算出当月 1 号,作为月历起始日期; EOMONTH(TODAY(),0):计算出当月最后一天的日期,0 代表当前月份; DAY(EOMONTH(TODAY(),0)):提取当月最后一天的天数,自动获取当月总天数(大月 31、小月 30、2 月 28/29 天); SEQUENCE(当月总天数,1,起始日期,1):生成和当月天数完全匹配的连续日期序列,向下填充当月全部日期,无多余空白行。
补充说明
适配 Excel 365/2021 及以上版本; 相比原固定 31 天的公式,优化版完全贴合当月实际天数,不会出现小月 / 2 月多余的空白行,月历看板更整洁精准; 每月打开表格自动刷新当月日期,无需手动修改公式。
公式二:F2 单元格,多条件匹配当日项目节点(核心匹配公式)
=IFERROR(LOOKUP(1,0/(($A$2:$A$21=F$1)*($C$2:$C$21=$E2)),$B$2:$B$21),"")
分步拆解逻辑
整体作用:同时满足「项目编号一致」+「日期完全匹配」两个条件,自动提取对应节点名称。
$A$2:$A$21=F$1锁定左侧数据源的项目编号区域,判断横向表头的项目(F1 的 H001)是否和数据源 A 列项目一致,匹配成功返回 1,不匹配返回 0; $C$2:$C$21=$E2锁定数据源计划日期列,判断 E 列当天日历日期,是否等于该项目节点的计划完成日期,匹配成功返回 1,不匹配返回 0; *代表数组「并且」逻辑只有项目对上 + 日期对上两个条件同时成立,相乘结果才等于 1,其余组合全部为 0; 0/(条件相乘数组)符合条件时 0÷1=0,不符合条件时0÷0生成错误值,数组变为「0、#DIV/0!」混合序列;LOOKUP(1,0/数组,$B$2:$B$21)LOOKUP 函数会自动忽略所有错误值,抓取数组中 0 对应的 B 列节点名称; IFERROR(..., "")当天该项目无任何计划节点时,屏蔽报错,返回空白单元格,保证月历看板干净清爽。
操作方法
输入 F2 公式后,向右拖动填充到所有项目列(I 列),再向下拖动填充整月所有日期行,整张月度项目日历瞬间生成完成。
四、实例效果对照
所有节点无需手动录入,数据源更新,月历看板实时同步,每月只需刷新一次,即可生成全新月度计划日历。
五、通用拓展与常见问题
1. 适用行业拓展
这套月度日历生成方案不限船舶建造,所有多项目管理场景都能复用:建筑多楼栋进度、制造业订单排产、政企多项目里程碑、设备检修计划等。只需替换 A-C 列数据源内容,横向表头同步修改项目名称,公式无需改动直接使用。
2. 高频问题解答
1)低版本 Excel 没有 SEQUENCE 函数怎么办?可手动输入当月 1 号,鼠标下拉填充整月日期,LOOKUP 匹配公式全 Excel 版本通用;
2)项目明细行数超出 21 行如何修改?将公式内 $A$2:$A$21、$B$2:$B$21、$C$2:$C$21 的末尾行号 21,替换为你实际数据源最后一行,锁定美元符号不可删除;
六、方案总结
以往手工制作月度项目日历,核对、填写、修改至少半小时;使用这两段公式,维护好一份项目节点明细表,一键自动生成当月全项目可视化月历看板,每日各项目关键节点一目了然,大幅降低多项目统筹管理的核对工作量,是工程、项目管理人员高效制表实用技巧。
夜雨聆风