Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Alex,
Excel 2016 a 32 bit.
Ho un file excel composto da due fogli:
- il primo include la lista degli ordini con tutti gli attributi
- il secondo è simile, con parte degli attributi tra cui uno importante che è la descrizione di tutti gli item che compongono l'ordine.
il mio obiettivo è di far si che la descrizione del secondo foglio sia replicata sul primo rispettando determinati criteri.
Vengo all'esempio per essere più concreto:
FOGLIO 1
Colonna A: Numero ordine
Colonna B: Data creazione
Colonna C: Buyer
Colonna D: Approvatore
Colonna E: Codice Fornitore
Colonna F: Nome Fornitore
Colonna G: Stato Approvazione
....
Colonna Q: Descrizione Line Item (la colonna vuota che vorrei popolare con i dati del foglio 2)
...
FOGLIO 2
Colonna A: Numero ordine
Colonna B: Data creazione
Colonna C: Stato Ordine
Colonna D: ...
Colonna E: Line_Numero (Colonna identificatrice dell'incrementale associato ai Line Item del foglio 1)
Colonna K: Item Description (la colonna col valore che vorrei riportare sul foglio 2)
...
Un esempio di record riportato nel foglio 1 è (in grassetto corsivo la colonna Q):
- Ord_2016_0001, 6-feb-2016, Marco Rossi, Giulio Viola, Forn_0101, Fornitore A, Approvato, ..., blank,...
- Ord_2016_0002, 6-feb-2016, Marco Rossi, Giulio Viola, Forn_0102, Fornitore B, Approvato, ..., blank,...
- Ord_2016_0002, 6-feb-2016, Marco Rossi, Giulio Viola, Forn_0102, Fornitore B, Approvato, ..., blank,...
Un esempio di record riportato nel foglio 2 è (in grassetto corsivo la colonna K):
- Ord_2016_0001, 6-feb-2016, Approvato, ..., 1, Servizio di manutenzione,...
- Ord_2016_0002, 6-feb-2016, Approvato, ..., 1, Canone assistenza 2016,...
- Ord_2016_0002, 6-feb-2016, Approvato, ..., 2, Stampante HP Modello xxx,...
Sostanzialmente la logica che vorrei applicare è:
- leggo il record della colonna 1 del foglio 1
- conto quante volte è ripetuto
- vado sul foglio 2, lo ricerco
- una volta trovato, verifico che la colonna E riporti il numero 1
- leggo il valore della colonna K
- torno sul foglio 1, alla riga da cui sono partito e popolo la colonna Q
- vado sul successivo, ripeto i passaggi 2 e 3
- una volta trovato, verifico che la colonna E riporti il numero 2
- ripeto i passi 5 e 6
Questo ciclo lo vorrei ripetere fino all'ultimo record.
Purtroppo non sono un esperto di VBA, per cui mi chiedevo se qualcuno poteva aiutarmi.
Soggeto alla mia domanda qui sotto, sarebbe facile provvedere un codice adatto ma non ti andrebbe invece un semplice formula? Una formula avrebbe il vantaggio di essere automaticamente dinamica.
Prendendo i tuoi dati per la prima colonna del primo foglio:
Nella terza riga, il numero di ripetizioni dovrebbe essere 2, per includere l'istanza precedente in A2, o considerare solo eventuali successive istanze e quindi essere 1?
In entrambi i casi posso postare una formula o una routine VBA
===
Regards,
Norman