Excel: Allineare celle con uguale contenuto confrontando 2 colonne di lunghezza differente

Anonimo
2024-05-29T12:29:15+00:00

Vorrei sapere se qualcuno può aiutarmi per un problema che non riesco a risolvere.

Ho TRE colonne anzi SEI:

A B C D E F
Arancio descrizione 1 15 Verde descrizione 7 65
Bianco descrizione 2 18 Bianco descrizione 2 12
Giallo descrizione 3 2 Marrone descrizione 4 8
Marrone descrizione 4 5 Rosso descrizione 6 6
Nero descrizione 5 79
Rosso descrizione 6 46
Verde descrizione 7 25

Vorrei come recita il titolo riuscire ad "affiancare" (anche se non è il termine corretto) le celle delle colonne "A+B+C" con quelle di "D+E+F" nei casi in cui A è uguale a C. Per giungere a una cosa come sotto:

A B C D E F
Arancio descrizione 1 15
Bianco descrizione 2 18 Bianco descrizione 2 12
Giallo descrizione 3 2
Marrone descrizione 4 5 Marrone descrizione 4 8
Nero descrizione 5 79
Rosso descrizione 6 46 Rosso descrizione 6 6
Verde descrizione 7 25 Verde descrizione 7 65

Qualcuno può aiutarmi.Grazie

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

Risposta accettata dall'autore della domanda

Eleuterio Tedeschi 18,590 Punti di reputazione Moderatore volontario
2024-05-29T15:25:09+00:00

Vorrei come recita il titolo riuscire ad "affiancare" (anche se non è il termine corretto) le celle delle colonne "A+B+C" con quelle di "D+E+F" nei casi in cui A è uguale a C. Per giungere a una cosa come sotto:

Presumo quando A sia uguale a D

Qualcuno può aiutarmi.

Se è una domanda, direi di si, ma serve VBA:

Sub Sposta() 

Dim arrV, lngRow As Long, lngRows As Long, varM 

    With Foglio3 ' cambiare con il codename del foglio usato

        lngRows = .Cells(Rows.Count, 4).End(xlUp).Row 

        With .Range("D1:F" & lngRows) 

            arrV = .Value 

            .ClearContents 

        End With 

        lngRow = 1 

        Do Until .Cells(lngRow, 1).Value = "" 

            varM = Application.VLookup(.Cells(lngRow, 1).Value, arrV, 1, 0) 

            If Not IsError(varM) Then 

                .Cells(lngRow, 4).Value = varM 

                .Cells(lngRow, 5).Value = Application.VLookup(.Cells(lngRow, 1).Value, arrV, 2, 0) 

                .Cells(lngRow, 6).Value = Application.VLookup(.Cells(lngRow, 1).Value, arrV, 3, 0) 

            End If 

            lngRow = lngRow + 1 

        Loop 

    End With 

End Sub

Modifica il riferimento al foglio con il tuo dove ho commentato.

Ciao.

La risposta è stata utile?

2 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

8 risposte aggiuntive

Ordina per: Più utili
  1. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni

  2. Anonimo
    2024-06-23T14:42:18+00:00

    Buonasera,

    come devo modificare il codice nel caso in cui nella colonna D ci siano righe che non trovano corrispondenza nella colonna A?

    Vorrei che eventualmente queste righe vengano inserite alla fine dell'elenco sempre nelle colonne D E F partendo dalla riga vuota che nell'esempio è la numero 9.

    Ringrazio anticipatamente.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Eleuterio Tedeschi 18,590 Punti di reputazione Moderatore volontario
    2024-05-30T12:59:42+00:00

    Grazie a te per il riscontro, ricorda però di chiudere la discussione appena puoi,

    ciao.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2024-05-30T12:27:18+00:00

    Funziona! Grazie mille!!!

    La risposta è stata utile?

    0 commenti Nessun commento