基于任务起始季度与时长,在Excel中实现类甘特图单元格填充
基于起始季度和时长自动生成类甘特图的Excel公式方案
核心公式(以项目1的一月单元格D2为例)
在D2单元格输入以下公式,然后横向填充至八月列,再纵向填充至所有项目行:
=IF(AND(MATCH(D$1,{"一月","二月","三月","四月","五月","六月","七月","八月"},0)>=MATCH(B2,{"Q1","Q2","Q3","Q4"},0)*3-2,MATCH(D$1,{"一月","二月","三月","四月","五月","六月","七月","八月"},0)<MATCH(B2,{"Q1","Q2","Q3","Q4"},0)*3-2+C2),"x","")
公式拆解
季度转起始月份序号
MATCH(B2,{"Q1","Q2","Q3","Q4"},0)*3-2- 将Q1/Q2/Q3/Q4转换为对应起始月的数字:Q1→1(一月)、Q2→4(四月)、Q3→7(七月)、Q4→10(十月),精准匹配季度起始时间。
当前列月份序号
MATCH(D$1,{"一月","二月","三月","四月","五月","六月","七月","八月"},0)- 锁定行号
$1,横向填充时自动识别当前列的月份标题,返回对应数字序号(一月=1、二月=2…八月=8)。
- 锁定行号
时间范围判断
AND(当前月份序号 >= 起始月份序号, 当前月份序号 < 起始月份序号 + 持续时长)- 判断当前月份是否处于项目执行周期内(从起始月开始,共
C2个月),满足条件则显示x,否则留空。
- 判断当前月份是否处于项目执行周期内(从起始月开始,共
替代简化方案(使用辅助列)
若觉得主公式过长,可新增辅助列起始月份(比如列E),在E2输入:
=MATCH(B2,{"Q1","Q2","Q3","Q4"},0)*3-2
之后月份列的公式可简化为:
=IF(AND(MATCH(D$1,{"一月","二月","三月","四月","五月","六月","七月","八月"},0)>=E2,MATCH(D$1,{"一月","二月","三月","四月","五月","六月","七月","八月"},0)<E2+C2),"x","")
内容的提问来源于stack exchange,提问作者py_newbie
相关产品推荐
相关产品推荐

