| 
    
     |  | 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
 
 
 |  |