【发布时间】:2018-06-20 18:51:00
【问题描述】:
我有一个开始日期和一个结束日期,DATEDIF 很容易让我知道其中的月数。我想在这个范围内写出每个月,例如对于日期范围:
Mar 1, 2016 - Jul 31, 2018
...我想遍历该范围内的月数,并为该范围内的每个月返回一行,从开始日期开始:
Mar 2016
Apr 2016
May 2016
(the rest of 'em)
Apr 2018
May 2018
Jun 2018
这可能更能说明我所追求的。此表显示了我的来源,即一组唯一订阅,每个订阅都有一个 ID、一个费率以及开始和结束日期:
我想自动生成的表将遍历每个唯一的订阅 ID 行,然后在该订阅 ID 的开始结束日期为每个月的订阅付款提供一行:
我只想根据第一张表中的内容制作第二张表,以节省时间。
我知道我必须像其他人一样花时间弄清楚如何去做,但如果您知道这是否可能仅使用 Google 表格的标准功能和查询,我会充满一种新的希望感。
提前感谢任何患者的指点。
【问题讨论】:
-
如果你懂js,最好用apps脚本写个脚本。这看起来更像是 unpivot。
-
如果这最终是适合这项工作的工具,那么是的......我只是希望尽可能地利用工作表功能。我会搜索那个不重要的话题。
-
这应该是可行的。在您稍后可以隐藏的列中,在顶部单元格(在我的情况下为 A2)中,将一个月中最早的第一天放在您的数据中(或者您可以用分钟计算它,我想)。紧接着放置,然后根据需要向下拖动 =if(month(A2)=12,date(year(A2)+1,1,1),date(year(A2),month(A2)+1,1 ))。然后我从productforums.google.com/forum/#!msg/docs/4FykKHzbXb8/… 改编如下(C3 和 D3)是我的开始和结束日期: =query(A2:A,"select A where (A>=date '"&TEXT(C3,"yyyy-MM-dd" )&"' 和 A
-
这给了我我想要的确切日期列表。我认为它可能可以扩展来满足您的需要。
-
您可以使用 =arrayformula(text(query(A2:A,"Select * where (A>=date '"&TEXT(C3,"yyyy-MM-dd" )&"' 和 A
标签: google-sheets