Confronto file

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
mapa3n
Messaggi: 39
Iscritto il: giovedì 11 aprile 2019, 13:04

Confronto file

Messaggio da mapa3n »

Ho due file contenenti nella prima colonna un numero identificativo, nel primo file ci sono 350 record mentre nel secondo ce ne sono 222: vorrei sapere se nel primo file sono compresi tutti i 222 record del secondo file (e, in caso affermativo, quali sono), come posso fare?

Ps L’ordine non è uguale…
Ultima modifica di mapa3n il venerdì 12 febbraio 2021, 20:20, modificato 1 volta in totale.
LibreOffice 6 a 64 bit su Windows 10 Pro
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Confronto file

Messaggio da patel »

fai un ciclo sui valori del primo file, per ogni valore fai un find nel range dei valori del secondo, se il find riesce fai un contrassegno nella cella accanto al valore cercato.
Se puoi copia la colonna del secondo accanto a quella del primo, è più agevole lavorare con un solo file ed un solo foglio.
-------------------
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
mapa3n
Messaggi: 39
Iscritto il: giovedì 11 aprile 2019, 13:04

Re: Confronto file

Messaggio da mapa3n »

...potresti gentilmente fare un esempio?
LibreOffice 6 a 64 bit su Windows 10 Pro
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Confronto file

Messaggio da patel »

Ammettiamo di avere i dati nel foglio1 in col A quelli del file1 e in col B quelli del file2, prova questa macro modificando i valori Lr1 e Lr2

Codice: Seleziona tutto

Sub confronta
  Sh = ThisComponent.Sheets(0)
  LR1 = 11 ' ultima riga colonna A
  LR2 = 5  ' ultima riga colonna B
  oRange = Sh.getCellRangeByName("B1:B" & LR2)
   for r=0 to LR1 - 1
      ean = Sh.GetCellByPosition(0, r).String
      oFoundCell = SimpleSheetSearch(ean, oRange)
      if not IsNull(oFoundCell) then  
        Sh.GetCellByPosition(0, r).CellBackColor = rgb (0,255,0)
      end if
   next
End Sub

Function SimpleSheetSearch(sString, oRange) As Variant
  Dim oDescriptor
  Dim oFound
  REM Create a descriptor from a searchable document.
  oDescriptor = oRange.createSearchDescriptor()
  With oDescriptor
    .SearchString = sString
    .SearchWords = False
    .SearchCaseSensitive = False
  End With
  oFound = oRange.findFirst(oDescriptor)
  SimpleSheetSearch = oFound
End Function
-------------------
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
Rispondi