Fork me on GitHub

NEW Gantt chart

I'm done with this !



计划= AND(M$5>$D9,L$5<=$E9)

实际= AND(M$5>$G9,L$5<=$H9)

超计划= AND(M$5>IF($E9<=$G9,$G9,$E9+1),L$5<=$H9)

完成= AND($J9>0,M$5>$G9,L$5<=($G9+INT(($H9-$G9)*$J9)))

超完成= AND(M$5>IF($E9<=$G9,$G9,$E9+1),$J9>0,L$5<=($G9+INT(($H9-$G9)*$J9)))



关于日历的公式:

1、定义可以切换周期

一个判断点的公式  

=IF($H$4="周",$D$4+7*($H$3-1)+7*(Q7-1),IF($H$4="日",($D$4-WEEKDAY($D$4,2)+1)+($H$3-1)+Q7-1,IF($H$4="月",EDATE($D$4,($H$3-1)+Q7-1),EDATE
($D$4,3*($H$3-1)+3*(Q7-1)))))

2、隐藏周六 周日的公式设计

二个判断点的公式:

日历起始=

=IF($H$3="周",$D$3+7*($I$3-1),IF($H$3="日",$D$3+($I$3-1),IF($H$3="月",EDATE($D$3,($I$3-1)),EDATE($D$3,3*($I$3-1)))))

                              +7*(K6-1)                   +k6-1                           +k6-1               +3*(k6-1)

修改:固定第一个日期为项目开始日期那一周的周一:$D$4-WEEKDAY($D$4,2)+1

日历结束=

=IF($H$4="日",L5+1,IF($H$4="周",L5+7,IF($H$4="月",EDATE($D$4,M7-1),EDATE($D$4,3*(M7-1)))))

修改:判断第一个周五,跳过周六周日的日期:IF(AND($F$4=TRUE,WEEKDAY(L$5,3)=4),L5+3,L5+1)

提醒:条件格式改变颜色提示,如果项目开始日期为周六或周日

3、修订完成的公式:

日历起点

L$5=IF($H$4="周",$D$4+7*($H$3-1),IF($H$4="日",($D$4-WEEKDAY($D$4,2)+1)+($H$3-1),IF($H$4="月",EDATE($D$4,($H$3-1)),EDATE($D$4,3*($H$3-1)))))

日历结束

M$5=IF($H$4="日",IF(AND($F$4=TRUE,WEEKDAY(L$5,3)=4),L5+3,L5+1),IF($H$4="周",L5+7,IF($H$4="月",EDATE($D$4,M7-1),EDATE($D$4,3*(M7-1)))))

posted @   Cloudhan  阅读(36)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示