如果日期已过,则自动递增两个单元格中的日期

时间:2017-09-01 12:26:29

标签: javascript google-sheets google-calendar-api

概述:

我不是程序员,但我设法在Gsheets中进行了一些严格的编码来跟踪我的团队项目,因此我们有多变量下拉菜单并与Google日历集成以跟踪项目开发以及所有这些。

为什么我在stackoverflow:

我缺乏从头开始编写代码的知识,我通常会通过互联网上的论坛找到代码的备用部分并将它们联系在一起,它通常效果出奇的好,但这次我找不到多少信息

我需要什么:

我有5个细胞,我们可以如下所示,

日期开始 - 日期结束 - 日期代码* - 数字** - 优先级***

  

*脚本将日期范围添加到gcalendar

     

**& ***该数字是基于优先级单元格上写的字的数组,例如:如果写入优先级每周它们   数字colunm将在左侧的单元格上显示 7 并且它们   去。 (每月= 30和blablabla ......)

所以我想知道是否有人可以提供一个可以使用(至少在我脑海中)的脚本,如下所示:

如果我将优先级设置为每周,它将在数字colunm和它们上显示7,每次“日期结束”过去,它将自动再添加7天到“日期开始”和“日期结束”

通过这种方式,我可以将项目保持在一个循环中,我将能够不断跟踪它们。

提前感谢您提供的任何见解,

ps:我在sql上看过一些关于这个的帖子,但我也不知道如何利用那里提出的建议。

编辑: Spreadsheet picture EDIT2: Spreadsheet with a increment colunm

1 个答案:

答案 0 :(得分:0)

与数据集和描述相关,您可能不需要任何VBA,因为可以通过向指向前一个单元格的引用添加+1来实现增量。例如,假设单元格A1格式化为日期,请输入单元格B1:=A1+1,然后输入单元格C1:=B1+1,依此类推。结果应如下所示

A           B           C      
9/1/2017    9/2/2017    9/3/2017

可以通过简单的逻辑进一步扩展,只有当前一个单元格不为空时才允许显示递增值,例如:=IF(A1,A1+1,"")

在您的情况下,它可能是包含=IF(E1,E1+1,"")的单元格F1。

仅供参考,Date的基础值只是一个整数值(时间表示为小数部分),因此可以应用算术运算。

更通用的解决方案将基于Excel DATE()工作表公式,如下面所示的示例所示(在单元格A1中输入的日期加1 mo):

=DATE(YEAR(A1), MONTH(A1)+1, DAY(A1))

为了实现其他逻辑,您可以考虑使用Excel工作表IF()语句,例如,单元格B1包含:

=A1+IF(C1="week",7,1)

A           B           C
9/1/2017    9/8/2017    week

所以基于IF()条件,如果C1包含单词“week”,则将添加7天,否则为1天。可以使用嵌套的IF()进一步扩展它。

希望这会有所帮助。