在谷歌表中,我希望我的自定义功能使用其中一个内置函数.具体来说,此函数将字符串作为参数,梳理另一个工作表以找到该值,然后返回指向该单元格地址的链接.
function href(findMe) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var hrefSheet = ss.getSheetByName("otherSheet");
hrefSheet.activate();
var rows = hrefSheet.getDataRange();
var numRows = rows.getNumRows();
var finds = rows.getValues()[1][0];
var hrefCellRow;
for(var i=0; i<numRows; i++){
if(finds[i][0] == findMe){
hrefCellRow = i+1;
break;
}
}
return address(hrefCellRow, 1); //address() is a function that is built in to sheets
}
Run Code Online (Sandbox Code Playgroud)
因此,如果我在"otherSheet"表单中有一个值"XYZ",那么当我输入时
=href("XYZ")
Run Code Online (Sandbox Code Playgroud)
我希望它尝试找到值XYZ并将地址返回到活动单元格.额外的荣誉如果它返回一个实际的链接,当点击,进入该单元格.
有很多类似的问题,但没有一个解决这个问题.使用javascript我很容易找到ex的毫秒数差异b/w 2日期:
var mil = Math.floor(new Date("1/1/2012") - new Date("1/7/2012"))
Run Code Online (Sandbox Code Playgroud)
mil 被安排了 518400000
我会在下面做几周
var weeks = mil / (1000*7*24*60*60);
Run Code Online (Sandbox Code Playgroud)
在上面的例子中它恰好适合1一周.对于其他可能的输入,我想得到输出为ex:
n Weeks, y days , z hours
Run Code Online (Sandbox Code Playgroud)
所以我做mil % (1000*7*24*3600)了模数,并从余数计算天数.但令人惊讶的是,这是我从控制台得到的答案,
1 weeks , 6 days似乎之前计算的一周也是再次占了几天.