我正在构建一个小脚本,在其上,我需要"阅读"一系列细胞中的最大值。细胞看起来像这样:" a-10"," a-3"," a-4"等等,但它们的实际值分别为10,3和4。我无法删除" a - "来自细胞。
到目前为止我所拥有的是:
代码:
function getLargestValue() {
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheets=['Sheet1','Sheet2','Sheet3'];
var values=[];
for(var i=0;i<sheets.length;i++)
{
var sht=ss.getSheetByName(sheets[i]);
var rng=sht.getDataRange();
var rngA=rng.getValues();
for(var j=1;j<rngA.length;j++)
{
rngA[j][0] = substring(2, rngA[j][0]);
values.push(rngA[j][0]);
}
}
values.sort(function(a, b) {return a - b;});
var max = values[values.length-1];
SpreadsheetApp.getUi().alert('The max is ' + max); //Just checking to be sure it works
return max;
// must show the largest value on "Max" sheet
}
&#13;
链接到电子表格:
https://docs.google.com/spreadsheets/d/16WrsztYlOV7qDOMBqGYU8az26Bw9NoqdQ4Imk_hZM90/edit?usp=sharing
我仍然需要修剪字符串并在不同的工作表中插入最大值。我怎么能这样做?
谢谢。
答案 0 :(得分:0)
在你的排序功能之前,我会尝试像
这样的东西// Use a regex to get any numbers from the cell value and make
// a new array
var numbers = values.map(function(el) { return /[0-9]+/.exec(el) }
然后在返回之前结束
// Put the 'max' value in 'MAX' sheet in cell 'A1'
ss.getSheetByName('MAX').getRange("A1").setValue(max)
旁注:您还可以获得这样的最大数量:
var max = Math.max(1,2,3,4,5)
OR
var max = Math.max.apply(null,ARRAY_OF_NUMBERS)
答案 1 :(得分:0)
response_update = client.update_item(
TableName = 'tableName',
Key = {
'k1': {
'S': 'v1'
},
'k2': {
'S': 'v2'
}
},
UpdateExpression="SET History=list_append(if_not_exists(History, :empty_list), :attrValue)",
ExpressionAttributeValues = {":attrValue" :{"L":[ { "M" : { "id" : { "S" : "123" }, "UUID" : { "S" : "uuid123" }, "Flow" : { "L" : [ { "S" : "now2" } ] } } } ]},":empty_list":{"L":[]}})