|
koshimizuと申します。
よろしくお願いします。
下記のようにA列にA,B,C,Dのいずれかが入りB列ににもA,B,C,Dのいずれかが入った
場合にC列には必ず小さい値を返してほしいと言うことで下記のファンクションで
解決しているのですが、A列、B列が共に空白のときは空白で良いのですが、
どちらか片方のみ入力されたら、その値を返してほしいのですが、できません。
お願い致します。
A B C D 列
1 B C C
2 A D D
3 C A C
Function fncMinRank(strX As String, strY As String) As String
Dim intX As Integer, intY As Integer
Dim intMin As Integer
'対象セルのランクを数値に置き換えます
intX = fncRankNum(strX)
intY = fncRankNum(strY)
'最小値を求めます
intMin = WorksheetFunction.Min(intX, intY)
'最小値をランクに戻します
If intMin = intX Then
fncMinRank = strX
ElseIf intMin = intY Then
fncMinRank = strY
Else
fncMinRank = ""
End If
End Function
=============================
Function fncRankNum(strrank As String) As Integer
'ランクを数値に置き換えた結果を返します
Select Case strrank
Case "A"
fncRankNum = 26
Case "B"
fncRankNum = 25
Case "C"
fncRankNum = 24
Case "D"
fncRankNum = 23
Case Else
fncRankNum = 0
End Select
End Function
|
|