如何仅在更新行后将公式应用于 Google Sheet 行?

How can I apply a formula to a Google Sheet row only after a row has been updated?

我正在使用 IFTTT 根据新的 Google 日历事件向 Google Sheet 添加行。添加 Google 日历事件后,IFTTT 会向 Google Sheet 添加新行。 A 列是 Google 日历事件的开始时间,格式为“2021 年 3 月 31 日 08:30PM”。 B 列是 Google 日历事件的描述,我用它来传递格式为 12145551212 的电话号码。

对于 C 列,我想使用一个公式,该公式使用正则表达式来获取 StartTime,减去一天,并且只使用日期,因此它将显示为“2021 年 3 月 30 日。D 列将使用一个使用正则表达式来解析时间的公式,因此它会显示为“08:30PM” 我尝试使用的公式是“=REGEXREPLACE(A2, ” at.$ ",)-1" 和 "=REGEXREPLACE(A2, "^. 在 ",)"

我的问题是,在添加 A 列和 B 列之前,C 列和 D 列必须显示为空。如果公式已经在行中,IFTTT 会在完全清晰的第一行输入新行。如果我只是将公式一直复制到列的下方,它就会以这种方式绕过我的公式。我尝试使用“{{StartTime}}|||{{Description}}|||=REGEXREPLACE(A2, at.[=22=”将实际公式从 IFTTT 传递到 Google Sheets ]$",)-1|||=REGEXREPLACE(A2, "^. at ",)" 但正则表达式公式最终没有输入 Sheets 并且那些单元格被保留空白。

这一切都是为了使用 SMS 应用程序 (ClickSend) 在进入新 Google 日历事件的约会前 24 小时发送约会提醒。 New Calendar Event > IFTTT > Google Sheet > IFTTT > New Calendar Event (trigger) > IFTTT > 在触发日历事件的开始时间发送短信约会提醒。完全删除电子表格会很好。不幸的是,IFTTT Google 日历界面似乎没有办法根据新事件减去 24 小时来创建新日历事件,同时还传递描述字段。

如果有人知道更好的方法来完成这个而不是流利的编码器(我尝试过,但不是很好),我洗耳恭听。

您必须使用 Arryaformula() 来实现。这个公式

=ArrayFormula(iferror(if(len(A2:A), split(A2:A, " at ", 0),)))

当 A 列中有值时,第 2 行中输入的内容将创建两列的输出。您必须根据需要设置输出列的格式(日期和时间格式)。

请注意,您也可以选择 'hide' 第 1 行 headers 后面的公式。

={"Date", "Time" ; ArrayFormula(iferror(if(len(A2:A), split(A2:A, " at ", 0),)))}

希望对您有所帮助?

参考资料