選取下拉清單後某計算儲存格公式跟隨變動

a1為下拉式清單,顯示內容為:無條件進位,四捨五入,無條件捨去
選取:
無條件捨去參數為ROUNDDOWN
四捨五入參數為ROUND
無條件捨去參數為ROUNDUP
b2的計算式
=IF(B3=0,0,IF(****(A3*1000*B3*D$1%*F$1%,0)<20,20,****(A3*1000*B3*D$1%*F$1%,0))

****<<代表選取了條件後的參數

比方我下拉選了無條件捨去
b2計算式就會變成
=IF(B3=0,0,IF(ROUNDDOWN(A3*1000*B3*D$1%*F$1%,0)<20,20,ROUNDDOWN(A3*1000*B3*D$1%*F$1%,0))

以此類推

請問各位先進
這樣如何設計?
謝謝
2020-02-14 9:57 發佈

我將3種算法放在K1到K3。
而在B2輸入=INDIRECT("K"&A2)
錦色如月,子耀光芒。
可利用定義名稱+EVALUATE,省去輔助欄位(格)的使用



一、定義四個名稱+公式
計算=EVALUATE(工作表1!$A$2)

(以下三個公式,請自行依需求修改)
四捨五入=ROUND(工作表1!$B$2,0)
無條件捨去=ROUNDDOWN(工作表1!$B$2,0)
無條件進位=ROUNDUP(工作表1!$B$2,0)

二、儲存格c2=IF(B2<>"",計算,"")
感謝兩位大大
可能我形容的不夠好
在下意思是
a1下拉清單有這三樣
無條件捨去參數為ROUNDDOWN
四捨五入參數為ROUND
無條件捨去參數為ROUNDUP
而b2的計算式
=IF(B3=0,0,IF(****(A3*1000*B3*D$1%*F$1%,0)<20,20,****(A3*1000*B3*D$1%*F$1%,0))

****代表選取了下拉清單的條件後,****會變為所選的條件參數

比方我下拉選了無條件捨去
b2計算式就會變成
=IF(B3=0,0,IF(ROUNDDOWN(A3*1000*B3*D$1%*F$1%,0)<20,20,ROUNDDOWN(A3*1000*B3*D$1%*F$1%,0))

下拉選了四捨五入
b2計算式就會變成
=IF(B3=0,0,IF(ROUND(A3*1000*B3*D$1%*F$1%,0)<20,20,ROUND(A3*1000*B3*D$1%*F$1%,0))

下拉選了無條件捨去
b2計算式就會變成
=IF(B3=0,0,IF(ROUNDUP(A3*1000*B3*D$1%*F$1%,0)<20,20,ROUNDUP(A3*1000*B3*D$1%*F$1%,0))

謝謝大大

'程式碼放在工作表1
'依a1下拉式選單的值,在c1產生公式,計算b1數值的進位
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Range("a1"), Range(Target.Address)) Is Nothing Then
Dim f As String
If Target.Value = "四捨五入" Then f = "ROUND"
If Target.Value = "無條件捨去" Then f = "ROUNDDOWN"
If Target.Value = "無條件進位" Then f = "ROUNDUP"
'以下這行,請自行依需求更改公式
Range("c1").Formula = "=" & f & "($B$1,0)"
End If

End Sub

內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?