Come confrontare due fogli di calcolo Excel?


8

Vorrei confrontare due fogli di calcolo Excel

Entrambi hanno le stesse colonne, nello stesso ordine, ma non le stesse righe.

Ho un foglio di calcolo con 1.000 righe e 50 colonne incluso un ID univoco per ogni riga e dati personali (indirizzo, numero di telefono, ecc.).

Voglio confrontarlo con la stessa base estratta un anno fa.

Il mio obiettivo è conoscere tutti i cambiamenti (ad esempio qualcuno che ha cambiato il suo indirizzo).

Ho provato con il foglio di calcolo (come spiegato qui: confronta due file Excel ) ma non funziona perché nel mio "nuovo" file ho nuove righe e ho alcune righe nel vecchio file che non sono nel nuovo.

Foglio di calcolo confronta con il numero di riga di Excel. È possibile confrontare con la prima colonna (ID univoco)?

Ecco un esempio molto semplificato: https://filebin.net/g4w98251y9mfwug6

Ci sono due fogli che rappresentano i miei due fogli di calcolo.

Come puoi vedere entrambi hanno le stesse colonne ma:

  • Ci sono righe che si trovano su entrambi i fogli senza modifiche (tutte le righe sono uguali)
  • Ci sono righe che si trovano su entrambi i fogli ma ci sono cambiamenti (in arancione sul mio esempio)
  • Ci sono righe che sono solo nel foglio di dicembre (non ho bisogno di identificare queste righe)
  • Ci sono righe che sono solo nel foglio di gennaio (in arancione sul mio esempio)

Il colore arancione è esattamente quello che voglio, ma in questo esempio posso farlo manualmente: confrontando dicembre e gennaio. Nei fogli di calcolo reali non posso farlo manualmente poiché ci sono troppe modifiche, dati, linee, colonne, ecc. E lo farò mensilmente.

C'è solo una colonna che non può mai cambiare: la colonna A.


Cordiali saluti, alle persone non piace scaricare file, soprattutto se pubblicati da utenti sconosciuti. Non sto dicendo che non dovresti caricare file e postare link ad essi, ma cerca di far valere la tua domanda da sola - dovrebbe essere possibile capirla senza guardare i file. In realtà credo che la tua domanda vada bene così com'è; Sono stato in grado di rispondere senza guardare il file. Ma, naturalmente, le domande (in particolare quelle di Excel) sono più chiare con i dati di esempio. ... (proseguendo)
Scott,

1
(Proseguendo) ... Preferiamo che pubblichi una rappresentazione testuale dei tuoi dati, come è stato fatto qui e qui ; utilizzare il sito Formato testo come tabella o il sito Generatore di tabelle di testo normale , se lo si desidera. Suggerisco che i dati che ho usato nella mia risposta siano la giusta quantità: una riga in ciascuna delle quattro categorie identificate nella domanda.
Scott,

Esiste un ottimo strumento di confronto di Excel. Può confrontare 2 file Excel e le differenze di disconnessione. Puoi anche provare Araxis Merge, anche se non è gratuito.
Kromster,

Risposte:


4

È conveniente che il tuo foglio di calcolo utilizzi 50 colonne, perché ciò significa che le colonne # 51, # 52, ... sono disponibili. Il problema si risolve abbastanza facilmente con l'uso di una "colonna di supporto", che possiamo inserire in Colonna  AZ(che è la colonna # 52). Darò per scontato che la riga 1 su ognuno dei fogli contiene le intestazioni (le paroleID , Name, Address, ecc) in modo da non c'è bisogno di confrontare coloro (poiché le colonne sono nello stesso ordine in entrambi i fogli). Presumo anche che l' IDidentificatore univoco sia nella colonna  A. (In caso contrario, la risposta diventa un po 'più complicata, ma comunque abbastanza semplice.) Nella cella  AZ2(la colonna disponibile, nella prima riga utilizzata per i dati), inserisci

=B2&C2&D2&…&X2&Y2&Z2&AA2&AB2&AC3&…&AX2

elencando tutte le celle da  B2attraverso  AX2&è l'operatore di concatenazione del testo, quindi se B2contiene Andye C2contiene New York, quindi B2&C2valuterà AndyNew York. Allo stesso modo, la formula sopra concatenerà tutti i dati per una riga (escluso il ID), dando un risultato che potrebbe assomigliare a questo:

AndyNew York1342 Wall StreetInvestment BankerElizabeth2catcollege degreeUCLA…

