Try this, enter with CTRL + SHIFT + ENTER, if you have office 365 then just press enter
=TEXTJOIN(", ",TRUE, T(IF((B$1>=Data!$B$2:$B$10)*('Employee Details'!B$1<=Data!$C$2:$C$10)*($A12=Data!$A$2:$A$10),Data!$D$2:$D$10)))
Here is the VBA solution, I didn't have much fantasy today in naming my variables but it works.
Function FindAndConcatenate(FindVal As Range, FindRange As Range, FindDate As Date) As String
'FindVal = Select the employee name in the sheet 1
'FindRange = Select the lookup range in sheet 2
'FindDate = select the date in the row 1 on sheet 1
Dim v As Variant
Dim x As Long
Dim s As String
v = FindRange
For x = 1 To UBound(v, 1)
If v(x, 1) = FindVal.Value Then
If FindDate >= v(x, 2) And FindDate <= v(x, 3) Then
s = s & v(x, 4) & ", "
End If
End If
Next x
If s = "" Then
FindAndConcatenate = ""
Else
FindAndConcatenate = Left(s, Len(s) - 2)
End If
End Function