Есть ли какие-либо проблемы с преобразованием этой формулы Excel в javascript?

#javascript #excel

Вопрос:

Вот формула 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, формула работает неправильно.

Ответ №1:

Это похоже на довольно простую математику.

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

Это в принципе невозможно перевести, не увидев фактическую электронную таблицу, но это должно помочь вам начать. Кроме того, обязательно учитывайте порядок операций, потому что компьютер будет оценивать их слева направо, если только нет скобок (где он будет оценивать их в первую очередь).

Комментарии:

1. Что такое AE1 ? AE5 ? Почему у нас здесь письмо за другим письмом ? Блоки имеют одну букву и одну цифру, верно ?

2. @M. imp содержимое ячеек, которые вы указали в своей формуле, указанной в вашем вопросе. Если бы вы предоставили данные…