Questo (dovrebbe) generare un nuovo foglio dal foglio sorgente con i duplicati concatenati.
Per utilizzare il seguente codice è necessario aggiungere a un nuovo modulo nel VBA Editor
Una scorciatoia per aprire l'editor VBA è Alt+F11
(per Windows) e Alt+Fn+F11
(per Mac)
volta l'Editor è aperto aggiungi un nuovo modulo selezionandolo dal menu "inserisci" nella barra dei menu principale. Dovrebbe automaticamente aprire il modulo pronto ad accettare il codice, se non è necessario selezionarlo (sarà chiamato "ModuleN" dove N è il prossimo numero disponibile) dal project explorer.
Non sono sicuro che lo "Scripting.Dictionary" sia disponibile in osx, ma non mi fa male provare.
Option Explicit
Sub Main()
Dim Source As Worksheet: Set Source = ThisWorkbook.Worksheets("Sheet1")
Dim Destination As Worksheet: Set Destination = ThisWorkbook.Worksheets("Sheet2")
Dim Records As Object: Set Records = CreateObject("Scripting.Dictionary")
Dim Data As Variant
Dim Index As Long
Dim Row As Integer: Row = 1
Data = Source.Range("A1", "B" & Source.Rows(Source.UsedRange.Rows.Count).Row).Value2
For Index = LBound(Data, 1) To UBound(Data, 1)
If Records.Exists(Data(Index, 1)) Then
Destination.Cells(Records(Data(Index, 1)), 2).Value2 = Destination.Cells(Records(Data(Index, 1)), 2).Value2 & ", " & Data(Index, 2)
Else
Records.Add Data(Index, 1), Row
Destination.Cells(Row, 1).Value2 = Data(Index, 1)
Destination.Cells(Row, 2).Value2 = Data(Index, 2)
Row = Row + 1
End If
Next Index
Set Records = Nothing
End Sub
super facile se la lista è già ordinata in base alla prima colonna (ad es., Quindi tutti i "negozi associati di pneumatici canadesi" sono raggruppati insieme) e solo marginalmente più difficili se non sono ordinati. Archiviare gli elenchi in un array 2D e creare l'elenco separato da virgole nella seconda colonna dell'array. Al termine, scrivere su un nuovo foglio/ecc. –
@DavidZemens Non sono sicuro di come fare per farlo? Può essere fatto attraverso Excel, o è fatto in modo programmatico? Sono un designer che cerca di farmi strada tra i problemi di gestione dei dati in cui mi sto imbattendo, quindi non sono proprio sicuro di come farlo. – jbwharris
Sì, questo può essere fatto utilizzando VBA (Visual Basic for Applications) che è probabilmente il modo più semplice per "comunicare" a livello di codice con Excel. La risposta suggerita da Nick, di seguito, dovrebbe essere più o meno funzionalmente equivalente a ciò che ho descritto ed è un altro buon metodo per questo tipo di problema (prima oggi suggerivo [questo tipo di soluzione] (http://stackoverflow.com/questions/15748138/convert-list-of-items-in-an-excel-table-to-comma-separated-string/15749038 # 15749038) su un'altra domanda). –