La formula è lunga e ingombrante da digitare, ma devi farlo solo una volta (ma vedi la nota sotto prima di farlo). L'ho mostrato mentre la AX2colonna  AXè la colonna # 50. Naturalmente, la formula dovrebbe coprire ogni colonna di dati diversa da ID. Più specificamente, dovrebbe includere ogni colonna di dati che si desidera confrontare. Se hai una colonna per l'età della persona, allora (automaticamente?) Sarà diversa per tutti, ogni anno, e non vorrai che questo venga segnalato. E, naturalmente, la colonna helper, che contiene la formula di concatenazione, dovrebbe trovarsi da qualche parte a destra dell'ultima colonna di dati.

Ora seleziona la cella  AZ2e trascinala / riempila verso il basso in tutte le 1000 righe. E farlo su entrambi i fogli di lavoro.

Infine, sul foglio in cui si desidera evidenziare le modifiche (suppongo, da quello che dici, che questo è il foglio più recente), selezionare tutte le celle che si desidera evidenziare. Non so se si tratta solo di Colonna  A, o solo Colonna  Bo dell'intera riga (cioè Aattraverso  AX). Seleziona queste celle nelle righe da 2 a 1000 (o ovunque i tuoi dati possano eventualmente raggiungere) e vai in "Formattazione condizionale" → "Nuova regola ...", seleziona "Usa una formula per determinare quali celle formattare" e inserisci

=IFERROR(VLOOKUP($A2,'December 2017'!$A$2:$AZ$1000,52,FALSE), "") <> $AZ2

nella "Valori di formato in cui questa formula è vera casella". Questo prende il IDvalore dalla riga corrente del foglio corrente ("gennaio 2018") (nella cella  $A2), lo cerca nella colonna  Adel foglio precedente ("dicembre 2017"), ottiene il valore di dati concatenati da quella riga e lo confronta al valore dei dati concatenati su questa riga. (Ovviamente AZè la colonna helper, 52è il numero di colonna della colonna helper ed 1000è l'ultima riga sul foglio "Dicembre 2017" che contiene dati - o un po 'più in alto; ad esempio, è possibile inserire 1200anziché preoccuparsi di essere esatti.) Quindi fare clic su "Formato" e specificare la formattazione condizionale desiderata (ad es. Riempimento arancione).

Ho fatto un esempio con solo poche righe e solo poche colonne di dati, con la colonna helper nella colonna  H:

foglio del mese / anno precedente (dicembre 2017)

foglio del mese / anno corrente (gennaio 2018), con le modifiche evidenziate in arancione

Osserva che la fila di Andy è di colore arancione, perché si è trasferita da New York a Los Angeles e la fila di Debra è di colore arancione, perché è una nuova voce.

Nota:   se una riga potrebbe avere valori come thee reactin due colonne consecutive, e questo potrebbe cambiare l'anno successivo in theree act, questo non verrebbe segnalato come differenza, perché stiamo solo confrontando il valore concatenato e that ( thereact) è lo stesso su entrambi i fogli. Se sei preoccupato per questo, scegli un personaggio che probabilmente non sarà mai tra i tuoi dati (es., |) E inseriscilo tra i campi. Quindi la tua colonna helper conterrà

=B2&"|"&C2&"|"&D2&"|"&…&"|"&X2&"|"&Y2&"|"&Z2&"|"&AA2&"|"&AB2&"|"&AC3&"|"&…&"|"&AX2

con conseguente dati che potrebbero apparire così:

Andy | New York | 1342 Wall Street | Banchiere per gli investimenti | Elizabeth | 2 | cat | laurea | UCLA |…

e la modifica verrà segnalata, perché the|react ≠  there|act. Probabilmente dovresti essere preoccupato per questo, ma, in base a ciò che sono effettivamente le tue colonne, potresti avere motivo di essere sicuro che questo non sarà mai un problema.

Una volta che questo funziona, puoi nascondere le colonne di supporto.


1

Vai alla scheda Visualizza e fai clic su Nuova finestra. Vai alla nuova finestra e fai clic fianco a fianco. È possibile sincronizzare lo scorrimento facendo clic su Scorrimento sincrono. Controlla l'immagine allegata: Fogli Excel affiancati

Lo scorrimento sincrono offre il vantaggio di scorrere contemporaneamente diversi fogli di lavoro. Se si attiva il pulsante, è possibile visualizzare entrambi insieme e scorrere solo un foglio di lavoro.


