如何使用arrayformula自动填充日期

use*_*987 3 google-sheets array-formulas

我使用Google表格进行数据输入,每当有人提交表单时,该表格就会自动填充我网站中的数据。用户的数据带有时间戳(列A)导入到我的工作表中。

使用Arrayformula函数,我想要一列来自动填充该月内时间戳的所有日期。例如,如果输入1/5/2016作为时间戳,我希望公式自动填充日期1/1/2016-1/31/2016。

另外,我想在Arrayformula栏中添加其他月份。例如,如果在A列中同时输入1/5/2016和2/3/2016,我希望公式填写从1/1/2016-2/29/2016的日期。

我知道我可以手动输入日期并将它们拖到列中,但是我有很多工作表,使用Arrayformula可以节省很多时间。我在B列中尝试了类似的公式,但是它不会自动填充日期间隔。我在寻找什么可能?

这是我指的可编辑电子表格的副本:https : //docs.google.com/a/flyingfx.com/spreadsheets/d/1Ka3cZfeXlIKfNzXwNCOWV15o74Bqp-4zaj_twC3v1KA/edit?usp=sharing

Rub*_*bén 6

简短答案

单元格A1

1/1/2016
Run Code Online (Sandbox Code Playgroud)

单元格A2

=ArrayFormula(ADD(A1,row(INDIRECT("A1:A"&30))))
Run Code Online (Sandbox Code Playgroud)

说明

在Google表格中,日期是序列号,其中整数是天,小数是小时,分钟,依此类推。一旦考虑到这一点,下一步就是找到一个有用的构造。

  • INDIRECT(reference_string,use_A1_notation)在这种情况下,通过给定高度作为硬编码常数,可以使用来计算所需大小的范围30。您不必担心此构造中的循环引用。

  • ROW(reference) 返回连续数字的数组。

  • A1 是开始日期。

  • ADD(value1,value2)。与使用相同+。由于第一个参数是标量值,第二个参数是值数组,因此它返回与第二个参数大小相同的数组。

  • ArrayFormula(array_formula) 显示由array_formula返回的值

  • 作为A1日期,默认情况下,返回的值也将被格式化为日期。