Ciao Filippo,
Se vorresti ottenere i risultati in forma concatenata, senza l'uso delle colonne intermedie, e con una sola semplice formula del tipo
=Malattie(D2), posterò una funzione utente (UDF) che può essere utilizzata come una funzione nativa di Excel.
In attesa della tua risposta, non potevo resistere creare la funzione utente (UDF)
ElencareMalattie!
Quindi, ricominciando da capo:
- crea un nome definito (TabellaMalattie) per la tua tabella
- Alt+F11 per aprire l'editor di VBA
- Alt+IM per inserire un nuovo modulo di codice
- Nel nuovo modulo vuoto, incolla il seguente codice:
'=========>>
Option Explicit
'--------->>
Public Function ElencareMalattie(sStr, TabellaGeni) As Variant
Dim oDic As Object
Dim arrTabella As Variant
Dim arrKeys As Variant, arrItems As Variant
Dim aStr As String, bStr As String
Dim Res As Variant
Dim i As Long, iItems As Long
Const sSeperatore As String = " / " '<<=== Modifica
Set oDic = Nothing
Set oDic = CreateObject("Scripting.Dictionary")
arrTabella = TabellaGeni.Value
With oDic
.CompareMode = vbTextCompare
For i = 1 To UBound(arrTabella)
aStr = arrTabella(i, 1)
bStr = arrTabella(i, 2)
If Not .exists(aStr) Then
.Add Key:=aStr, Item:=bStr
Else
.Item(aStr) = .Item(aStr) & sSeperatore & bStr
End If
Next i
arrKeys = .keys
arrItems = .items
iItems = .Count
End With
Res = Application.Match(sStr, arrKeys)
If Not IsError(Res) Then
ElencareMalattie = arrItems(Res - 1)
Else
ElencareMalattie = CVErr(xlErrNA)
End If
End Function
'<<=========
- Alt+Q per chiudere l'editor di VBA e tornare a Excel
- Salva il file con l’estensione xlsm
La funzione sarebbe confermata con un semplice Invio e sarebbe utilizzata così:
=ElencareMalattie(D2,TabellaMalattie)

Potresti scaricare il mio nuovo file di prova aggiornato Filippo20170824.xlsm
In questo file, ho dimostrato sia la soluzione originale con le formule native di Excel che la soluzione corrente con la UDF (funzione utente). Inoltre, Per rendere dinamicamente possibile l'espansione o la contrazione della tabella, la tabella
TabellaMalattie è una tabella di Excel.
===
Regards,
Norman
