【发布时间】:2020-12-29 09:49:32
【问题描述】:
我有一个电子表格:https://docs.google.com/spreadsheets/d/1df2cp4DsJvSeBvhsNjLgIa5x_RO1X7s_APRdFzU6jqQ/edit?usp=sharing
| | C | D |
|----+---------------------------------+----------------|
| 1> | From IFTTT | Extracted Date |
| 2> | 0809 1800 0909 0600 RLK Steiger | 08.09.2020 |
| 3> | 0809 1800 0909 0600 RLK Dvorak | 08.09.2020 |
| 4> | 0909 0600 0909 1800 UNIS Brando | 09.09.2020 |
我通过 android 程序“IFTTT”自动收到短信的地方,我在那里有公式来计算从短信正文中获取的工作时间、日期等。
| | C | D |
|----+---------------------------------+-------------------------------------------|
| 1> | From IFTTT | Extracted Date |
| 2> | 0809 1800 0909 0600 RLK Steiger | =MID(C2,1,2)&"."&MID(C2,3,2)&".2020" |
| 3> | 0809 1800 0909 0600 RLK Dvorak | =MID(C3,1,2)&"."&MID(C3,3,2)&".2020" |
| 4> | 0909 0600 0909 1800 UNIS Brando | //<= New row from IFTTT. Set formula here |
我现在遇到的问题是 android 程序总是将 SMS 放在最后一个空白行。所以我不能在那里预先设置公式,因为那样它就在公式之下,除非手工完成,否则它是无用的。
我已尝试使用 Google Apps 脚本。无论如何如何通过Google表格宏来做到这一点?我尝试了以下方法:
function myFunction() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('D1').activate();
spreadsheet.getCurrentCell().setFormula('=if(isnumber(A1);mid(C1;1;2)&"."&mid(C1;3;2)&".2020";""))
但是,如果使用它,那么它不会使单元格为空,但其中包含公式,而且我必须为每个单元格执行此操作。我的想法是 if(set the formula) else 删除它,但我不知道如何用 Javascript 编写。
理想情况下,如果D:D 列的最后一行包含文本,则使用我那里的公式,但我也不知道该怎么做。
【问题讨论】:
-
我必须为我糟糕的英语水平道歉。不幸的是,根据您的问题和共享的电子表格,我无法理解您当前的问题和目标。我无法理解您共享电子表格中的 3 张表格。而且,我无法理解
My idea was that if(set the formula) else delete it和Ideally it would be that if column D:D last row contains text, then use the formulas I have there。可以问一下他们的详细情况吗? -
嗨,很抱歉回答迟了。当然。第一张纸是我从程序本身获得自动短信的地方。第二个有周末工作时间,晚上工作等的计数。最后一个“SMS-tabulka”我试图解决SMS转到最后一个空白行的问题,只需将数据复制到新的工作表,但不幸的是,这没有用,因为它会将所有公式移动 1。
-
感谢您回复并添加更多信息。现在我注意到已经发布了答案。在这种情况下,我想尊重现有的答案。我认为它会解决您的问题。
-
@Tanaike 如果您愿意,可以随意添加任何其他答案或方法。您发布另一个答案并不是不尊重我的答案。
-
@TheMaster 感谢您的回复。当我找到其他解决方案时,我想提出它。
标签: javascript google-apps-script google-sheets google-sheets-formula