用于实数除法的工作表函数(即/)

时间:2016-07-12 19:59:38

标签: ms-office office-js

我没有在worksheet functions中找到实数的分割(即//*[@id="ctl00_ctl50_g_3B684B74_3A19_4750_AA2A_FB3D56462880"]/div[1]/h4 //*[@id="ctl00_ctl50_g_3B684B74_3A19_4750_AA2A_FB3D56462880"]/div[2]/h4 //*[@id="ctl00_ctl50_g_3B684B74_3A19_4750_AA2A_FB3D56462880"]/div[3]/h4 )。因此,要评估/,我们不能使用一个表达式=SUM(2,SUM(30,40)/3); 我们必须做ctx.workbook.functions.sum(1,ctx.workbook.functions.sum(30,40)/3)两次:

ctx.sync

这意味着,如果一个表达式中有多个function test () { Excel.run(function (ctx) { var result = ctx.workbook.functions.sum(30,40); var result2; result.load(); return ctx.sync() .then(function () { result2 = ctx.workbook.functions.sum(1,result.value/3); result2.load(); }) .then(ctx.sync) .then(function () { console.log(result2.value); }); }); } ,我们必须使用更多/来评估它,这非常繁琐(尤其难以自动构建)。

因此,找到工作表函数或ctx.sync的解决方法真的很棒,这样我们仍然可以一步评估包含/的表达式。

PS:似乎/+*也没有工作表功能,但我们可以使用变通方法:- sum +product*sum(..., product(-1, ...)

2 个答案:

答案 0 :(得分:1)

至少除以常数(例如3),与product(something, .33333333)不一样

答案 1 :(得分:1)

一种解决方案是使用product函数和power函数与指数-1的组合。即使分母(除数)是变量而不是常数,此解决方案也能正常工作。

var myNumerator = 888, myDenominator = 4;
var funcs = ctx.workbook.functions;
var result = funcs.product(myNumerator,funcs.power(myDenominator,-1));

在评估=SUM(2,SUM(30,40)/3)的具体示例中,代码为:

result = funcs.sum(2,funcs.product(funcs.sum(30,40),funcs.power(3,-1)));