
我有一個複雜的公式,我想在表格中使用它,同時繪製更改公式中一個單元格的效果圖表。
=($E$9+J2)-((($B$9+J2)+($B$23*200*$B$15)+(1E+99-1)*(($B$9+J2)*(1.1+(1-$B$23)*(0.75+($B$22*$B$15*0.4))*$B$15)+($B$23*200*$B$15)+$B$23*(FLOOR.MATH(1E+99/3)*200*$B$15/MAX(1,1E+99-1))))*$B$12/1E+99)*($E$9+J2)/((($E$9+J2)+($E$23*200*$E$15)+(1E+99-1)*(($E$9+J2)*(1.1+(1-$E$23)*(0.75+($E$22*$E$15*0.4))*$E$15)+($E$23*200*$E$15)+$E$23*(FLOOR.MATH(1E+99/3)*200*$E$15/MAX(1,1E+99-1))))*$E$12/1E+99)
正如您所看到的,我嘗試用替換來簡化一些重複函數。
=($E$9+J2)-SUBSTITUTE($B$29,$B$9,($B$9+J2))*$E$9/SUBSTITUTE($E$29,$E$9,($E$9+J2))
這不起作用,因為替代品實際上正在轉換結果將函數轉換為字串並蒐索實例,而不是轉換函數本身。
如果我們用電腦語言編程,我們可以簡單地呼叫具有不同參數的方法,但我不確定 excel 是否能夠做到這一點。
====
為了說明這個「簡化」電子表格中的挑戰,我有兩個公式
| A | B | C |
1 | 1 101 202
2 | 100
儲存格 B1 有這個公式
=A1+A2
單元格 C1 有這個公式
=SUBSTITUTE(B1,A1,A1*2)
我希望單元格 C1 為 102 而不是 202。
答案1
我認為根據您在評論中顯示的內容,您想要的最接近的近似值是
=LET(x,A1*2,y,A2,x+y)
。
如果您需要解析 B2 中的公式,您可能需要用 VBA 編寫公式解析器。但將整個公式寫成 VBA UDF 可能會更簡單。
注意:LET
僅適用於最新版本的 Excel O365