VBAを使わないで期待のことを行おうとするのであれば
テーブル2は、
従業員番号別年月別役職の一覧とする必要があるものと思います。
少なくとも私には、提示されたレイアウトでは、
VBA無しには実現することができません。
以下、VBAでの解を紹介しますので、
よかったら挑戦してみてください。
Function getYakuName(Jnum As Long, y As Integer, m As Integer) As String
Dim RCnt As Long
With ThisWorkbook.Sheets(1)
RCnt = 3
Do
If .Cells(RCnt, 7).Value = "" Then Exit Do
If ((.Cells(RCnt, 7).Value = Jnum) And _
(Year((.Cells(RCnt, 9).Value)) <= y) And _
(Month(.Cells(RCnt, 9).Value) <= m) And _
(Year((.Cells(RCnt, 10).Value)) >= y) And _
(Month(.Cells(RCnt, 10).Value) >= m)) Then
getYakuName = .Cells(RCnt, 11).Value
Exit Do
End If
RCnt = RCnt + 1
Loop
End With
End Function
お礼
ご回答ありがとうございます。 テーブル2がテーブル1のように月ごとになっていてくれたら、 こんな面倒なことにはならなかったので、そんな表しか エクスポートできないシステムを作った人に文句しかないです。 VBAコードを記載いただきありがとうございます。 挑戦してみます。