首页 > 解决方案 > 将此excel公式转换为javascript有什么问题吗?

问题描述

这是excel公式:

=E2-(J2*2*G2)-(K2*E2*2)/30+IF((L2+M2)>60,((L2+M2)-60)*H2+60*G2,(L2+M2)*G2)+(N2/$AE$1)*$AE$2+(Q2*$AE$5+P2*$AE$4+O2*$AE$3)

这是我尝试过的(Javascript):

                    var E2 = $("#sentence").val();
                    var J2 = $("#deduction").val();
                    var G2 = 55145;
                    var K2 = $("#absence").val();
                    var L2 = $("#overtime").val();
                    var M2 = 0;
                    var H2 = 50050;
                    var N2 = $("#transportation").val();
                    var sixty;

                if ((L2 + M2) > 60) {
                    sixty = ((L2 + M2) - 60) * H2 + 60 * G2;
                } else {
                    sixty = (L2 + M2) * G2;
                };

                var result = E2 - (J2 * 2 * G2) - (K2 * E2 * 2) / 30 + sixty;

我找不到转换这部分公式的方法:

+(N2/$AE$1)*$AE$2+(Q2*$AE$5+P2*$AE$4+O2*$AE$3)

在这里我发现了问题:

即使其中一个变量设置为 null,该公式也无法正常工作。

标签: javascriptexcel

解决方案


它看起来像一些非常基本的数学。

let total = (N2 / AE1) * AE2 + (Q2 * AE5 + P2 * AE4 + O2 * AE3 )

如果没有看到实际的电子表格,这基本上是不可能翻译的,但这应该让你开始。此外,请务必考虑操作顺序,因为计算机将从左到右评估它,除非有括号(它将首先评估那些)。


推荐阅读