Nagyban minden annyira más és egyszerű - táblázatkezelőben biztosan

Bevezetés a tömbképletek világába - I. rész

2015. augusztus 30. - Office Guru

Tömbképletek, tömbfüggvények. Emlékeimből rémlik, hogy milyen hosszan szokták ezeket taglalni a szakirodalomban, oktatásokon, de én most nem tervezem, hogy bármiféle leírást próbáljak utánozni vagy bemásolni, hiszen valószínűleg ezeket a segédanyagokat bárki bármikor meg tudja találni magának, úgyhogy csak néhány szóban bemutatnám őket, hiszen ezeknek az ismerete létfontosságú ahhoz, hogy azt az apró lépcsőfokot meg tudjuk ugorni és már haladó Excel-felhasználóknak hívhassuk magunkat.

A következő példán tökéletesen látni fogjuk, hogy miről is van szó alapesetben, hiszen ha a lenti táblában a költség értékét szeretnénk meghatározni (hangsúlyozom, ez a tömbképletek egyik legegyszerűbb felhasználási módja), akkor szinte mindenki valószínűleg csak összeszorozza G és H oszlopokat, majd lehúzza az eredményt és kész is.

harmincegy.jpgDe mi lenne, ha tömbképlettel próbálkoznánk, hiszen ezek a képletek egyszerre több kalkulációt is el tudnak végezni és megspórolnának nekünk egy kis időt? Jelöljük ki a Költség oszlopot, I3-tól I7-ig, majd a Képlet (Formula) mezőbe írjuk be a következőt:

=G3:G7*H3*H7

Ezután nyomjuk le minden tömbképletek legfontosabb billentyűkombinációját, a CTRL+SHIFT+ENTER-t, amely után az Excel kapcsos zárójelek közé teszi képletünket ({ } - ezzel jelezve, hogy tömbképletről van szó) és kitölti az I oszlopot az eredményeinkkel. Ugye, hogy milyen egyszerű és hatékony?

harmincketto.jpg

harmincharom.jpgAnno a Microsoft úgy reklámozta ezeket a képleteket, hogy tömbképletekkel kalkulációs fájlunk mérete kisebb lesz és biztonságosabb is lesz a használata, hiszen nem lehet csak úgy egyszerűen megváltoztatni egy elemét a tömbképletünknek. Én azonban azt mondanám, hogy a legfontosabb érv mellettük az, hogy vannak olyan problémák, amelyeket "normál" módszerekkel, függvényekkel már nem lehet megoldani.

És ez főként azért van így, mert bár tömbképleteknek hívják őket, egyetlen egy cellában is használhatóak egyetlen eredmény elérésére, ahogy a következő példában látszani is fog.

harmincnegy.jpgHa ki szeretnénk számolni az egy dolgozóra jutó költség összegét, valószínűleg ismét csak képletezgetnénk egy egyenlőségjel után, ami persze érthető is, hiszen egy ilyen egyszerű probléma esetén ki a fene szórakozik tömbképletekkel, viszont a logikát megérteni jó lesz, hiszen ha egy tetszőleges cellába az alábbi képletet írjuk be és nyomunk utána CTRL+SHIFT+ENTER-t, nézzük csak mit kapunk:

=(SUM(G3:G7*H3:H7))/K3

Először tehát létrehozza a két tömbünk szorzatát, az eredményeket összegzi, majd elosztja K3 cella tartalmával. Fantasztikus és még csak az utunk legelején járunk, hiszen a tömbképletek legnagyobb hasznát ott vesszük, ahol már más megoldás nem nagyon segíthet.

Például adjuk össze a példában látható számokat a SUM függvény felhasználásával.

harmincot.jpgUgye, hogy nem is olyan egyszerű? Az a fránya #N/A eléggé megakasztja a SUM működését, amit viszont a következő tömbképlettel könnyedén ki tudunk játszani:

=SUM(IF(ISERROR(N3:N9),"",N3:N9))

Ezt ugyanis egyetlen cellába beírva (CTRL+SHIFT+ENTER-t sose felejtsük el) kapásból megkaphatjuk az #N/A (vagy egyéb ERROR-értéket tartalmazó) érték nélküli szummánkat, hiszen ahogy látható, a fenti formula az N3:N9 tömb minden ERROR-eredményét lecseréli "semmire", majd ezeket a számokat össze is adja.

harminchat.jpgDe hogy még ezt is megspékeljük egy kis elmélkednivalóval, legyen az a feladat, hogy még mindig a fenti táblánál maradva, egyetlen szót írassunk ki eredménycellánkba, mégpedig azt, hogy szummánk eredménye páros vagy páratlan szám-e. Ehhez a MOD függvényre lesz majd szükségünk, amely roppant egyszerű célt szolgál, a paraméterként beadott osztandó és osztó alapján kiírja nekünk az osztás műveletének maradékát - ergó ha ez a maradék nulla, páros számról beszélünk, ha nem, páratlanról. És ezt kellene még majd beágyaznunk a fenti tömbképletbe, hogy a végeredményünk tényleg csak egy szó legyen.

Kezdjük az elejéről, azaz mondjuk meg egy számról, hogy az páros vagy páratlan-e:

=IF(MOD(A1,2)=0,"Páros","Páratlan")

Mit is csinál ez? Ha az A1 cellában lévő számot elosztjuk kettővel és nulla lesz a maradék, akkor az páros, ellenkező esetben páratlan. Akkor most ezt hozzuk össze a korábbi tömbképlettel valahogy így:

=IF(MOD(SUM(IF(ISERROR(N3:N9),"",N3:N9)),2)=0,"Páros","Páratlan")

Ha jól megnézzük, mit is csináltunk itt, látható, hogy egyszerűen csak az első képletünkben található A1 cellát helyettesítettük a teljes korábbi szummás tömbképletünkkel és így értük el az eredményünket:

harminchet.jpg
Ezzel zárom is a tömbképletek világába bevezető első posztomat, a következő részben már komplexebb tömbképletekkel fogunk megismerkedni és kihívást jelentő feladatokon mutatom meg, hogy mi mindenre képesek lehetünk, ha jól megtanuljuk ezen képletek használatát.

A bejegyzés trackback címe:

https://officeguru.blog.hu/api/trackback/id/tr227747078

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Atzs · https://adatrendezo.hu 2015.08.31. 09:46:15

Első képlet el van írva, =G3:G7*H3*H7 helyett =G3:G7*H3:H7

Jól érthető, jól felépített, hasznos poszt. Köszönjük.

Atykon Troll 2015.08.31. 18:40:00

Ezek a cikkek nekem nagyon tetszenek. Köszi, hogy megírod/megosztod õket.

vizsla_barat 2015.09.01. 01:09:02

Mondjuk az N/A hibát mar az eloző képletnek ki kellett volna küszöbölni

Atzs · https://adatrendezo.hu 2015.09.01. 07:07:53

@vizsla_barat: Szerintem csak akkor, ha a szerző a posztokat azoknak szánja, akiknek nem nagyon mond újdonságot. Feltételezem, hogy az olvasók zömének sokkal érthetőbb így, hogy látható a folyamat, ahogyan egy ilyet fel kell építeni.