Ciao Andrea
Ti riallego il tuo file (lievemente modificato) dove ho inserito la macro che vedi qui ed una convalida dati in L1.
Ogni volta che andrai a scegliere una voce in convalida compariranno sotto i dati relativi al dato prescelto.
vb
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ur As Long
Dim lr As Long
Dim rng As Range
Dim cel As Range
If Not Intersect(Target, Range("l1")) Is Nothing Then
ur = Cells(Rows.Count, 1).End(xlUp).Row
Set rng = Range("a2:a" & ur)
Range("l4:m50").ClearContents
For Each cel In rng
lr = Cells(Rows.Count, "l").End(xlUp).Row
If cel.Value = Target.Value Then
Cells(lr + 1, "L").Value = cel.Offset(0, 1).Value
Cells(lr + 1, "M").Value = cel.Offset(0, 2).Value
End If
Next cel
End If
End Sub
P.S. Ciò non esclude, ovviamente, che il problema si possa risolvere anche con le formule come diceva Gianfranco che saluto.
Alfredo