Unire 2 file e cancellare i doppioni
Unire 2 file e cancellare i doppioni
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
			
			
									
						
							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
			
						Re: Unire 2 file e cancellare i doppioni
Unisci i 2 file e ordina in base alla colonna A poi applica questo
https://help.libreoffice.org/latest/it/ ... DbPAR=CALC
			
			
									
						
							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
			
						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
Re: Unire 2 file e cancellare i doppioni
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
			
							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 73 volte
 
 
OpenOffice 4.1.11 su Windows 11
			
						Re: Unire 2 file e cancellare i doppioni
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
			
						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
Re: Unire 2 file e cancellare i doppioni
E come si fa?
No saprei a dove iniziare
			
			
									
						
							No saprei a dove iniziare
OpenOffice 4.1.11 su Windows 11
			
						Re: Unire 2 file e cancellare i doppioni
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).
. .
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:
“XXX” la sigla di riscontro d’interesse (sostituibile con altra di preferenza).
Formula chiave cella A2 ricopiabile in basso quanto serve si adatta automaticamente.
. .
Impostare filtro automatico e filtrare i soli riscontri “XXX” di colonna A.
.
			
							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).
. .
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";"")Formula chiave cella A2 ricopiabile in basso quanto serve si adatta automaticamente.
. .
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 70 volte
 
 
					Ultima modifica di lucky63 il sabato 16 settembre 2023, 21:08, modificato 1 volta in totale.
									
			
						
										
						- Lanfranchi G.Luigi
 - Messaggi: 116
 - Iscritto il: venerdì 12 aprile 2019, 16:54
 
Re: Unire 2 file e cancellare i doppioni
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
			
						- Lanfranchi G.Luigi
 - Messaggi: 116
 - Iscritto il: venerdì 12 aprile 2019, 16:54
 
Re: Unire 2 file e cancellare i doppioni
Comunque ecco un semplice codice che cancella i doppioni.
Spero di aver capito bene quello che ti serve.
Vedi anche l'allegato.
Ciao
			
							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 SubCiao
- Allegati
 - 
			
		
		
				
- prova.ods
 - (21.46 KiB) Scaricato 54 volte
 
 
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
			
						Re: Unire 2 file e cancellare i doppioni
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
			
						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
- Lanfranchi G.Luigi
 - Messaggi: 116
 - Iscritto il: venerdì 12 aprile 2019, 16:54
 
Re: Unire 2 file e cancellare i doppioni
Ciao Patel.
Il codice da te proposto non mi funzionava.
Mi sono permesso di modificarne alcuni passaggi.
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.
			
			
									
						
							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 SubSbaglio qualche cosa ?
Grazie.
LibreOffice ver. 7.5.3.2 - Windows 10 Pro 64 bit
			
						Re: Unire 2 file e cancellare i doppioni
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
			
						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
- Lanfranchi G.Luigi
 - Messaggi: 116
 - Iscritto il: venerdì 12 aprile 2019, 16:54
 
Re: Unire 2 file e cancellare i doppioni
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.
			
			
									
						
							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
			
						Re: Unire 2 file e cancellare i doppioni
Evidentemente facciamo 2 procedure diverse, io seleziono la prima cella della riga col titolo e poi Dati, Ordina.
Nel campo colonna mi compare TITOLO.
			
			
									
						
							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
			
						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
- Lanfranchi G.Luigi
 - Messaggi: 116
 - Iscritto il: venerdì 12 aprile 2019, 16:54
 
Re: Unire 2 file e cancellare i doppioni
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.
			
			
									
						
							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
			
						
