Con la versione 2003 tanto vale andare subito con una macro.
Ad esempio, con riferimento alla immagine
1) Creati una lista di "alias"; io l'ho fatto partendo da F7, andando verso l'alto per alias dello stesso fornitore e verso destra per alias di altri fornitori
2) inserisci in un modulo standard del vba la seguente macro:
- Codice: Seleziona tutto
Sub Riass()
Dim iDati As Range, oDati As Range
Dim wArr, oArr(), I As Long, J As Long, K As Long
Dim eCnt As Long, eFound As Boolean, dBg As Boolean
Set iDati = Sheets("Foglio1").Range("A1") '<<< La posizione iniziale dei dati di partenza
Set oDati = Sheets("Foglio1").Range("F8") '<<< La posizione iniziale dei dati di riepilogo
'
dBg = True
Debug.Print ">>>"
wArr = Range(iDati, iDati.End(xlDown).Resize(, 2)).Value
eCnt = Range(oDati.Cells(0, 1), oDati.Cells(0, 100).End(xlToLeft)).Columns.Count
oDati.Resize(2, eCnt + 2).ClearContents 'Azzera area di destinazione
For I = 1 To UBound(wArr) 'Scan Dati di input
For J = 0 To eCnt - 1 'Scan elenco orizzontale
For K = 1 To oDati.Row 'Scan per Alias
If oDati.Offset(-K, J) = "" Then Exit For
If InStr(1, wArr(I, 1), oDati.Offset(-K, J), vbTextCompare) > 0 Then
If dBg Then Debug.Print I, J, K
oDati.Offset(0, J).Value = oDati.Offset(0, J).Value + wArr(I, 2)
eFound = True
Exit For
End If
Next K
If eFound Then Exit For
Next J
If eFound Then
eFound = False
Else
Debug.Print "Unallocated: ", I, wArr(I, 1)
On Error Resume Next
oDati.Offset(0, eCnt + 1).Value = oDati.Offset(0, eCnt + 1).Value + CSng(wArr(I, 2))
On Error GoTo 0
End If
Next I
MsgBox ("Completato...")
End Sub
Le righe marcate <<< vanno adattate alla tua situazione; in particolare con
Set oDati = etc etc definisci in quale posizione i dati di riepilogo saranno scritti (e' la cella Gialla, nell'Immagine), ma definisci automaticamente la posizione della tabella degli "alias".
Poi lanci la Sub Riass
Con i dati che hai condiviso e la tabella che mi sono inventato io ho ottenuto i risultati che vedi in Immagine.
Eventuali righe che non sono state allocate con la tabella di Alias impostata saranno sommate nella seconda cella senza Alias (I8, nel caso del mio esempio)
Gli alias sono insensibili al Maiuscolo/minuscolo, quindi Amazon "prende" sia AMAZON che amazon.
Attenzione che potrebbero sorgere problemi con sigle dove una "ne implica" un'altra; es "Modadori" e' implicitamente riconosciuta in "Giorgio Mondadori". Per evitare errori sara' necessario inserire nella tabella degli Alias prima quelli che potrebbero essere "impliciti" in altri. Esempio:
- Codice: Seleziona tutto
AMAZON - Höpli
AMZN - Hoepli - Giorgio Mondadori – Mondadori
(il trattino separa le colonne)
Prova e fai sapere...