我喜欢在Google Docs Spreadsheets中编写自己的公式。但通常我想要做的是非常类似于已经存在的功能。例如,我找不到将日期(2010年8月31日)转换为星期(星期二)词汇日的功能。我想写:
=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 :(得分:1)
我在Google help问了同样的问题,但没有得到解决方案。根据用户亚哈说:
我明白需要。我说了 同样在GAS帮助论坛1中也是如此 早期的一个当GAS可用时 但是GAS团队的反应是 不是很有希望...... :(实质上 我们需要一个包含的GAS类 电子表格功能允许 使用它们。
请注意,在一般电子表格中 功能已经几乎可以 用作函数式编程 语言而不需要脚本 他们因为高级功能 像ArrayFormula,FILTER,SORT, 独特等等。不幸的是,它不是 可以创建,例如代换 宏可以让我们快速 重复使用公式(在伪宏中 格式):
名称:INVERSE描述:反向a columnar array语法:#INVERSE(array )调用:#INVERSE(#1)执行: = ARRAYFORMULA(SORT(#1; ROW(#1); FALSE))
答案 1 :(得分:0)
在自定义应用中,您可以通过以下方式使用内置的Google电子表格公式:
假设您想在单元格A1上使用=WEEKDAY()
函数。
然后,在自定义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 + enter或转到View-> Logs in script editor本身来查看日志。