将Excel公式转换为结构化的英文

我有这个公式,与variables, mse

 IFERROR(IF(m - IF(s*(1/ABS(e))>m;m;s*(1/ABS(e)))>m;m;m-IF(s*(1/ABS(e))>m;m;s*(1/ABS(e))))/100;0) 

我想把它翻译成结构化的英文,这是我的,但我怀疑它的正确性:

 IF e != 0 IF m > m return m ELSE IF s / |e| > m return m ELSE IF s / e > m return m - s / e ELSE return s / e ELSE return 0 ?? forgot this one upss.. s / e / 100; 

经过分析function,我觉得这个简化版本有相同的结果:

 =IFERROR(IF(MIN(m;s/ABS(e))<0;m;m-MIN(m;s/ABS(e)))/100;0) 

其逻辑可以这样解释:

 if e = 0 0 else if m - (min between s/|e| and m) > m m else m - (min between s/|e| and m) 

即使如此,我不明白这是什么。 :P

编辑:我添加了爵士的代码简化的Javascript版本:

 function whacko (m,s,e) { if (e === 0) return 0; var value = m - Math.min(s / Math.abs(e), m); if (value > m) return m; return value; }; 

感谢Andrew的巨大回复,这是JS中的工作代码:

 var m = 33 , s = 43 , e = 12.75; // Excel: 29,6% function whacko (m,s,e) { if (e === 0) { return 0; } else if (m - (Math.min(s/Math.abs(e), m)) > m) { return m; } else { return m - (Math.min(s/Math.abs(e), m)); } }; console.log(whacko(m,s,e)); // 29.627450980392158 
    Interesting Posts