在 IF 语句 Google 表格中嵌入函数
Posted
技术标签:
【中文标题】在 IF 语句 Google 表格中嵌入函数【英文标题】:Embed function inside of IF statement Google sheets 【发布时间】:2022-01-21 17:00:22 【问题描述】:感谢 Michael the Temp,此功能运行良好。但是,如果嵌入到这样的 IF 语句中,它如何工作:=IF(B2>5, TIMESTAMP(), "FALSE")
function TIMESTAMP()
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var addedDateAndTime = Utilities.formatDate(new Date, ss.getSpreadsheetTimeZone(), "dd/MM/yyyy HH:mm:ss");
//Optional if you only want the date: var addedDate = Utilities.formatDate(new Date, ss.getSpreadsheetTimeZone(), "dd/MM/yyyy");
//Optional if you only want the time: var addedTime = Utilities.formatDate(new Date, ss.getSpreadsheetTimeZone(), "hh:mm:ss");
sheet.getRange(1,1).setValue(addedDateAndTime)
...
【问题讨论】:
【参考方案1】:嘿@user17712179 欢迎! 你可以试试这个:
function TIMESTAMP()
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var addedDateAndTime = Utilities.formatDate(new Date, ss.getSpreadsheetTimeZone(), "dd/MM/yyyy HH:mm:ss");
//Optional if you only want the date: var addedDate = Utilities.formatDate(new Date, ss.getSpreadsheetTimeZone(), "dd/MM/yyyy");
//Optional if you only want the time: var addedTime = Utilities.formatDate(new Date, ss.getSpreadsheetTimeZone(), "hh:mm:ss");
if (sheet.getRange("B2").getValue() > 5)
sheet.getRange(1,1).setValue(addedDateAndTime);
else
sheet.getRange(1,1).setValue('FALSE');
;
告诉我!
【讨论】:
一个额外的要求是它是“one and done”,这意味着一旦它插入日期,它就不会再次运行 IF 语句。在我寻求帮助的几个小时后,我意识到了这个要求。谢谢【参考方案2】:根据您的需要,您还可以通过向自定义函数添加参数并将单元格数据传递给您的公式来使 AJ 公式更可重用。
/**
* Convert cell value in timestamp
*
* @param cell input The value to convert.
* @return Timestamp converted.
* @customfunction
*/
function TIMESTAMP(cell)
var ss = SpreadsheetApp.getActiveSpreadsheet();
var addedDateAndTime = Utilities.formatDate(new Date, ss.getSpreadsheetTimeZone(), "dd/MM/yyyy HH:mm:ss");
if (cell > 5)
return addedDateAndTime
else
return 'FALSE'
;
【讨论】:
以上是关于在 IF 语句 Google 表格中嵌入函数的主要内容,如果未能解决你的问题,请参考以下文章
在嵌套的 IFS 语句中保留 Google 表格中的日期格式
带有日期(今天)的 Google 表格(脚本)中的 IF 函数