Condividi tramite

Popolare una colonna sulla base di differenti criteri

Anonimo
2016-09-26T08:33:59+00:00

Ciao a tutti,

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 è:

  1. leggo il record della colonna 1 del foglio 1
  2. conto quante volte è ripetuto
  3. vado sul foglio 2, lo ricerco
  4. una volta trovato, verifico che la colonna E riporti il numero 1
  5. leggo il valore della colonna K
  6. torno sul foglio 1, alla riga da cui sono partito e popolo la colonna Q
  7. vado sul successivo, ripeto i passaggi 2 e 3
  8. una volta trovato, verifico che la colonna E riporti il numero 2
  9. 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.

Grazie mille

Alex

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

1 risposta

Ordina per: Più utili
  1. Anonimo
    2016-09-26T13:36:36+00:00

    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 è:

    1. leggo il record della colonna 1 del foglio 1
    2. conto quante volte è ripetuto
    3. vado sul foglio 2, lo ricerco
    4. una volta trovato, verifico che la colonna E riporti il numero 1
    5. leggo il valore della colonna K
    6. torno sul foglio 1, alla riga da cui sono partito e popolo la colonna Q
    7. vado sul successivo, ripeto i passaggi 2 e 3
    8. una volta trovato, verifico che la colonna E riporti il numero 2
    9. 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

    La risposta è stata utile?

    0 commenti Nessun commento