ExcelにはVLOOKUPという関数があります。これが使えるとExcel初心者は卒業と言える気がします。
「ある列を検索して同じ値がある行の別の列の値を返す」という、言葉にすると非常に分かりにくい関数ですが、使えるようになると非常に便利です。
一方で使いにくい部分もあって、例えば検索列よりも返す値の列が右にある必要があります。また返す値の列は検索列から数えて何番目というのを指定する必要があります。
そういう不満の声があったからか、マイクロソフトはXLOOKUPの提供を発表しました。
検索列と返す値の列をそれぞれ指定できるようです。
また縦と横のどちらにも対応します。
しかし、まだ製品版には搭載されていないようです。
そこでVBAで再現してみました。
Function XLOOKUP(検索値, 検索範囲, 戻り値の配列)
ct_search = 0
For Each value_search In 検索範囲
If 検索値 = value_search Then
Exit For
End If
ct_search = ct_search + 1
Next
ct_return = 0
For Each value_return In 戻り値の配列
If ct_search = ct_return Then
Exit For
End If
ct_return = ct_return + 1
Next
XLOOKUP = value_return
End Function
ct_search = 0
For Each value_search In 検索範囲
If 検索値 = value_search Then
Exit For
End If
ct_search = ct_search + 1
Next
ct_return = 0
For Each value_return In 戻り値の配列
If ct_search = ct_return Then
Exit For
End If
ct_return = ct_return + 1
Next
XLOOKUP = value_return
End Function
コメント