Excel devo unire due righe di dati diversi in una sola

Anonimo
2025-03-26T09:05:26+00:00

Buongiorno,

Ho due righe di dati, esempio:

Nome cognome compleanno e-mail cellulare

Nome cognome compleanno e-mail cellulare

Solo che magari nella prima riga manca il compleanno e nella seconda manca il cellulare. Io vorrei unirle in una sola riga e che Excel prendesse il dato mancante da entrambe le righe, senza sdoppiare dati che ci sono sempre come nome e cognome. Spero di essere stata chiara, grazie mille!

Elena

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

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

5 risposte

Ordina per: Più utili
  1. Anonimo
    2025-03-27T07:59:11+00:00

    Ciao,

    volendo provare una soluzione tramite l'utilizzo di Power Query.

    Partendo dai dati inseriti in una tabella:

    e trattando i dati da "tabella/intervallo" ho effettuato il raggruppamento delle colonne Nome e Cognome facendo restituire il valore massimo delle colonne Compleanno, Email e Cellulare, ottenendo una tabella di dati come questa:

    Questo il codice M per arrivare a questo risultato:

    let 
    
        Origine = Excel.CurrentWorkbook(){[Name="Tabella1"]}[Content], 
    
        #"Modificato tipo" = Table.TransformColumnTypes(Origine,{{"Nome", type text}, {"Cognome", type text}, {"Compleanno", type date}, {"Email", type text}, {"Cellulare", type text}}), 
    
        #"Raggruppate righe" = Table.Group(#"Modificato tipo", {"Nome", "Cognome"}, {{"Compleanno", each List.Max([Compleanno]), type date}, {"Email", each List.Max([Email]), type text}, {"Cellulare", each List.Max([Cellulare]), type text}}) 
    
    in 
    
        #"Raggruppate righe"
    

    Naturalmente ci sarebbe la problematica di eventuali omonimie (per le quali occorrerebbe un qualche elemento di distinzione) e l'ipotesi che per un qualche nominativo vi fossero più email

    Ciao

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Eleuterio Tedeschi 18,750 Punti di reputazione Moderatore volontario
    2025-03-26T16:09:55+00:00

    Per passare da una cosa del genere:

    a questa:

    possono bastare anche poche righe di codice:

    Sub Raggruppa()
    
    Dim lngRow As Long, lngC As Long
    
        With ActiveSheet
    
            For lngRow = .Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
    
                If .Cells(lngRow - 1, 1).Value = .Cells(lngRow, 1).Value And .Cells(lngRow - 1, 2).Value = .Cells(lngRow, 2).Value Then
    
                    For lngC = 3 To 5
    
                        If .Cells(lngRow, lngC).Value <> "" Then .Cells(lngRow - 1, lngC).Value = .Cells(lngRow, lngC).Value
    
                    Next lngC
    
                    .Cells(lngRow, 1).EntireRow.Delete
    
                End If
    
            Next lngRow
    
        End With
    
    End Sub
    

    Ciao.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2025-03-26T15:37:23+00:00

    ciao

    ok usiamo formule "vintage"

    in E2 da trascinare in basso

    =SE.ERRORE(INDICE($A$2:$A$1000;CONFRONTA(0;INDICE(CONTA.SE(E$1:$E1;$A$2:$A$1000&""););0));"")

    se cambi colonna varia la parte in verde

    ( questa formula necessita di una cella sopra meglio se vuota)

    in F2 e la trascini a destra e in basso

    =SE.ERRORE(INDICE(B$1:B$1000;AGGREGA(15;6;RIF.RIGA($1:$1000)/($A$1:$A$10=$E2)/(B$1:B$1000>0);1));"")

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2025-03-26T15:19:58+00:00

    Excel 2019

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2025-03-26T10:49:23+00:00

    ciao Elena

    che versione hai di excel

    La risposta è stata utile?

    0 commenti Nessun commento