Apró, de nagyon hasznos Excel trükk

Bárki, aki nyilvántartásokkal vagy adatbázisokkal foglalkozik, illetve Excel-lel (is) dolgozik, gyakran belefut abba a feladatba, amikor két adathalmaz esetünkben, két vagy több cella eredményeit kell összehasonlítani, hogy egyeznek-e.

Ezt a problémát természetesen meg lehet oldani szemrevételezéssel is, ha mondjuk öt-tíz sorunk van mindössze, de nagyobb eredményhalmaznál már hosszadalmas volna, sok-sok hibalehetőséggel.

Inkább írjunk egy függvényt erre a célra, amelyet csak „le kell húznunk” a cellákon és máris megkapjuk az eredményhalmazok különbségét.

Készítettem egy demo-t excel fájlt, amelyben - a Microsoft AdventureWorks demo adatbázisából származó - e-mail címeket hasonlítok össze egymással.

Két vagy több oszlop összehasonlításánál az első és a legfontosabb követelmény, hogy ugyanúgy legyenek rendezve.

 

Látható, hogy a B és F oszlop tartalma azonos, egészen a 10. sorig. Itt becsempésztem egy hibát, az F12-es sorban csak egy e-mail cím van, míg az F13-ban van a B12-nek megfelelő sorunk.


Nekünk olyan függvényt kellene írnunk, hogy ha egyezik az azonos sorban lévő e-mail cím illetve ID, e-mail cím együttes, akkor írjon egy „OK”-t a C illetve D cellába, ha nem akkor azt, hogy „Hibás sor”-t, így rögtön látjuk a hibás sorokat.

Van egy HA() függvényünk, amelyet felhasználhatunk erre a célra. Ennek az általános alakja:

 

=HA(logikai_vizsgálat; [érték_ha_igaz]; [érték_ha_hamis])

 

Kezdjük az egyszerűbbel! A B oszlop e-mail címeit hasonlítsuk össze az F oszlopéval.

Esetünkben (Ha az első sor a fejléc, akkor a C2-es mezőbe kell írni a feltételt, és ebből „húzzuk le”):

 

Magyar nyelvű Excel-ben: =HA(B2=F2; "OK";"Hibás sor")

Angol nyelvű Excel-ben: =IF(B2=F2; "OK";"Hibás sor")

 

Az első esetben, azaz a C oszlopban a C12-es cellában "OK" jelenik meg, pedig az F12-es e-mail-nek nincs is azonosítója, de mivel csak az e-mail címeket vizsgáltuk, ez így korrekt.

Szeretnénk azt vizsgálni, hogy az EmailAdressID és az E-mail együttesen egyezik? Csak kicsivel bonyolultabb a megoldás :)
Mindössze meg kell mondanunk neki, hogy mit mivel kell összehasonlítani, tehát az A oszlopot az E-vel és a B-t az F-fel. Itt logikai ÉS –t (AND-et) használunk, amely csak akkor ad vissza igaz értéket, ha minden feltétele igazzá válik. Tehát:

Magyar nyelvű Excel-ben: = ÉS(A2=E2; B2=F2)

Angol nyelvű Excel-ben: = AND(A2=E2; B2=F2)

 

Most ezt a kifejezést írjuk be az előbbi függvényünkbe és készen is vagyunk:

 

Magyar nyelvű Excel-ben: =HA(ÉS(A2=E2; B2=F2) ; "OK"; "Hibás sor")

Angol nyelvű Excel-ben: =IF(AND(A2=E2; B2=F2) ; "OK"; "Hibás sor")

 

Látható, hogy így már azonnal kiadja a hibás sort az ovidiu0@adventure-works.com e-mail cím esetén is. A javítása egyszerű, eltávolítjuk és a maradék sorokat feljebb mozgatjuk és újra alkalmazzuk rá a függvényt.

A Demo fájlt innen tudod letölteni.

Megjegyzés Hozzáfűzése