Google Sheets中单元格任务动态重复及全组合生成的公式需求
Google Sheets 动态生成日期-员工-任务全组合方案
核心需求
基于日期、员工、任务三类动态数据,生成三者所有可能的单行组合,其中任务列需按员工数量重复循环,确保每个日期下的每位员工都对应所有任务。
任务列公式(红色单元格适用)
假设员工数据范围为B2:B,任务数据范围为C2:C,在任务列起始单元格输入:
=INDEX(TOCOL(C2:C, TRUE), MOD(SEQUENCE(COUNTA(TOCOL(B2:B, TRUE))*COUNTA(TOCOL(C2:C, TRUE)))-1, COUNTA(TOCOL(C2:C, TRUE)))+1)
公式解析
TOCOL(..., TRUE):自动过滤空行,适配员工/任务数量的动态变动SEQUENCE:生成对应总行数的序列(员工数×任务数)MOD:实现任务列表的循环重复,重复次数等于员工数量
全组合一键生成公式
如果需要直接生成包含日期、员工、任务三列的完整组合,无需单独处理各列,可使用更高效的公式:
=LET( dates, TOCOL(A2:A, TRUE), emps, TOCOL(B2:B, TRUE), tasks, TOCOL(C2:C, TRUE), d_cnt, COUNTA(dates), e_cnt, COUNTA(emps), t_cnt, COUNTA(tasks), MAKEARRAY( d_cnt*e_cnt*t_cnt, 3, LAMBDA(r,c, SWITCH(c, 1, INDEX(dates, CEILING(r/(e_cnt*t_cnt))), 2, INDEX(emps, MOD(CEILING(r/t_cnt)-1, e_cnt)+1), 3, INDEX(tasks, MOD(r-1, t_cnt)+1) ) ) ) )
该公式会自动生成所有组合,完全适配三类数据的动态变化,无需手动调整范围。
内容的提问来源于stack exchange,提问作者Stefan Meier
相关产品推荐
相关产品推荐

