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
/setFormulas
1 将文本编写为公式。
关于
var formul =["=,concatenate(\"Round(\",substitute($B"+row+",\"mm\",\"\"),\"\*7.85/1000000,1)\"))"];
spreadsheet.getRange(range4).setFormula(formul);
它不起作用,因为 setFormula
需要一个字符串,但您的 formul
声明正在分配一个数组,而这个数组的成员没有使用正确的公式语法构建。
=
后面有个逗号(去掉)
有多余的逗号和"
而不是使用 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)
备注:
- 它也可能被使用 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))
我在单个单元格中输入了格式为“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
/setFormulas
1 将文本编写为公式。
关于
var formul =["=,concatenate(\"Round(\",substitute($B"+row+",\"mm\",\"\"),\"\*7.85/1000000,1)\"))"];
spreadsheet.getRange(range4).setFormula(formul);
它不起作用,因为 setFormula
需要一个字符串,但您的 formul
声明正在分配一个数组,而这个数组的成员没有使用正确的公式语法构建。
=
后面有个逗号(去掉)有多余的逗号和
"
而不是使用 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)
备注:
- 它也可能被使用 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))