Pagina 1 di 1
Unire 2 file e cancellare i doppioni
Inviato: sabato 16 settembre 2023, 10:27
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
Re: Unire 2 file e cancellare i doppioni
Inviato: sabato 16 settembre 2023, 11:29
da patel
Unisci i 2 file e ordina in base alla colonna A poi applica questo
https://help.libreoffice.org/latest/it/ ... DbPAR=CALC
Re: Unire 2 file e cancellare i doppioni
Inviato: sabato 16 settembre 2023, 16:51
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
Re: Unire 2 file e cancellare i doppioni
Inviato: sabato 16 settembre 2023, 17:39
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
Re: Unire 2 file e cancellare i doppioni
Inviato: sabato 16 settembre 2023, 19:40
da Ricsca
E come si fa?
No saprei a dove iniziare

Re: Unire 2 file e cancellare i doppioni
Inviato: sabato 16 settembre 2023, 20:53
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 (52.87 KiB) Visto 1710 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:
“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 (55.63 KiB) Visto 1710 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 |
.
Re: Unire 2 file e cancellare i doppioni
Inviato: sabato 16 settembre 2023, 21:08
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.
Re: Unire 2 file e cancellare i doppioni
Inviato: sabato 16 settembre 2023, 22:11
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
Re: Unire 2 file e cancellare i doppioni
Inviato: domenica 17 settembre 2023, 9:16
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
Re: Unire 2 file e cancellare i doppioni
Inviato: domenica 17 settembre 2023, 14:27
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.
Re: Unire 2 file e cancellare i doppioni
Inviato: domenica 17 settembre 2023, 18:52
da patel
Non so risponderti, io seleziono sempre la prima cella della riga col titolo per fare l'ordinamento.
Re: Unire 2 file e cancellare i doppioni
Inviato: domenica 17 settembre 2023, 21:23
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.
Re: Unire 2 file e cancellare i doppioni
Inviato: lunedì 18 settembre 2023, 7:21
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.
Re: Unire 2 file e cancellare i doppioni
Inviato: lunedì 18 settembre 2023, 8:59
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.