Evaluate/Calculate 使用 google 脚本的连接语句

Evaluate/Calculate a Concatenate statement using google Script

我在单个单元格中输入了格式为“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 Sheets 无法计算包含 Google Sheets built-in 函数的“公式”(文本值)。

一种选择是使用 Google Apps 脚本通过使用 setFormula/setFormulas1 将文本编写为公式。

关于

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

它不起作用,因为 setFormula 需要一个字符串,但您的 formul 声明正在分配一个数组,而这个数组的成员没有使用正确的公式语法构建。

  1. =后面有个逗号(去掉)

  2. 有多余的逗号和"

  3. 而不是使用 built-in 函数 SUBSTITUTE 使用 JavaScript 方法,例如 String.prototype.replace:

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

备注:

  1. 它也可能被使用 setValue/setValues 但你将依赖 Google Sheet 数据类型自动检测,有时这不能很好地工作)

相关

  • Is there a way to evaluate a formula that is stored in a cell?
  • How to use a formula written as a string in another cell [evaluate for Google Spreadsheet]

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

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