Unire 2 file e cancellare i doppioni

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Avatar utente
Ricsca
Messaggi: 28
Iscritto il: lunedì 27 dicembre 2021, 16:41

Unire 2 file e cancellare i doppioni

Messaggio da Ricsca »

Ho 2 file calc con una lista di professionisti e dei campi aggiuntivi nelle varie colonne a fianco (nome, anno, email, iscrizione ecc.).
Un file ha poco più di 38.000 righe e l'altro poco più di 10.000
I professionisti nel secondo file hanno più informazioni (quini colonne) e devo sostituirli a quelli del primo file.
Avete idee su come potrei fare?
La prima cosa che mi viene in mente sarebbe quella di:

- Unire i 2 file;
- Ordinare i le righe della colonna A per ordine alfabetico (le colonne b/c/d ecc. rimangono correttamente associate alla colonna a?);

C'è un modo per trovare tutte le righe A doppie e cancellarne 1? Dovrei però cancellare solo le righe del primo file quindi dovrei aggiungere qualcosa (magari una nuova colonna) e se esiste quindi avere un'opzione che dice cancellare tutte le righe doppie che hanno la colonna P oppure...

Grazie
OpenOffice 4.1.11 su Windows 11
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Unire 2 file e cancellare i doppioni

Messaggio da patel »

Unisci i 2 file e ordina in base alla colonna A poi applica questo
https://help.libreoffice.org/latest/it/ ... DbPAR=CALC
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Avatar utente
Ricsca
Messaggi: 28
Iscritto il: lunedì 27 dicembre 2021, 16:41

Re: Unire 2 file e cancellare i doppioni

Messaggio da Ricsca »

Ho provato ma non sono riuscito a fare quello che mi serve...
Allego un file demo...
In pratica ho la necessità che le ultime 3 righe (12-13-14) mi si sostituiscono alle prime 3 righe (1-2-3)
Grazie
Allegati
prova.ods
(12.02 KiB) Scaricato 65 volte
OpenOffice 4.1.11 su Windows 11
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Unire 2 file e cancellare i doppioni

Messaggio da patel »

Non avevo letto bene, dopo l'ordinamento occorre una macro che elimina le righe col doppione in col A e in cui la colonna 4 non è popolata
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Avatar utente
Ricsca
Messaggi: 28
Iscritto il: lunedì 27 dicembre 2021, 16:41

Re: Unire 2 file e cancellare i doppioni

Messaggio da Ricsca »

