如何在Google Sheets中无需宏自动生成单列扁平化日期序列
解决Google Sheets自动生成多行起止日期的扁平化连续日期序列问题
你在Google Sheets中有如下结构的表格:
| 开始日期 | 结束日期 |
|---|---|
| 开始日期1 | 结束日期1 |
| 开始日期2 | 结束日期2 |
| 开始日期3 | 结束日期3 |
原公式需要手动为每一行添加SEQUENCE函数,新增行时需修改公式,效率低下:
IFERROR(FLATTEN( SEQUENCE(DATEDIF(D2,E2,"D"), 1, D2, 1), SEQUENCE(DATEDIF(D3,E3,"D"), 1, D3, 1), SEQUENCE(DATEDIF(D4,E4,"D"), 1, D4, 1), SEQUENCE(DATEDIF(D5,E5,"D"), 1, D5, 1) ),"")
尝试直接使用数组参数的SEQUENCE无效,希望实现无需宏、自动适配新增行、生成连续扁平化日期序列的效果。
自动适配的公式
=IFERROR(FLATTEN(MAP(D2:D,E2:E,LAMBDA(start,end,IF(start="",,SEQUENCE(DATEDIF(start,end,"D")+1,1,start,1))))),"")
公式解释
MAP(D2:D,E2:E,LAMBDA(start,end,...)):遍历所有行的起止日期对,自动识别新增行,无需手动修改公式IF(start="",,...):跳过空行,避免生成无效序列SEQUENCE(DATEDIF(start,end,"D")+1,1,start,1):生成当前行起止日期之间的完整日期序列(+1是因为DATEDIF返回的是两个日期的天数差,不包含结束日,加1后才能包含起止所有日期)FLATTEN:将每行的日期序列合并为单列,实现连续的日期序列IFERROR:处理空值或日期格式错误等异常情况,返回空字符串
内容的提问来源于stack exchange,提问作者JOAO RF
相关产品推荐
相关产品推荐