Ho più di 1 000 righe in ogni foglio di calcolo ... 50 colonne ... Alcuni dati sono molto difficili da confrontare visualizzando (Dati bancari, numero di telefono, date ...) È troppo lungo per procedere in questo modo e c'è un rischio di errore / Omissione dovrò farlo mensilmente .. Non esiste una soluzione più rapida? :(
CILUEA,

Nella stessa vista, è possibile applicare filtri alle colonne. Aggiungi formule di ricerca su uno dei fogli di lavoro.
Cetza Nido,

Non voglio applicare filtri alle colonne ... Ho due fogli di calcolo (una riga = un dipendente) e desidero evidenziare i dati modificati (indirizzo, telefono ...) per ciascun dipendente, tra il vecchio foglio di calcolo (ultimo mese) e il nuovo foglio di calcolo (questo mese) non posso farlo manualmente ogni mese. Sono più di 1 000 righe in ogni foglio di calcolo e 50 colonne
CILUEA

Puoi utilizzare la ricerca O l'indice + la formula di corrispondenza insieme alla formattazione condizionale. È possibile condividere il tuo foglio con alcuni dati di esempio?
Cetza Nido,

Ho modificato il mio post con un esempio e altre spiegazioni .. Grazie!
CILUEA,

1

Ok, quindi puoi fare una delle due cose.

1.- La soluzione OOTB è andare su "Dati" -> "Strumenti dati" -> "Elimina duplicati (Questa è la traduzione diretta dallo spagnolo)". In questo modo devi aggiungere entrambe le tabelle e finirai con solo i dati che sono stati modificati e solo unici. Quindi, per filtrare l'uso CountIfsui tuoi uniqueids, deseleziona ciò che è stato contato come 1. Ordina per uniqueId e vedrai chiaramente cosa è stato cambiato.

2.-Usa questa formula

IF(Index("rangetoreturn";Match("CellofUniqueID";"Rangeofuniqueidtolookinto";0))<>"OneOftheCellthatcontainsthesameasRangeToReturn";"Info Has Changed";"InfoHasNotChanged")

Questa formula può essere trascinata verso destra e verso il basso. Quindi otterrai una tabella con la condizione if, con la stessa quantità di righe della tabella di "CellofUniqueID". La posizione di "Informazioni è cambiata", ti dirà quale cella nell'altra tabella ha cambiato il suo contenuto. Quindi usa questa formula in un nuovo foglio e costruisci una nuova tabella. Quindi guarda i filtri e deseleziona "InfoHasNotChanged" (o qualunque parola tu voglia usare).

"rangetoreturn" e "Rangeofuniqueidtolookinto" provengono da una tabella (o foglio) e "CellofUniqueID" proviene dall'altra tabella.

Saluti


Grazie ! La prima soluzione potrebbe essere la più semplice ma non funziona: (o forse non ho capito bene?) L'opzione "elimina duplicato" eliminerà alcune righe e voglio mantenere tutte le righe in entrambi i fogli Inoltre hanno una colonna sul foglio con dati univoci, tutte le altre colonne hanno molte righe con gli stessi dati all'interno (ad esempio, due persone con la stessa data di nascita o la stessa età ..)
CILUEA

Opzione 2: cosa sono i rangetoreturn / Rangeofuniqueidtolookinto / OneOftheCell che contengono gli strumenti di misura RangeToReturn?
CILUEA,

@CILUEA per l'opzione 2, "rangeofreturn" è l'intervallo di informazioni che si desidera riportare. "Rangeofuniqueidtolookinto" è letteralmente la gamma di uniqueids in cui cercherai il tuo ID unico. "OneOftheCellthatcontainsthesameasRangeToReturn" questa è l'informazione che confronterai con quella che stai riportando, quindi se è diversa te lo dirà. Purtroppo non c'è una risposta comoda a meno che tu non conosca un po 'di VBA, che non sembra.
dmb,

@CILUEA per l'opzione 1, devi creare una nuova tabella da entrambe le tabelle. Quindi eliminare i duplicati. Quindi puoi anche usare CountIfe filtrare per 2 occasioni, quando hai 1 occasione significa che le informazioni non sono cambiate. Infine, ordina per il tuo ID univoco. Inoltre, lancia una bandiera in una nuova colonna, in modo da sapere da quale tabella provengono le tue informazioni. Ora puoi vedere chiaramente quali sono le differenze
dmb

@Scott "Out of the Box" ... Hai fatto un errore lì dovrebbe essere OOTB, mi dispiace che l'inglese non sia la mia prima lingua.
dmb,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.