Comparatie data intre doua sheeturi

Comparatie data intre doua sheeturi

Mesajde Lanicu » Lun Iun 07, 2010 10:51 am

Buna ziua.

Dupa indelungi ore de "prins urechile" prin diverse fisiere, am hotarat sa apelez la bunavointa dvs. cu speranta ca poate asa am reusesc sa ma luminez si uite asa creste IQ pe Romania. :)

Problema mea se prezinta in felul urmator :

- Am doua sheeturi ale aceluiasi workbook care contin date formatate in acelasi mod.
- Unul din sheeturi contine mai multe date decat celalalt (In fapt este o fisa de cont, un sheet contine date la data fizica de 25/05/2010, iar altul la 31/05/2010)
- Numarul de randuri din fisiere este variabil, numarul de coloane de regula este fix, pot aparea cazuri in care sa varieze dar ma rog sa zicem ca il fac sa fie fix.
- Mentionez ca un sheet are in medie intre 1500 si 3000 de randuri, iar numarul diferentelelor intre cele 2 sheeturi este de cateva zeci poate chiar peste o suta.

Problema mea este sa gasesc un macro/functie/mai multe functii care sa imi evidentieze cumva ( sa le coloreze, sa le "scuipe"in alt sheet) informatiile care au aparut in plus intre cele doua date. Cu alte cuvinte ce are sheetul 2 in plus fata de sheetul 1. Ma intereseaza sa imi returneze/sublinieze tot randul nu doar o celula.

Ce spuneti, credeti ca exista vre-o solutie inteligenta sau tot punctarea manuala ma asteapta?

P.S. Probabil din fisierul atasat se va intelege mai bine dilema mea, niciodata nu m am priceput la explicatii

Cu multe,sincere si calduroase multumiri.

Un angajat ce poate pleca in concediu dupa ce rezolva blestemata asta de problema :)
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Lanicu
 
Mesaje: 2
Membru din: Lun Iun 07, 2010 9:46 am
Localitate: Bucuresti

Re: Comparatie data intre doua sheeturi

Mesajde gecs » Lun Iun 07, 2010 12:29 pm

