Excel – pivot valori in una cella (come valore separato da virgola)

Excel – pivot valori in una cella (come valore separato da virgola)

Ho due colonne di dati:

  Supplier1 | Product1
 Supplier1 | Product2
 Supplier1 | Prodotto4
 Supplier1 | Prodotto7
 Supplier2 | Product3
 Supplier2 | Prodotto5 

Voglio "ruotare" intorno al fornitore e dare l'elenco dei prodotti in una singola cella, separata da virgole, ad esempio

  Supplier1 | Product1, Product2, Prodotto4, Prodotto7
 Supplier2 | Product3, Prodotto5 

Ci sono circa 1000 fornitori e 0 <prodotti <= 10.

La mia soluzione corrente prevede l'utilizzo di tabelle pivot, il salvataggio come CSV ecc ed è molto disordinato. Una soluzione non-VBA sarebbe incredibile.

Ecco una soluzione non-VBA, non pivot, che utilizza solo un paio di formule.

  1. Innanzitutto, ho usato il "Text-to-columns" per dividere i tuoi dati in quel delimitatore "pipe" (la linea verticale) in 2 colonne; una colonna "Fornitore" e una colonna "Prodotto". Quelle vanno rispettivamente nelle colonne A e B. (Nel tuo post appare che sono combinati in una colonna, quindi li ho separati separatamente. Non dovrai farlo.)

  2. Nella colonna C, che ho chiamato come colonna "Concatenazione", ho usato questa formula, partendo dalla cella C2 e copiando completamente: = IF (A2 = A1, C1 & "," B2, A2 & "| & B2)

  3. Nella colonna D, che ho chiamato come "SupplierChangesAtNextLine?" Ho usato questa formula (partendo da D2 e ​​copiando tutto il modo giù): = IF (A2 = A3, "", "Modificato")

  4. Ora dovresti essere in grado di filtrare nella colonna D solo i valori "modificati".

Buona caccia!

C1 C2 C3 C4 a 1 1 a 2 2,1 a 3 3,2,1 a 5 5,3,2,1 a 3 3,5,3,2,1 New b 11 11 b 13 13,11 b 11 11,13,11 b 14 14,11,13,11 New c 22 22 c 24 24,22 New f 25 25 f 11 11,25 f 10 10,11,25 New 
  1. In col3 (mezzi C3) usate la formula C2 = A1, B2 & & "," & C1, B2) per avviare la cella C2 in avanti e trascinarla verso il basso.
  2. in C4 (significa colonna4) utilizzare la formula = IF (A2 = A3, "", "cambiata") la cella di partenza D2 in avanti e trascinarla verso il basso.
  3. Filtra su Nuovo su C4 (significa col4) e otterrai il risultato desiderato.

Aggiungere la colonna C come contatore *: = COUNTIF (A $ 2: A $ 528, A2)
Aggiungere D come incremento * = IF (A2 = A1, D1 + 1, 1)
Aggiungi E per concatenare *: = IF (A1 = A2, E1 & "," & B2, B2)
Aggiungere F per mantenere solo l'ultima concat : = IF (AND (C2 = D2, E4 <> ""), E4, "")
Aggiungere la nota sulla cella 2 e abbassare (o fare doppio clic sull'angolo destro) per applicare la formula per tutte le celle della colonna

copiare e incollare come valori in un altro foglio, in ordine decrescente da F, eliminare il resto