Google Sheets:用ARRAYFORMULA生成工作日列表并关联人员信息
可行的Google表格ARRAYFORMULA解决方案
以下是满足需求的公式,适配表单自动填充的动态数据,可直接粘贴到目标空白列的第一行(比如F1):
=SORT( ARRAYFORMULA( SPLIT( FLATTEN( IF(ROW(A:A)=1, "工作日|姓名|详情|录入日期", IF(OR(B:B="", C:B="", B:B>C:B),, WORKDAY.INTL(B:B, SEQUENCE(DATEDIF(B:B, C:B, "D")+1, 1, 0), "0000000")&"|"&D:D&"|"&E:E&"|"&A:A ) ) ), "|" ) ), 4, TRUE )
公式说明
- 列对应规则:默认匹配A=录入日期(Entry Date)、B=开始日期(Start)、C=结束日期(End)、D=姓名(Name)、E=详情(Details),若你的列位置不同,自行替换公式里的列标即可。
- 工作日生成:
WORKDAY.INTL函数生成Start到End之间的所有工作日,参数"0000000"表示周六周日休息;如需自定义休息日(比如仅周日休息),可修改为"0000001",具体规则参考Google表格官方参数定义。 - 动态适配:
ARRAYFORMULA自动处理整列数据,表单新增行时会自动扩展计算。 - 错误过滤:跳过空日期、开始日期晚于结束日期的无效行,避免报错。
- 排序规则:
SORT函数按第4列(录入日期)升序排列,若要降序,把最后一个参数TRUE改为FALSE即可。
内容的提问来源于stack exchange,提问作者Codedabbler
相关产品推荐
相关产品推荐

