Hola! CURIBER. Sigue los siguientes pasos: 
a) Haz click derecho en la solapa de la hoja en la que deseas el efecto y selecciona: Ver código; 
b) En la ventana que se te abrirá, copia y pega lo siguiente:  
 Código PHP:
    Sub Concatenar()
Dim Mat1, Vec1, Mat2
Dim Rng As Range, i As Long, j As Long, TC As Long, Q As Long
 
On Error Resume Next
Set Rng = Application.InputBox("Selecciona el rango a procesar" & vbLf & "(por ejemplo: B2:D17)", "Resumen por concatenación", Type:=8)
If Rng Is Nothing Then Exit Sub
 
Mat1 = Rng
Q = UBound(Mat1, 1)
ReDim Vec1(1 To Q, 1 To 1)
ReDim Mat2(1 To Q, 1 To 2)
 
For i = 1 To Q
  j = WorksheetFunction.Match(Mat1(i, 1), Vec1, 0)
  If Err.Number > 0 Then
    Err.Clear
    TC = 1 + TC: j = TC
    Vec1(j, 1) = Mat1(i, 1)
    Mat2(j, 1) = Mat1(i, 2)
  End If
  Mat2(j, 2) = IIf(Mat2(j, 2) = Empty, "", Mat2(j, 2) & ";") & Mat1(i, 3)
Next i
 
On Error GoTo 0
With Rng.Parent.Cells(Rng(1).Row, Rng(1).Column + 10)
  .Offset(, 1).Resize(100 + Q, 3).Delete
  .Offset(, 1).Resize(TC) = Vec1
  .Offset(, 2).Resize(TC, 2) = Mat2
  .Offset(, 1).CurrentRegion.Sort Key1:=.Offset(, 1), Order1:=xlAscending, Header:=False
  .Offset(, 1).Resize(Q, 3).Columns.AutoFit
  Application.Goto .Offset(, -2), True
End With
End Sub 
    
  c) Cierra esa ventana del ambiente Visual Basic for Application en el que te encuentras, y retorna al Excel. 
d) Ejecuta la macro recién incorporada: 
Concatenar. 
e) La macro te solicita que selecciones el rango de tres columnas con los datos a procesar. Al cabo de unos instantes: ¡obtendrás lo pedido! 
¿Te sirve la idea?...
Saludos, Cacho R.