是否可以将 Arrayformula、Transpose 和 Sequence 结合起来?
Is it possible to combine an Arrayformula, with a Transpose and a Sequence?
有人能帮帮我吗?
我的目标是在每行的开始日期和结束日期之间(含)生成日期的转置数组。
我的源数据有两列,开始日期和结束日期,如下所示:
我使用 sequence+transpose (transpose(sequence(B1-A1+1,1,A1+1)))
为单个列工作。这给出了
因此。我也尝试过使用 different method 来生成日期,但这也只给出了一行,无法扩展为数组。
将任一公式包装在 arrayformula 中都不起作用。我是不是做错了什么,或者根本就没有办法让它与一组开始日期和结束日期一起工作?
供参考,这是我用数组公式编写公式的方式:
使用序列:
arrayformula(transpose(sequence(B1:B2-A1:A2+1,1,A1:A2+1)))
使用date_dif:
arrayformula(transpose(arrayFormula(to_date(row(indirect("A"&A1:A2):indirect("A"&B1:B2))))))
有谁知道这是否可能?
尝试:
=ARRAYFORMULA(TO_DATE(IFERROR(IF(
REGEXREPLACE(TO_TEXT(IFNA(REGEXEXTRACT(REPT(1, DAYS(B3:B, A3:A)),
REPT("(.)", DAYS(B3:B, A3:A)))*
TRANSPOSE(ROW(INDIRECT("A1:A"&MAX(IFERROR(DAYS(B3:B, A3:A))))))-1)), "^-1$", )="",,
REGEXREPLACE(TO_TEXT(IFNA(REGEXEXTRACT(REPT(1, DAYS(B3:B, A3:A)),
REPT("(.)", DAYS(B3:B, A3:A)))*
TRANSPOSE(ROW(INDIRECT("A1:A"&MAX(IFERROR(DAYS(B3:B, A3:A))))))-1)), "^-1$", )+A3:A))))
spreadsheet demo
这将是我的努力,但@player0 一如既往地第一个到达那里:
=ArrayFormula(if(A2:A="","",if(column(C2:Z)-column(C2:C)>B2:B-A2:A,"",A2:A+column(C2:Z)-column(C2:C))))
或:
=ARRAYFORMULA(IF(B3:B="",,IFERROR(IF(COLUMN(A:Z)-1>DAYS(B3:B, A3:A),,A3:A+COLUMN(A:Z)-1))))
有人能帮帮我吗?
我的目标是在每行的开始日期和结束日期之间(含)生成日期的转置数组。
我的源数据有两列,开始日期和结束日期,如下所示:
我使用 sequence+transpose (transpose(sequence(B1-A1+1,1,A1+1)))
为单个列工作。这给出了
因此。我也尝试过使用 different method 来生成日期,但这也只给出了一行,无法扩展为数组。
将任一公式包装在 arrayformula 中都不起作用。我是不是做错了什么,或者根本就没有办法让它与一组开始日期和结束日期一起工作?
供参考,这是我用数组公式编写公式的方式:
使用序列:
arrayformula(transpose(sequence(B1:B2-A1:A2+1,1,A1:A2+1)))
使用date_dif:
arrayformula(transpose(arrayFormula(to_date(row(indirect("A"&A1:A2):indirect("A"&B1:B2))))))
有谁知道这是否可能?
尝试:
=ARRAYFORMULA(TO_DATE(IFERROR(IF(
REGEXREPLACE(TO_TEXT(IFNA(REGEXEXTRACT(REPT(1, DAYS(B3:B, A3:A)),
REPT("(.)", DAYS(B3:B, A3:A)))*
TRANSPOSE(ROW(INDIRECT("A1:A"&MAX(IFERROR(DAYS(B3:B, A3:A))))))-1)), "^-1$", )="",,
REGEXREPLACE(TO_TEXT(IFNA(REGEXEXTRACT(REPT(1, DAYS(B3:B, A3:A)),
REPT("(.)", DAYS(B3:B, A3:A)))*
TRANSPOSE(ROW(INDIRECT("A1:A"&MAX(IFERROR(DAYS(B3:B, A3:A))))))-1)), "^-1$", )+A3:A))))
spreadsheet demo
这将是我的努力,但@player0 一如既往地第一个到达那里:
=ArrayFormula(if(A2:A="","",if(column(C2:Z)-column(C2:C)>B2:B-A2:A,"",A2:A+column(C2:Z)-column(C2:C))))
或:
=ARRAYFORMULA(IF(B3:B="",,IFERROR(IF(COLUMN(A:Z)-1>DAYS(B3:B, A3:A),,A3:A+COLUMN(A:Z)-1))))