UDF

Use in cell like
P3:
=JoinIf($B$1:$N$1,B3:N3,$Q$3:$R$15,", ")

Function JoinIf(Hdr As Range, Data As Range, Crit As Range, JoinStr As String) As String
    JoinIf = Join(Filter(Hdr.Parent.Evaluate("if(isnumber(match(" & Hdr.Address & "&char(34)&" & Data.Address & "&char(34)," & _
             Crit.Columns(1).Address & "&" & Crit.Columns(2).Address & ",0))," & Hdr.Address & ")"), False, 0), JoinStr)
End Function