Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 是否可以将数组公式、转置和序列结合起来?_Arrays_Google Sheets_Sequence_Google Sheets Formula_Array Formulas - Fatal编程技术网

Arrays 是否可以将数组公式、转置和序列结合起来?

Arrays 是否可以将数组公式、转置和序列结合起来?,arrays,google-sheets,sequence,google-sheets-formula,array-formulas,Arrays,Google Sheets,Sequence,Google Sheets Formula,Array Formulas,有人能帮我吗 我的目标是为每一行生成(包括)开始日期和结束日期之间的转置日期数组 我的源数据有两列,开始日期和结束日期,如下所示: 我使用sequence+transpose(transpose(sequence(B1-A1+1,1,A1+1)))将其用于单个列。给 结果,。我也尝试过使用一种生成日期的方法,但这也产生了一行,不能扩展为数组 将任一公式包装到arrayformula中都不起作用。我是做错了什么,还是根本就没有办法用一系列的开始日期和结束日期来实现这一点 以下是我如何使用arr

有人能帮我吗

我的目标是为每一行生成(包括)开始日期和结束日期之间的转置日期数组

我的源数据有两列,开始日期和结束日期,如下所示:

我使用
sequence+transpose(transpose(sequence(B1-A1+1,1,A1+1)))
将其用于单个列。给

结果,。我也尝试过使用一种生成日期的方法,但这也产生了一行,不能扩展为数组

将任一公式包装到arrayformula中都不起作用。我是做错了什么,还是根本就没有办法用一系列的开始日期和结束日期来实现这一点

以下是我如何使用arrayformula编写公式以供参考:

  • 使用顺序:

    arrayformula(transpose(sequence(B1:B2-A1:A2+1,1,A1:A2+1)))
    
  • 使用date_dif:

    arrayformula(转置(arrayformula)(到目前为止(行(间接的(“A”)和A1:A2):间接的(“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))))



这将是我的努力,但@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))))

这只是一个格式问题,对吗?你能和你想要的输入和输出分享一个演示集吗?(打开共享:)@datanoveler看起来他的问题是:
Sequence
不能与
ArrayFormula
一起工作,因为
Sequence
已经有了自己独特的数组行为。@datanoveler补充道@YannickNierop看起来你的date_dif函数不是按公式工作的。。。先制作一个没有阵列的怎么样?@codecamp我已经将日期添加到演示文件中,它在一行中正常工作。谢谢!我将此标记为答案,因为这是唯一一个不使用额外列引用的答案(因为两个列之间的日期数量可能会非常多,这将产生额外的问题)。顺便说一句,这也会起作用:
=ARRAYFORMULA(IF(B3:B=“”,IFERROR(IF(列(A:ZZZ)-1>天(B3:B,A3:A),,A3:A+列(A:ZZZ)-1)))
如果日期差小于18279days@player0我不明白,如果日期差大于18279天,你会不会用尽列来显示他想要的方式呢?我也不明白为什么你的简短答案不是最好的答案?