Excel考勤表需求:重复周五列后延续日期星期格式求助
解决方案
日期列(H7及后续单元格)
保留H7的原有公式不变:
=DATE(E5,@INDEX({1,2,3,4,5,6,7,8,9,10,11,12},MATCH(D5,monthNames,0)),1)
从I7单元格开始,使用以下公式并向右填充至第36列:
=LET( start_date, H7, end_date, EOMONTH(start_date,0), all_dates, SEQUENCE(end_date - start_date + 1,1,start_date), expanded_dates, TOCOL(IF(WEEKDAY(all_dates,1)=5,HSTACK(all_dates,all_dates),all_dates),2), IF(start_date="","",INDEX(expanded_dates,COLUMN()-COLUMN(H7)+1)) )
公式说明:
- 先生成当月完整日期序列
all_dates - 对序列中每个周五(
WEEKDAY(all_dates,1)=5),将其重复一次生成两列,其他日期保留单列 - 把处理后的二维数组转为一维序列
expanded_dates,再根据当前列的偏移量取对应日期,自动实现周五重复+后续日期延续的需求
星期列(H6及后续单元格)
保留H6的原有公式不变:
=@IF(H7="","",INDEX({"Su";"M";"Tu";"W";"Th";"F";"Sa"},WEEKDAY(H7,1)))
从I6单元格开始,使用以下公式并向右填充:
=@IF(I7="","",INDEX({"Su";"M";"Tu";"W";"Th";"F";"Sa"},WEEKDAY(I7,1)))
公式说明:直接引用对应日期单元格的星期值,格式与H6保持一致
注意事项
- 需使用支持
LET/SEQUENCE/HSTACK/TOCOL函数的Excel版本(如Excel 365、Excel 2021) - 确保
monthNames名称已正确定义,其值需与D5单元格的月份名称完全匹配(如中文环境下为{"一月","二月",...,"十二月"})
内容的提问来源于stack exchange,提问作者Atif
相关产品推荐
相关产品推荐

