2010-09-10 156 views
6

我喜歡在Google文檔電子表格中編寫自己的公式。但通常我想要做的是非常類似於已經存在的功能。舉例來說,我找不到一個函數將日期(2010年8月31日)轉換爲一週的星期幾(星期二)。我想寫:在Google文檔/電子表格中使用自定義公式中的現有電子表格公式

=LexWeekDay('31-Aug-2010') 
'Tuesday' 

顯然,我可以寫使用核心JavaScript這一切邏輯的,但已經存在所謂WEEKDAY()takes a date and converts into into a number representing the day of the week[0 => Sunday, 1=> Monday, etc]一個正常電子表格功能。

如何從我的自定義腳本訪問該表單已經定義的此函數(或通常任何函數)?

+0

[有沒有方法可以評估存儲在單元格中的公式?](http://stackoverflow.com/questions/16303680/is-there-a-way-to-evaluate-a-式,也就是說,被存儲的功能於一個細胞) – 2016-11-22 17:04:33

回答

1

我在Google help問了同樣的問題,但沒有得到解決方案。根據用戶Ahab:

我明白需要。我講的GAS幫助論壇同 1非常 一個早期的時候GAS面世 但是從氣體隊反應 不是非常有前途的... :(本質 我們需要包含 氣體類電子表格功能並使用它們允許 。

需要注意的是,一般的電子表格 功能已經幾乎可以作爲一個函數式編程 語言,而不需要因爲高層次的功能 像ARRAYFORMULA,過濾器腳本 他們的 ,SORT, UNIQUE等。不幸的是,它不是 可能創建例如。替代 宏觀的,使我們能夠快速 再利用公式等(僞宏觀 格式):

名稱:逆描述:逆A 柱狀陣列語法:#INVERSE(陣列 )電話:#INVERSE (#1)執行: = ARRAYFORMULA(SORT(#1,ROW(#1),FALSE))

0

在您的自定義appscript,您可以使用谷歌電子表格的內置公式是這樣的:

假設您要使用單元格A1上的函數。

然後,在得到您的自定義功能appscript您的活動的電子表格如下:

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("YOUR_SHEET_NAME"); 

現在,這樣設置公式:

sheet.getRange("A1").setValue("=WEEKDAY()"); 

另外,如果你想轉換0,1等週日,週一......然後定義數組是這樣的:

var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']; 

然後用:

var dayIndex = sheet.getRange("A1").getValue(); 
Logger.log(days[dayIndex]); 

您可以使用CTRL看到日誌+輸入或轉到查看 - >腳本編輯器本身的日誌。

相關問題