微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Google脚本评估/计算连接语句

如何解决使用Google脚本评估/计算连接语句

我在一个单元格中收到了来自用户的格式为“ 12mm * 300 * 300”的输入。我需要使用一些公式或脚本来计算相同的值,但是我无法获得所需的结果。我直接在Google表格中使用的公式是

=concatenate("=Round(",substitute(E1,"mm",""),"*7.85,1)")

但相同的结果是输出

=Round(12*300*300*7.85,1)

,但未计算相同。其次,我尝试使用google脚本函数setformula进行相同的操作,但这也会导致错误

var formul =["=,concatenate(\"Round(\",substitute($B"+row+",\"mm\",\"\"),\"\*7.85/1000000,1)\"))"];
spreadsheet.getRange(range4).setFormula(formul);

解决方法

Google表格无法评估包含Google表格内置函数的“公式”(文本值)。

一种选择是使用setFormula / setFormulas 1 使用Google Apps脚本将文本写为公式。

关于

var formul =["=,concatenate(\"Round(\",substitute($B"+row+",\"mm\",\"\"),\"\*7.85/1000000,1)\"))"];
spreadsheet.getRange(range4).setFormula(formul); 

由于setFormula需要一个字符串,但是您formul声明正在分配一个数组,并且该数组的成员未使用正确的公式语法来构建,因此无法正常工作。

  1. =后面有一个逗号(将其删除)

  2. 还有多余的逗号和"

  3. 代替使用内置函数SUBSTITUTE,而使用String.prototype.replace之类的JavaScript方法:

var E1 = "2mm*300*300";
var formula = "=Round("+E1.replace('mm','')+"*7.85/1000000,1))"
console.info(formula)

注意:

  1. 它可能也可以使用setValue / setValues,但是您将依赖于Google Sheet数据类型的自动检测功能,有时这种方法无法正常工作

相关

,

查询可以对字符串进行简单的数学运算,例如加,减,乘和除。试试

=ROUND(QUERY(,"SELECT "&CONCATENATE(SUBSTITUTE(E1,"mm",""),"*7.85")&" LABEL "&CONCATENATE(SUBSTITUTE(E1,"*7.85")&" ''",0))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。