In fisierul atasat ai o varianta cu formule (de fapt o singura formula, da' CE FORMULA! ;))
Pasii au fost urmatorii:
- Transformat range-ul de valori din foaia "initial" in tabel (Table1 - e importanta denumirea);
- Transformat range-ul de valori din foaia "dupa" in tabel (Table2 - e importanta denumirea);
- Adaugata o coloana (am numit-o "Diferenta") la Table2 ;
- Pe primul rand cu date al lui Table2, pe coloana "Diferenta" scrisa formula - formula se va autocompleta pe toata coloana dupa ce a fost confirmata cu Enter;
- Selectat range-ul de date al intregului Table2 (fara header, incepand cu A2) -> Conditional Formatting -> New Rule... -> Use a formula to determine whic cells to format -> se foloseste formula "=$AS2=0" (fara ghilimele, evident) se alege formatul dorit (eu am schimbat doar fondul celulelor in galben) -> OK.
Formula folosita numara cate aparitii ale inregistrarii curente din Table2 exista in Table1, facand comparatia camp cu camp - daca rezultatul e 0, evident ca inregistrarea respectiva nu exista in Table1.

Concediu placut!
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Avatar utilizator
gecs
Moderator
Moderator
 
Mesaje: 2311
Membru din: Sâm Aug 15, 2009 10:05 am
Localitate: Bucuresti

Re: Comparatie data intre doua sheeturi

Mesajde Dr.Excel » Lun Iun 07, 2010 12:46 pm

Wonderfull :P

care era limita la nr de caractere dintr-o formula?
Dr.Excel
MCT, MCITP
MOS Master Instructor
IT Learning
Avatar utilizator
Dr.Excel
Site Admin
Site Admin
 
Mesaje: 1915
Membru din: Sâm Ian 24, 2009 1:45 pm
Localitate: Bucharest

Re: Comparatie data intre doua sheeturi

Mesajde Dr. Cloud » Lun Iun 07, 2010 12:52 pm

Cred ca trebuie sa vorbim la Microsoft sa o schimbe.
gecs tocmai a stabilit un nou record pe forum.
Pentru cei care nu au vazut-o:

=SUMPRODUCT(--(Table2[[#This Row];[Document]]=Table1[Document]);--(Table2[[#This Row];[Data]]=Table1[Data]);--(Table2[[#This Row];[Cod TVA]]=Table1[Cod TVA]);--(Table2[[#This Row];[Abgeschlossenes Jahr]]=Table1[Abgeschlossenes Jahr]);--(Table2[[#This Row];[Cod perioada]]=Table1[Cod perioada]);--(Table2[[#This Row];[Valuta]]=Table1[Valuta]);--(Table2[[#This Row];[Suma valuta]]=Table1[Suma valuta]);--(Table2[[#This Row];[Suma]]=Table1[Suma]);--(Table2[[#This Row];[Betrag in alternativer Währung]]=Table1[Betrag in alternativer Währung]);--(Table2[[#This Row];[Text inregistrare]]=Table1[Text inregistrare]);--(Table2[[#This Row];[Grupă produse / centru de cost]]=Table1[Grupă produse / centru de cost]);--(Table2[[#This Row];[Magazin]]=Table1[Magazin]);--(Table2[[#This Row];[Purtator de costuri]]=Table1[Purtator de costuri]);--(Table2[[#This Row];[Cupon]]=Table1[Cupon]);--(Table2[[#This Row];[Dokument]]=Table1[Dokument]);--(Table2[[#This Row];[Dokumentdatum]]=Table1[Dokumentdatum]);--(Table2[[#This Row];[Nr. crt.]]=Table1[Nr. crt.]);--(Table2[[#This Row];[Nivel]]=Table1[Nivel]);--(Table2[[#This Row];[Tip contabilizare]]=Table1[Tip contabilizare]);--(Table2[[#This Row];[Buchungsart]]=Table1[Buchungsart]);--(Table2[[#This Row];[Contabilizare credit]]=Table1[Contabilizare credit]);--(Table2[[#This Row];[Corectura]]=Table1[Corectura]);--(Table2[[#This Row];[Nivel contabilizare]]=Table1[Nivel contabilizare]);--(Table2[[#This Row];[Cod perioada2]]=Table1[Cod perioada2]);--(Table2[[#This Row];[Valuta3]]=Table1[Valuta3]);--(Table2[[#This Row];[Suma valuta4]]=Table1[Suma valuta4]);--(Table2[[#This Row];[Menge]]=Table1[Menge]);--(Table2[[#This Row];[Betrag in alternativer Währung5]]=Table1[Betrag in alternativer Währung5]);--(Table2[[#This Row];[Triangulation]]=Table1[Triangulation]);--(Table2[[#This Row];[Curs]]=Table1[Curs]);--(Table2[[#This Row];[Curs de schimb alternativ]]=Table1[Curs de schimb alternativ]);--(Table2[[#This Row];[Abgeschlossenes Jahr6]]=Table1[Abgeschlossenes Jahr6]);--(Table2[[#This Row];[Numar declaratie vamala]]=Table1[Numar declaratie vamala]);--(Table2[[#This Row];[Grupă produse / centru de cost7]]=Table1[Grupă produse / centru de cost7]);--(Table2[[#This Row];[Magazin8]]=Table1[Magazin8]);--(Table2[[#This Row];[Purtator de costuri9]]=Table1[Purtator de costuri9]);--(Table2[[#This Row];[Cupon10]]=Table1[Cupon10]);--(Table2[[#This Row];[Dimensiune IC - Inter Company]]=Table1[Dimensiune IC - Inter Company]);--(Table2[[#This Row];[Dimensiune 6]]=Table1[Dimensiune 6]);--(Table2[[#This Row];[Zurückgesetzt]]=Table1[Zurückgesetzt]);--(Table2[[#This Row];[Tracenummer]]=Table1[Tracenummer]);--(Table2[[#This Row];[Cont analitic]]=Table1[Cont analitic]);--(Table2[[#This Row];[Denumire cont]]=Table1[Denumire cont]);--(Table2[[#This Row];[Text inregistrare11]]=Table1[Text inregistrare11]))


Deci...WOW
Dr. Cloud
 
Mesaje: 3329
Membru din: Mar Oct 02, 2012 11:19 am

Re: Comparatie data intre doua sheeturi

Mesajde Dr.Excel » Lun Iun 07, 2010 12:54 pm

nu a scris-o de mana, a folosit copy/paste. Oricum incomod

Cine ii face lui gecs o formula care sa genereze automat formula de mai sus

Stiu cine .. gecs? :lol:
Dr.Excel
MCT, MCITP
MOS Master Instructor
IT Learning
Avatar utilizator
Dr.Excel
Site Admin
Site Admin
 
Mesaje: 1915
Membru din: Sâm Ian 24, 2009 1:45 pm
Localitate: Bucharest

Re: Comparatie data intre doua sheeturi

Mesajde gecs » Lun Iun 07, 2010 12:55 pm

Pai conform Excel specifications and limits sunt admise 8192 de caractere. Formula mea are "doar" 2836, asa ca mai "incap" vreo doua tabele de comparat ;)
Avatar utilizator
gecs
Moderator
Moderator
 
Mesaje: 2311
Membru din: Sâm Aug 15, 2009 10:05 am
Localitate: Bucuresti

Re: Comparatie data intre doua sheeturi

Mesajde gecs » Lun Iun 07, 2010 12:57 pm

N-am folosit copy-paste, dar nici de mana n-am scris decat "=SUMP",[Tab], parantezele, minusurile, virgulele si egalurile - restul click-uri ;)
Avatar utilizator
gecs
Moderator
Moderator
 
Mesaje: 2311
Membru din: Sâm Aug 15, 2009 10:05 am
Localitate: Bucuresti

Re: Comparatie data intre doua sheeturi

Mesajde Lanicu » Lun Iun 07, 2010 2:19 pm

Wow.. mai mult nu am ce sa zic, decat vorba la un post de televiziune manelistic "Jos palaria"

Intentionam sa rasplatesc autorul cu 2 beri de litera a formulei izbavitoare, acum trebuie sa ma gandesc la altceva, nu de alta dar imi e mila de ficatul lui :D

O zi minunata la toata lumea, cel putin a mea sigur va fi.

Multam inca o data Gecs

Laurentiu
Lanicu
 
Mesaje: 2
Membru din: Lun Iun 07, 2010 9:46 am
Localitate: Bucuresti

Re: Comparatie data intre doua sheeturi

Mesajde gecs » Lun Iun 07, 2010 2:29 pm

Cu placere. Formula nu cred ca mi-a luat mai mult de 5 minute s-o "scriu", pentru ca toate referintele structurate se completeaza automat la click in celula, sau pe header-ul coloanei...

Cat despre bere, daca e ca asta, e suficienta doar una :D
Avatar utilizator
gecs
Moderator
Moderator
 
Mesaje: 2311
Membru din: Sâm Aug 15, 2009 10:05 am
Localitate: Bucuresti


Înapoi la Visual Basic for Application (VBA) cu Excel - Intrebari tehnice

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 1 vizitator