E come si fa?
No saprei a dove iniziare :(
OpenOffice 4.1.11 su Windows 11
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 3069
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Unire 2 file e cancellare i doppioni

Messaggio da lucky63 »

Una possibile soluzione senza macro.
Aggiungere due colonne iniziali cui assegni intestazione di preferenza e in colonna B indichi poi:
- numero file 1 (x elenco originario in cui devi fare sostituzioni)
- numero file 2 (x elenco originario delle sostituzioni da fare).
.
01.png
01.png (52.87 KiB) Visto 1335 volte
.
Con mouse posizionato in colonna C imposti ordine dati:
- ordinamento 1 colonna C crescente
- ordinamento 2 colonna B crescente.

Con i dati così ordinati imposti in cella A2 la formula:

Codice: Seleziona tutto

=SE(O(E(B2=1;B3=1);E(B2=2;B1=1));"XXX";"")
“XXX” la sigla di riscontro d’interesse (sostituibile con altra di preferenza).
Formula chiave cella A2 ricopiabile in basso quanto serve si adatta automaticamente.
.
02.png
02.png (55.63 KiB) Visto 1335 volte
.
Impostare filtro automatico e filtrare i soli riscontri “XXX” di colonna A.
 Editato:  N.B.: ultima riga elenco (in esempio ultima immagine - riga 14 è comunque valida - Ricordarsi di copiarla dopo il filtraggio dati 
.
Allegati
prova01.ods
(19.86 KiB) Scaricato 62 volte
Ultima modifica di lucky63 il sabato 16 settembre 2023, 21:08, modificato 1 volta in totale.
Avatar utente
Lanfranchi G.Luigi
Messaggi: 116
Iscritto il: venerdì 12 aprile 2019, 16:54

Re: Unire 2 file e cancellare i doppioni

Messaggio da Lanfranchi G.Luigi »

Si può fare anche in macro ma il campo che determina il doppione deve essere inequivocabile. I nomi propri non lo sono e ci possono essere clienti omonimi, col rischio di essere erroreamente cancellati. Un codice fiscale, per esempio, sarebbe più idoneo.
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
Avatar utente
Lanfranchi G.Luigi
Messaggi: 116
Iscritto il: venerdì 12 aprile 2019, 16:54

Re: Unire 2 file e cancellare i doppioni

Messaggio da Lanfranchi G.Luigi »

Comunque ecco un semplice codice che cancella i doppioni.
Spero di aver capito bene quello che ti serve.

Codice: Seleziona tutto

Sub CancellaDoppioni

Sheet = ThisComponent.CurrentController.ActiveSheet
Cell = Sheet.getCellRangeByName("A1")
Cursor = sheet.createCursorByRange(cell)
Cursor.gotoEnd() 
FineCiclo = Cursor.RangeAddress.EndRow +1 ' trovo l'ultima riga
 
For Ciclo = 1 to FineCiclo
  Controllo =  Sheet.getCellRangeByName("D"&Ciclo).string
   if Controllo= "" then
       Nome1 =  Sheet.getCellRangeByName("A"&Ciclo).string
       For CicloInterno = 1 to FineCiclo
          Controllo =  Sheet.getCellRangeByName("D"&CicloInterno).string
          Nome2 =  Sheet.getCellRangeByName("A"&CicloInterno).string
           if Nome1=Nome2 and controllo<>"" then
             Sheet.getCellRangeByName("A"&Ciclo).String = ""
             Sheet.getCellRangeByName("B"&Ciclo).string = ""
             Sheet.getCellRangeByName("C"&Ciclo).string = ""
             exit for    
         end if
      next
  end if
next
  
End Sub
Vedi anche l'allegato.
Ciao
Allegati
prova.ods
(21.46 KiB) Scaricato 50 volte
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Unire 2 file e cancellare i doppioni

Messaggio da patel »

Prova anche questa, ma prima di lanciarla fai l'ordinamento in base alla colonna A

Codice: Seleziona tutto

Sub Eliminadoppie
oSheet = ThisComponent.Sheets(0)
col=0  ' colonna A
RIGA=1
Do
  If  oSheet.getCellByPosition(3,RIGA).string <> ""  Then
     if StrComp(oSheet.getCellByPosition(col,RIGA).string,oSheet.getCellByPosition(col,RIGA-1).string,0)=0 then
        oSheet.Rows.removeByIndex(RIGA-1, 1)
     end if
   else
     RIGA = RIGA + 1
     if oSheet.getCellByPosition(col,RIGA).string = "" then exit do       
   End If
Loop
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Avatar utente
Lanfranchi G.Luigi
Messaggi: 116
Iscritto il: venerdì 12 aprile 2019, 16:54

Re: Unire 2 file e cancellare i doppioni

Messaggio da Lanfranchi G.Luigi »

Ciao Patel.
Il codice da te proposto non mi funzionava.
Mi sono permesso di modificarne alcuni passaggi.

Codice: Seleziona tutto

Sub Eliminadoppie
oSheet = ThisComponent.Sheets(0)
col=0  ' colonna A
RIGA=1
Do

  if oSheet.getCellByPosition(col,RIGA).string = "" then exit do   ' modificato  
  
  If  oSheet.getCellByPosition(3,RIGA).string = ""  Then ' modificato
     if StrComp(oSheet.getCellByPosition(col,RIGA).string,oSheet.getCellByPosition(col,RIGA-1).string,0)=0 then
        oSheet.Rows.removeByIndex(RIGA, 1) ' modificato
     end if
     
   End If  
   
    RIGA = RIGA + 1 ' modificato
   
Loop

End Sub
Gia che ci siamo posso chiederti perchè, se seleziono la prima colonna dalla seconda cella (A2) a scendere quando faccio fare il riordino crescente mi coinvolge, nel riordino, anche la cella A1 ?
Sbaglio qualche cosa ?
Grazie.
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Unire 2 file e cancellare i doppioni

Messaggio da patel »

Non so risponderti, io seleziono sempre la prima cella della riga col titolo per fare l'ordinamento.
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Avatar utente
Lanfranchi G.Luigi
Messaggi: 116
Iscritto il: venerdì 12 aprile 2019, 16:54

Re: Unire 2 file e cancellare i doppioni

Messaggio da Lanfranchi G.Luigi »

Ma così facendo il titolo viene spostato in fondo nel riordino perchè comincia con la T (titolo).
Volevo evitare questo selezionando dalla seconda cella in poi ma Calc sposta, nel riordinare, anche la prima.
Sembra che Calc riordini tutte le celle adiacenti comprese quelle superiori.
Se inserisco una riga vuota dopo il titolo questo non viene più spostato nel riordino.
Grazie.
Ciao.
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Unire 2 file e cancellare i doppioni

Messaggio da patel »

Evidentemente facciamo 2 procedure diverse, io seleziono la prima cella della riga col titolo e poi Dati, Ordina.
Nel campo colonna mi compare TITOLO.
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Avatar utente
Lanfranchi G.Luigi
Messaggi: 116
Iscritto il: venerdì 12 aprile 2019, 16:54

Re: Unire 2 file e cancellare i doppioni

Messaggio da Lanfranchi G.Luigi »

Tutto chiarito.
Io usavo la seconda scelta "Ordina in modo creescente" e non "ordina".
Usando ordina il titolo rimane dove è.
Grazie mille per la pazienza.
Ciao.
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
Rispondi