Ah ah...
Ho appena finito di collaudare la soluzione basata su udf, e trovo la macro di Flash! Beh, vuol dire che sceglierai la soluzione che piu' ti piace.
Ho preparato questa "udf" che fa quasi tutto quello che chiedi, meno la preparazione dell' elenco degli Id, che farai tramite un "Filltro avanzato": Menu /Dati /Filtro avanzato; spunta Copia univoca dei record e Copia in altra posizione; nel campo Copia in inserisci l' origine dove vuoi creare il nuovo elenco es M2 (basta cliccare su M2); Ok.
Poi apri l' editor del vba, tramite Alt-F11; Menu /Inserisci /Modulo; copia il seguente codice e incollalo nel frame di dx del vba:
- Codice: Seleziona tutto
Function concas(ValSe, ValArea As Range, Operaz As String, Scart As Integer) As Variant
For Each Cell In ValArea
If Cell = ValSe Then
Select Case Operaz
Case "+"
concas = concas + Val(Cell.Offset(0, Scart))
Case ","
If concas = "" Then concas = Cell.Offset(0, Scart) Else concas = concas & Operaz & " " & Cell.Offset(0, Scart)
If concas = 0 Then concas = ""
Case " "
If concas = "" Then concas = Cell.Offset(0, Scart) Else concas = concas & Operaz & Cell.Offset(0, Scart)
If concas = 0 Then concas = ""
End Select
End If
Next Cell
End Function
Quindi torna su excel e nella cella accanto all' elenco degli Id (in N2, ad esempio) usa una formula come questa:
- Codice: Seleziona tutto
=concas($M2;$A$1:$A$100;"+";2)
La sintassi della formula e' la seguente:
- Codice: Seleziona tutto
=CONCAS(Valore Id da verificare;Area verticale degli Id; Operatore; Scarto)
La formula di esempio crea la somma dei valori di col C (cioe' col A+2), se in col A c' e' l' Id segnato in M2; invece del "+" puoi usare " " oppure "," che rispettivamente concatenano i valori presenti usando come separatore lo "spazio" oppure "virgola + spazio"; il valore 2 nella formula di esempio rappresenta lo scarto (in colonna) rispetto alla colonna originale (col A, nella formula); adatta quindi la formula usando l' operatore che ti serve nelle varie posizioni ("+" per la somma dei valori degli ordini, " " oppure "," per concatenare gli altri campi) e lo scarto del dato da prelevare.
Fai sapere dove arrivi, ciao.