亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當在最后一行從 IFTTT 收到數據時,如何用公式自動填充最后一行?

當在最后一行從 IFTTT 收到數據時,如何用公式自動填充最后一行?

慕容森 2023-02-24 10:43:18
我有一個電子表格: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     |在我自動獲得 SMS trought android 程序“IFTTT”的地方,我在那里有公式來計算從 SMS 正文中獲取的工作時間、日期等。|    | 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 腳本。無論如何如何通過谷歌表格宏來做到這一點?我試過以下方法: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 delete 它,但我不知道如何用 Javascript 編寫它。理想情況下,如果D:D最后一行的列包含文本,則使用我在那里的公式,但我也不知道該怎么做。
查看完整描述

2 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

在通過 sheets api 或 Google 表單處理自動插入的數據時,這是一個非常常見的問題。最簡單的解決方案是將所有公式轉換為arrayformulas。例如,您在 D2 中的公式


=MID(C2,1,2)&"."&MID(C2,3,2)&".2020

可以修改為


在 D1 中:


=ARRAYFORMULA({"Extracted Date";MID(C2:INDEX(C:C,COUNTA(C:C)),1,2)&"."&MID(C2:INDEX(C:C,COUNTA(C:C)),3,2)&".2020"})

或使用正則表達式:


=ARRAYFORMULA({"Extracted Date";REGEXREPLACE(C2:INDEX(C:C,COUNTA(C:C)),"(\d{2})(\d{2}).*","$1.$2.2020")})

然后表格變成:


|    | C                               | D                                                                                                                   |

|----+---------------------------------+---------------------------------------------------------------------------------------------------------------------|

| 1> | From IFTTT                      | =ARRAYFORMULA({"Extracted Date";MID(C2:INDEX(C:C,COUNTA(C:C)),1,2)&"."&MID(C2:INDEX(C:C,COUNTA(C:C)),3,2)&".2020"}) |

| 2> | 0809 1800 0909 0600 RLK Steiger |                                                                                                                     |

| 3> | 0809 1800 0909 0600 RLK Dvorak  |                                                                                                                     |

| 4> | 0909 0600 0909 1800 UNIS Brando |                                                                                                                     |

這里 D:D 的其余部分是自動自動填充的。

  • 我們在標題行上使用數組文字:{"Extracted Date";Formula for rest of the column}

  • 每當出現新行時,INDEX/COUNTA()自動計算最后一行并自動將公式填充到最后一行。有關 的更深入解釋,請參見此處INDEX/COUNTA


查看完整回答
反對 回復 2023-02-24
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

解決方案:

  • 該解決方案使用谷歌應用腳本. 這不需要數組公式,而是使用自動填充。為了使解決方案起作用,您不應使用數組公式,而應使用普通公式。

  • 獲取活動范圍,它將代表當前插入的范圍 onChange 或 onFormSubmit。

  • offset右側的范圍以獲取計算列并將范圍擴展到右側的所有計算列。

  • 用于range.autoFillToNeighbor填充范圍的所有計算區域。

示例腳本:

/**

 * @param {GoogleAppsScript.Events.SheetsOnChange|GoogleAppsScript.Events.SheetsOnFormSubmit} e

 */

const onFormSubmitORonChange = e => {

  const rg = SpreadsheetApp.getActiveRange(),

    wd = rg.getWidth(),

    sh = rg.getSheet(),

    lc = sh.getLastColumn(),

    numRows = Math.max(

      rg

        .offset(0, wd, 1, 1)

        .getNextDataCell(SpreadsheetApp.Direction.UP)

        .getRow() - 1,

      1

    ),

    numCols = lc - wd;

  sh.getRange(2, wd + 1, numRows, numCols).autoFillToNeighbor(

    SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES

  );

};


查看完整回答
反對 回復 2023-02-24
  • 2 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號