Function MyOP(V As String, V1 As Double)
V是數值, 何以定義為[文字]型態, 若無法確定其型態, 可不定義, 其為單一元素, 影響應不大!
另用 MID 去取數, 就有點畫蛇添足, 化簡為繁, 直接用[常數]不是較好? 或者有其它理由?
=========================================
除了超版的方法, 一般用 IF 的方法:( 注意:判斷是由大而小, 與公式的 IF 規則相同)
Function MyOP_1(V)
If V >= 1000 Then
MyOP_1 = 10
ElseIf V >= 500 Then
MyOP_1 = 5
ElseIf V >= 50 Then
MyOP_1 = 1
ElseIf V >= 10 Then
MyOP_1 = 0.5
ElseIf V > 0 Then
MyOP_1 = 0.1
End If
End Function
IF公式:=IF(A1>=1000,10,IF(A1>=500,5,IF(A1>=50,1,IF(A1>=10,0.5,IF(A1>0,0.1,0)))))
==========================================
一般人少用的 SWITCH:
Function MyOP_2(V)
If V > 0 Then
MyOP_2 = Switch(V >= 1000, 10, V >= 500, 5, V >= 50, 1, V >= 10, 0.5, V > 0, 0.1)
End If
End Function
==========================================
這是工作表函數法:
Function MyOP_3(V)
If V > 0 Then
MyOP_3 = Application.Lookup(V, Array(0, 10, 50, 500, 1000), Array(0.1, 0.5, 1, 5, 10))
End If
End Function
==========================================
不用VBA,一般公式:
=IF(A1<=0,0,LOOKUP(A1,{0,10,50,500,1000},{0.1,0.5,1,5,10}))
=IF(A1<=0,0,MAX((A1>={0,10,50,500,1000})*{0.1,0.5,1,5,10}))作者: frantz 時間: 2016-4-4 16:58