A tömbképletek olyan képletek, amelyek egy tömb egy vagy több elemén több számítást is végrehajthatnak. Egy tömbre lehet értéksorként, értékoszlopként vagy értéksorok és -oszlopok kombinációjaként tekinteni. A tömbképletek több vagy egyetlen eredményt adhatnak vissza.
A Microsoft 365 2018. szeptemberi frissítésétől kezdve minden olyan képlet, amely több eredményt tud visszaadni, automatikusan kibontja azokat lefelé vagy a szomszédos cellákba. Ezt a viselkedésbeli változást számos új dinamikus tömbfüggvény is kíséri. A dinamikus tömbképleteket, akár meglévő függvényeket, akár a dinamikus tömbfüggvényeket használják, csak egyetlen cellába kell beírni, majd az Enter lenyomásával megerősíteni. Korábban a tömbképletekhez először ki kellett jelölni a teljes kimeneti tartományt, majd meg kellett erősíteni a képletet a Ctrl+Shift+Enter billentyűkombinációval. Ezeket gyakran CSE képleteknek nevezik.
A tömbképletek használatával bonyolult feladatokat is végezhet, például:
- Mintaadathalmazok gyors létrehozása.
- Cellatartományban lévő karakterek számának kiszámítása.
- Csak az adott feltételeknek megfelelő számok összegzése (például meghatározott számtartomány legalacsonyabb, felső és alsó határérték közé eső értékei).
- Értéktartomány minden n-edik értékének összegzése.
A következő példák a többcellás és az egycellás tömbképletek létrehozásának módját mutatják be. Ahol lehetséges, példákat is felsoroltunk néhány dinamikus tömbfüggvénnyel, valamint a dinamikus és örökölt tömbfüggvényekként beírt meglévő tömbképletekre is.
Példák letöltése
Töltse le a példamunkafüzetünket, amely a cikkben szereplő összes tömbképlet-példát tartalmazza.
Többcellás és egycellás tömbök
Ez a gyakorlat bemutatja, hogyan használhat többcellás és egycellás tömbképleteket értékesítési számok halmazának számításaihoz. Az első lépéshalmaz egy többcellás képlettel számítja ki a részösszegek halmazát. A második készlet egy egycellás képlettel számítja ki a végösszeget.
Többcellás tömbképletek
Itt kiszámítjuk a kupék és szedánok összes eladását az egyes értékesítők esetében a következő adatok megadásával: =F10:F19*G10:G19 a H10 cellában.
Amikor lenyomja az Enterbillentyűt, a rendszer az eredményeket a H10:H19 cellában bontja ki. Figyelje meg, hogy a kibontott tartományt szegély jelöli, amikor kijelöl egy cellát a kibontott tartományon belül. Azt is észreveheti, hogy a H10:H19 cellákban szereplő képletek szürkén jelennek meg. Ezek csak referenciaként szerepelnek ott, ezért ha módosítani szeretné a képletet, ki kell jelölnie a H10 cellát, ahol a mesterképlet található.Egycellás tömbképlet
A példamunkafüzet H20 cellájába írja vagy másolja és illessze be a =SZUM(F10:F19*G10:G19) értéket, majd nyomja le az Enter billentyűt.
Az Excel összeszorozza a tömbben lévő értékeket (a F10–G19 cellatartományban), és a SZUM függvénnyel összeadja az összegeket. Az eladások végösszege 1 590 000 USD.
Ez a példa jól szemlélteti, hogy mi mindenre használható egy ilyen típusú képlet. Tegyük fel, hogy 1 000 sornyi adat van a munkafüzetben. Az adatok egy részét vagy egészét összeadhatja úgy, hogy egyetlen cellában hoz létre tömbképletet ahelyett, hogy a képletet lefelé húzza az 1 000 soron. Jól látható, hogy az egycellás képlet (a H20 cellában) teljesen független a többcellás képlettől (a H10–H19 cellában lévő képlettől). Ez a tömbképletek másik előnyös tulajdonsága: a rugalmasság. A H oszlopbeli egyéb képleteket anélkül módosíthatja, hogy ez hatással lenne a H20 cellában lévő képletre. Érdemes lehet független összegeket is megadni, mivel ez segít ellenőrizni az eredmények pontosságát.A dinamikus tömbképletek előnyei közé tartoznak még a következők:
- Konzisztencia A H10-től lefelé bármelyik cellára kattintva ugyanaz a képlet látható. A konzisztencia révén pontosabban végezhető a munka.
- Biztonság A többcellás tömbképletek összetevői nem írhatók felül. Kattintson például a H11 cellára, és nyomja le a Delete billentyűt. Az Excel nem módosítja a tömb kimenetét. A módosításhoz ki kell jelölnie a tömb bal felső celláját vagy a H10 cellát.
- Kisebb fájlméretek Sok esetben használhat egyetlen tömbképletet több köztes képlet helyett. Az autóértékesítési példa például egy tömbképletet használ az E oszlop eredményeinek kiszámításához.Ha szokásos képleteket használt volna (például =F10*G10, F11*G11, F12*G12 stb.), akkor 11 különböző képlet adta volna ugyanazt az eredményt. Ez nem nagy dolog, de mi a teendő, ha több ezer sort kell összegeznie? Ez nagy különbséget jelenthet.
- Hatékonyság A tömbfüggvények használata hatékony megoldás lehet összetett képletek létrehozására. A =SZUM(F10:F19*G10:G19) tömbképlet megegyezik a következővel: =SZUM(F10*G10;F11*G11;F12*G12,F 13*G13,F14*G14,F15*G15,F16*G16,F17*G17,F18*G18,F19*G19).
- Kiömlés A dinamikus tömbképletek automatikusan ki lesznek bontva a kimeneti tartományba. Ha a forrásadatok egy Excel-táblázatban találhatók, akkor a dinamikus tömbképletek esetén a tömb mérete automatikusan módosul, amint adatokat vesz fel vagy távolít el.
- #KITÖLTÉS! hiba javítása A dinamikus tömbök bevezették a #SPILL! hibát, amely azt jelzi, hogy a kívánt kiömlött tartomány valamilyen okból le van tiltva. Ha feloldja az akadályt, a képlet automatikusan kibomlik.
Egy- vagy kétdimenziós tömbkonstans létrehozása
A tömbképletek tömbkonstansokat is magukban foglalnak. Tömbkonstansok létrehozásához be kell írni egy elemlistát, és kézzel kell kapcsos zárójelek közé ({ }) zárni azt a következő módon:
={1,2,3,4,5} vagy ={"január","február","március"}
Ha vesszővel választja el egymástól az elemeket, vízszintes tartomány (egy sor) jön létre. Pontosvesszőkkel történő elválasztás esetén függőleges tömb (egy oszlop) az eredmény. Kétdimenziós tömb létrehozásához minden egyes sorban vesszőkkel kell tagolni az elemeket, a sorok tagolását pedig pontosvesszőkkel kell végezni.
A következő eljárásokkal gyakorlatot szerezhet a vízszintes, a függőleges és a kétdimenziós konstansok létrehozásában. Példákat mutatunk be a SORSZÁMLISTA függvény használatával a tömbkonstansok automatikus létrehozásához, valamint a manuálisan megadott tömbállandók létrehozásához.
-
Vízszintes állandó létrehozása
Használja az előző példákban megismert munkafüzetet, vagy hozzon létre egy újat. Jelöljön ki egy üres cellát, és írja be a =SORSZÁMLISTA(1,5) értéket. A SORSZÁMLISTA függvény egy 1 sorból és 5 oszlopból álló tömböt hoz létre, amely megegyezik az ={1,2,3,4,5} értékkel. A következő eredmény jelenik meg:
-
Függőleges konstans létrehozása
Jelöljön ki egy üres cellát, amely alatt van hely, és írja be a következőt: =SORSZÁMLISTA(5), vagy ={1;2;3;4;5}. A következő eredmény jelenik meg:
-
Kétdimenziós konstans létrehozása
Jelölje ki bármely üres cellát, amelynek jobb oldalán és alatta van hely, és írja be a következőt: =SORSZÁMLISTA(3,4). Az eredmény a következő:
A következőt is megadhatja: vagy ={1\2\3\4;5\6\7\8;9\10\11\12}, de érdemes figyelni, hol használ pontosvesszőket vagy vesszőket.
Mint látható, a SORSZÁMLISTA beállítás jelentős előnyökkel jár a tömbkonstans értékeinek manuális bevitelével szemben. Elsősorban időt takarít meg, de a manuális bevitel hibáinak csökkentésében is segít. Az olvasása is egyszerűbb, különösen azért, mert a pontosvesszők nehezen megkülönböztethetők az elválasztó vesszőktől.
Tömbkonstansok szintaxisa
Íme egy példa, amely tömbkonstansokat használ egy nagyobb képlet részeként. A mintamunkafüzetben ugorjon az állandóhoz egy képletmunkalapon , vagy hozzon létre egy új munkalapot.
A D9 cellába beírtuk a =SORSZÁMLISTA(1,5,3,1) értéket, de a 3, 4, 5, 6 és 7 értéket is beírhatja az A9:H9 cellába. Az adott számválasztásnak nincs semmi különleges oka, egyszerűen megkülönböztetés céljából az 1-5-ös érték helyett mást választottunk.
Az E11 cellába írja be a =SZUM(D9:H9*SORSZÁMLISTA(1;5)) vagy =SZUM(D9:H9*{1,2,3,4,5})) képletet. A képletek 85-öt adnak vissza.
A SORSZÁMLISTA függvény a tömbállandó {1,2,3,4,5}megfelelőjét hozza létre. Mivel az Excel először a zárójelek közötti kifejezéseken hajtja végre a műveleteket, a soron következő két elem a D9:H9-ben tárolt értékhalmaz (A1:E1), valamint a szorzási operátor (*). A képlet összeszorozza a tárolt tömbben lévő értékeket az állandó megfelelő értékeivel. Mindez így néz ki:
=SZUM(D9*1,E9*2,F9*3,G9*4,H9*5), vagy =SZUM(3*1,4*2,5*3,6*4,7*5)
Végül a SZUM függvény összeadja az értékeket, és 85-öt ad vissza.
Ha nem szeretné a tárolt tömböt használni, és a memóriában szeretné végrehajtani a műveletet, írja felül egy másik tömbkonstanssal:
=SZUM(SORSZÁMLISTA(1,5,3,1)*SORSZÁMLISTA(1,5)), vagy =SZUM({3,4,5,6,7}*{1,2,3,4,5})
Tömbkonstansokban használható elemek
- A tömbkonstansok tartalmazhatnak számokat, szöveget, logikai értékeket (például IGAZ és HAMIS), valamint hibaértékeket, például #N/A. A számok megadhatók egészként, decimális vagy tudományos alakban. Ha szöveget ír be, akkor idézőjelek ("szöveg”) közé kell tennie.
- A tömbkonstansok nem tartalmazhatnak további tömböket, képleteket vagy függvényeket. Más szóval csak vesszővel vagy pontosvesszővel elválasztott szöveget vagy számokat tartalmazhatnak. Az Excel figyelmeztető üzenetet jelenít meg, amikor képletet ad meg, például {1\2\A1:D4} vagy {1\2\SZUM(Q2:Z8)}. A numerikus értékek nem tartalmazhatnak százalékjeleket, dollárjeleket, vesszőket vagy zárójeleket sem.
Tömbállandók elnevezése
A tömbkonstansok használatának egyik legcélszerűbb módja az, ha nevet ad nekik. Az elnevezett állandók használata sokkal egyszerűbb, és így részben el is rejthető a tömbképletek összetettsége mások elől. Tömbképlet elnevezéséhez és képletben történő használatához az alábbiakat kell tennie:
Ugrás a Képletek>definiált nevek>Név definiálása elemre. A Név mezőbe írja be az 1. negyedév kifejezést. A Hivatkozás mezőbe írja be a következő állandót (ne felejtse el begépelni a kapcsos zárójeleket):
={"Január"\"Február"\"Március"}
A párbeszédpanel tartalma így néz ki:
Kattintson az OKgombra, jelöljön ki egy három üres cellát tartalmazó sort, és írja be a következőt: =1. negyedév.
A következő eredmény jelenik meg:
Ha az eredményeket vízszintes helyett függőlegesen szeretné kibontani, használja a TRANSZPONÁLÁS(1. negyedév) függvényt=.
Ha meg szeretne jeleníteni egy 12 hónapból álló listát, amit pénzügyi kimutatás készítésekor is használhat, a SORSZÁMLISTA függvénnyel az aktuális évre is indíthat egyet. A függvénnyel kapcsolatban az a lényeg, hogy bár csak a hónap jelenik meg, van mögötte egy érvényes dátum, amelyet más számításokban is használhat. Ezek a példák a példamunkafüzet Elnevezett tömbkonstans és Gyors mintaadathalmaz-munkalapjain találhatók.
=SZÖVEG(DÁTUM(ÉV(MA());SORSZÁMLISTA(1,12),1);"mmm")
Ez a DÁTUM függvény segítségével az aktuális év alapján hoz létre dátumot, a SORSZÁMLISTA egy tömbkonstansot hoz létre 1 és 12 között januártól decemberig, majd a SZÖVEG függvény "mmm" formátumra konvertálja a megjelenítési formátumot (január, február, március stb.). Ha meg szeretné jeleníteni a hónap teljes nevét, például a januárt, használja az "mmmm" kifejezést.
Ha elnevezett állandót használ tömbképletként, ne felejtse el beírni az egyenlőségjelet, például =1. negyedév, nem pedig 1. negyedév. Ha elfelejti, az Excel szöveges karakterláncként fogja értelmezni a tömböt, így a képlet nem a várt eredményt fogja adni. Tartsa szem előtt azt is, hogy függvények, szöveg és számok kombinációi is használhatók. Mindez attól függ, hogy mennyire szeretne kreatívan dolgozni.
A tömbállandók működése
A következő példák néhány olyan módszert szemléltetnek, amellyel a tömbállandók használhatók a tömbképletekben. Néhány példában a TRANSZPONÁLÁS függvény oszlopokká alakítja a sorokat, vagy éppen fordítva.
-
Tömb összes elemének összeszorzása
Írja be a =SORSZÁMLISTA(1,12)*2vagy ={1\2\3\4;5\6\7\8;9\10\11\12}*2 értéket
Oszthat (/), hozzáadhat (+) és kivonhat is (-) ponttal. -
Tömbben lévő elemek négyzetre emelése
Írja be a =SORSZÁMLISTA(1,12)^2vagy ={1\2\3\4;5\6\7\8;9\10\11\12}^2 értéket -
Tömb négyzetre emelt értéke négyzetgyökének megkeresése
Írja be az =GYÖK(SORSZÁMLISTA(1,12)^2) vagy =GYÖK({1,2,3,4; 5,6,7,8; 9,10,11,12}^2) -
Egydimenziós sor transzponálása
Írja be a =TRANSZPONÁLÁS(SORSZÁMLISTA(1;5)) vagy =TRANSZPONÁLÁS({1,2,3,4,5}) képletet
Noha vízszintes tömbkonstansot írt be, a TRANSZPONÁLÁS függvény oszloppá alakítja a tömbkonstansot. -
Egydimenziós oszlop transzponálása
Írja be a =TRANSZPONÁLÁS(SORSZÁMLISTA(5,1)), vagy =TRANSZPONÁLÁS({1;2;3;4;5}) értéket
Noha függőleges tömbkonstansot írt be, a TRANSZPONÁLÁS függvény sorrá alakítja az állandót. -
Kétdimenziós konstans transzponálása
Írja be a =TRANSZPONÁLÁS(SORSZÁMLISTA(3,4)), vagy =TRANSZPONÁLÁS({1\2\3\4;5\6\7\8;9\10\11\12}) értéket
A TRANSZPONÁLÁS függvény minden sort oszlopok sorozatává alakít.
Egyszerű tömbképletek használata
Ebben a szakaszban egyszerű tömbképletekre talál példákat.
Tömb létrehozása már meglévő értékekből
Az alábbi példa azt ismerteti, hogyan hozhat létre új tömböt egy meglévő tömbből tömbképletekkel.
Írja be a =SORSZÁMLISTA(3,6,10,10)vagy ={10\20\30\40\50\60;70\80\90\100\110\120;130\140\150\160\170\180} értéket
Mivel számtömböt hoz létre, ne felejtse el beírni a nyitó kapcsos zárójelet { a 10 elé, illetve a záró kapcsos zárójelet } a 180 után.
Ezután írja be a =D9#, vagy =D9:I11 értéket egy üres cellába. Ekkor megjelenik egy 3x6-os cellatömb, amelyben ugyanazok az értékek szerepelnek, mint a D9:D11-ben. A # jelet kibontott tartományoperátornak nevezik, és az Excel ezzel hivatkozik a teljes tömbtartományra ahelyett, hogy be kellene írnia.
Tömbkonstans létrehozása már meglévő értékekből
A kibontott tömbképletek eredményeit átalakíthatja az összetevők részeivé. Válassza a D9 cellát, majd nyomja le az F2 billentyűt, és lépjen szerkesztési módba. Ezután az F9 billentyűt lenyomva alakítsa a cellahivatkozásokat értékekké, amelyeket aztán az Excel tömbállandóvá alakít. Amikor lenyomja az Enter billentyűt, a =D9# képletnek most ={10\20\30;40\50\60;70\80\90} formában kell lennie.Cellatartományban lévő karakterek megszámlálása
A következő példából megtudhatja, hogy miként állapítható meg a kérdéses cellatartományban található karakterek száma. Ez tartalmazza a szóközöket.
=SUM(HOSSZ(C9:C13))
Ebben az esetben a HOSSZ függvény a tartomány egyes celláiban talált szöveges karakterláncok hosszát adja eredményül. A SZUM függvény ezt követően összeadja a szóban forgó értékeket, majd megjeleníti az eredményt (66). Ha a karakterek átlagos számát szeretné megkapni, a következőt használhatja:
=ÁTLAG(HOSSZ(C9:C13))A leghosszabb cella tartalma a C9:C13 tartományban
=INDEX(C9:C13,HOL.VAN(MAX(HOSSZ(C9:C13)),HOSSZ(C9:C13),0),1)
A képlet csak akkor működik, ha az adattartomány egyetlen oszlopnyi cellát tartalmaz.
A képletet a belső elemektől kifelé haladva több elem építi fel. A HOSSZ függvény a D2:D6 cellatartomány egyes elemeinek hosszát adja vissza. A MAX függvény az elemek közül a legnagyobb értéket számítja ki, amely a D3 cellában található leghosszabb szöveges sztringnek felel meg.
Az alábbiakban egy kicsit összetettebb a helyzet. A HOL.VAN függvény a leghosszabb szöveges sztringet tartalmazó cella eltolását (relatív pozícióját) számítja ki. Ehhez három argumentumra van szükség: egy keresési értékre, egy keresési tömbre és egy egyezéstípusra. A HOL.VAN függvény megkeresi a keresési tömbben a megadott keresési értéket. Ebben az esetben a keresési érték a leghosszabb szöveges sztring:
MAX(HOSSZ(C9:C13)
A karakterlánc ebben a tömbben van:
HOSSZ(C9:C13)
Az egyezéstípus argumentuma ebben az esetben 0. Az egyezés típusa 1, 0 vagy -1 érték lehet.- 1 – a keresési értéknél kisebb vagy azzal egyenlő legnagyobb értéket adja vissza
- 0 – az első értéket adja vissza, ami pontosan megegyezik a keresési értékkel
- -1 – a megadott keresési értéknél nagyobb vagy azzal egyenlő legkisebb értéket adja vissza
- Ha kihagy egy egyezéstípust, az Excel az 1-et feltételezi.
Az INDEX függvény az alábbi argumentumokat használja: egy tömb, valamint egy azon belül található sor- és oszlopszám. A C9:C13 cellatartomány a tömböt, a HOL.VAN függvény a cellacímet adja meg, az utolsó argumentum (1) pedig azt, hogy az értéket a tömb első oszlopából olvassa a program.
Ha a legkisebb szöveges sztring tartalmát szeretné beolvasni, a fenti példában a MAX értéket MINértékre kell cserélnie.Cellatartomány n darab legkisebb értékének keresése
Ez a példa bemutatja, hogyan keresheti meg a három legkisebb értéket egy cellatartományban, ahol a B9:B18 cella mintaadatainak tömbje a következőkkel lett létrehozva: =INT(VÉLETLENTÖMB(10;1)*100). Vegye figyelembe, hogy a VÉLETLENTÖMB egy ideiglenes függvény, így az Excel minden számításakor új véletlenszerű számokat fog kapni.
Adja meg a =KICSI(B9#;SORSZÁMLISTA(D9), =KICSI(B9:B18;{1;2;3}) értéket
Ez a képlet tömbkonstanst használ a KICSI függvény háromszori kiértékeléséhez, és a B9:B18 cellában található tömb legkisebb 3 tagját adja vissza, ahol a 3 a D9 cellában lévő változó érték. További értékek kereséséhez növelheti az értéket a SORSZÁMLISTA függvényben, vagy további argumentumokat adhat a konstanshoz. Ezzel a képlettel további függvényeket is használhat, például a SZUM vagy az ÁTLAG függvényeket. Például:
=SZUM(KICSI(B9#,SORSZÁMLISTA(D9))
=ÁTLAG(KICSI(B9#,SORSZÁMLISTA(D9))Cellatartomány n darab legnagyobb értékének keresése
Valamely tartomány legnagyobb értékeinek megkereséséhez írja felül a KICSI függvényt a NAGY függvénnyel. A következő példában ezenfelül a SOR és az INDIREKT függvény is helyet kapott.
Írja be a =NAGY(B9#;SOR(KÖZVETETT("1:3"))), vagy =NAGY(B9:B18;SOR(KÖZVETETT("1:3"))) értéket
Ezen a ponton ez segíthet egy kicsit megismerni a SOR és a KÖZVETETT függvényeket. A SOR függvénnyel egymást követő egész számokból álló tömböt hozhat létre. Válasszon például egy üres elemet, és írja be a következőt:
=SOR(1:10)
A képlet tíz egymás után következő egész számot helyez el az oszlopban. Az egyik lehetséges probléma megértéséhez szúrjon be egy sort a tömbképletet tartalmazó tartomány (az első sor) fölé. Az Excel frissíti a sorhivatkozásokat, és a képlet most a 2 és 11 közötti egész számokat jeleníti meg. A probléma megoldása végett vegye fel az INDIREKT függvényt a képletbe:
=SOR(INDIREKT("1:10"))
Az INDIREKT függvény szöveges sztringeket használ argumentumként (ezért az 1:10 tartományt idézőjelek veszik körül). Az Excel nem módosítja a szöveges értékeket sorok beszúrásakor vagy a tömbképlet más módon történő áthelyezésekor. Ennek eredményeképpen a SOR függvény mindig létrehozza a kívánt tömböt az egész számokból. Ugyanilyen egyszerűen használhatja a SORSZÁMLISTA függvényt:
=SORSZÁMLISTA(10)
Érdemes megvizsgálni a korábban már alkalmazott képletet (=NAGY(B9#,SOR(INDIREKT("1:3")))) a belső zárójelektől kifelé haladva: az INDIREKT függvény szöveges értékek készletét adja vissza, jelen esetben az 1, a 2 és a 3 értéket. A SOR függvény viszont egy háromcellás oszlopos tömböt eredményez. A rendszer által háromszor kiértékelt NAGY függvény a B9:B18 cellatartomány értékeit használja, a SOR függvény által visszaadott minden egyes hivatkozáshoz egyszer. Ha további értékeket szeretne keresni, nagyobb cellatartományt kell hozzáadnia az INDIREKT függvényhez. Ahogy a KICSI példákkal, ez a képlet más függvényekkel is használható, például a SZUM és az ÁTLAG függvénnyel.
Hibák kezelése
-
Hibaértékeket tároló tartomány összegzése
Az Excel SZUM függvénye nem használható akkor, ha hibaértéket tartalmazó tartományt szeretne összegezni, például #ÉRTÉK! vagy #N/A. A következő példából megtudhatja, hogy miként összegezhetők a hibákat is tartalmazó Adatok nevű tartományban tárolt értékek:
-
=SZUM(HA(HIBÁS(Adatok),"",Adatok))
A képlet egy, az eredeti értékeket a hibaértékek nélkül tartalmazó új tömböt hoz létre. Belülről kifelé haladva: a HIBÁS függvény megkeresi a cellatartományban (Adatok) a hibákat. A HA függvény meghatározott értéket ad eredményül, ha egy megadott feltétel IGAZ értékű, és egy másik értéket, ha a feltétel értéke HAMIS. A jelen esetben valamennyi hibaértékhez üres karakterláncokat fog visszaadni (""), mivel az értékek IGAZ értékkel teljesülnek – visszaadja a fennmaradó értékeket is a tartományból (Adatok), hiszen azok HAMIS értékkel teljesülnek, azaz nem szerepelnek bennük hibaértékek. A SZUM függvény ezután kiszámítja a szűrt tömb végösszegét. -
Tartomány hibaértékszámának kiszámítása
Ez a példa hasonló az előző képlethez, de kiszűrésük helyett az Adatok nevű tartományban lévő hibaértékek számát adja eredményül:
=SZUM(HA(HIBÁS(Adatok);1;0))
Ez a képlet olyan tömböt hoz létre, amely az 1 értékkel jelzi a hibákat tartalmazó, 0 értékkel pedig a hiba nélküli cellákat. A képlet egyszerűsíthető úgy, hogy eredménye ugyanaz legyen – ehhez távolítsa el a HA függvényhez tartozó harmadik argumentumot a következő módon:
=SZUM(HA(HIBÁS(Adatok);1))
Ha nem adja meg az argumentumot, a HA függvény a HAMIS eredményt fogja adni abban az esetben, ha egy cella nem tartalmaz hibaértéket. A képlet még tovább egyszerűsíthető:
=SZUM(HA(HIBÁS(Adatok)*1))
Ez a változat azért működik, mert az IGAZ*1 művelet 1, a HAMIS*1 művelet pedig 0 értékű.
Értékek összegzése feltételek alapján
Bizonyos esetekben szükség lehet az értékeket feltételek alapján összegezni.
A következő tömbképlet például csak a pozitív egész számokat összegzi az Értékesítés nevű tartományban, amely az E9:E24 cellákat jelöli a fenti példában:
=SZUM(HA(Értékesítés>0;Értékesítés))
A HA függvény pozitív és hamis értékek tömbjét hozza létre. A SZUM függvény figyelmen kívül hagyja a hamis értékeket, mert a 0+0 művelet eredménye 0. Az ebben a képletben használt cellatartomány tetszőleges számú sorból és oszlopból állhat.
Lehetősége van több feltételnek eleget tévő értékek összegzésére is. Az alábbi tömbképlet például kiszámítja a 0-nál nagyobb ÉS a 2500-nál kisebb értékeket:
=SZUM((Értékesítés>0)*(Értékesítés<2500)*(Értékesítés))
Tartsa szem előtt, hogy a képlet hibát eredményez, ha a tartomány akár csak egy nem numerikus cellát is tartalmaz.
Létrehozhatók VAGY típusú feltételt használó tömbképletek is. Összegezheti például a 0-nál nagyobb VAGY 2500-nál kisebb értékeket:
=SZUM(HA((Értékesítés>0)+(Értékesítés<2500);Értékesítés))
Az ÉS, valamint a VAGY függvény nem használható közvetlenül tömbképletekben, mert egyetlen eredményt ad vissza (IGAZ vagy HAMIS), míg a tömbfüggvények működéséhez eredménytömbök szükségesek. A probléma az előző képletben használt logika alkalmazásával megoldható. Megfogalmazható mindez úgy is, hogy matematikai műveleteket (például összeadást vagy szorzást) hajt végre a VAGY, illetve az ÉS feltételnek eleget tévő értékeken.
E példa alapján eltávolíthatja a nullákat az adott tartományból, ha átlagolni szeretné az abban lévő értékeket. A képletben egy Értékesítés nevű adattartomány szerepel:
=ÁTLAG(HA(Értékesítés<>0;Értékesítés))
A HA függvény létrehozza a nullával nem egyenlő értékek tömbjét, és átadja a talált értékeket az ÁTLAG függvénynek.
Két cellatartomány közötti különbségek megszámlálása
Ez a tömbképlet összehasonlítja az Adatok1 és az Adatok2 cellatartomány értékeit, és a két tartomány különbségeinek számát adja eredményül. Amennyiben a két tartomány megegyező tartalmú, a képlet nullát ad eredményül. A képlet használatához a cellatartományoknak megegyező méretűeknek és kiterjedésűeknek kell lenniük. Például ha az Adatok1 tartomány 3 soros és 5 oszlopos, akkor az Adatok2 tartománynak is 3 sorból és 5 oszlopból kell állnia:
=SZUM(HA(Adatok1=Adatok2;0;1))
A képlet létrehoz egy új tömböt, amelynek mérete megegyezik az összehasonlított tartományok méretével. A HA függvény feltölti a tömböt a 0 és az 1 értékkel (a 0 a különbségeket, az 1 az azonos cellákat jelöli). A SZUM függvény ezt követően kiszámítja a tömbben lévő értékek összegét.
A képlet egyszerűsíthető:
=SZUM(1*(Adatok,<>Adatok))
Az adott tartományban lévő hibaértékeket megszámláló képlethez hasonlóan ez a képlet is azért működik, mert az IGAZ*1 művelet eredménye 1, a HAMIS*1 műveleté pedig 0.
Ez a tömbképlet az Adatok nevű egyoszlopos tartomány legnagyobb értékét tartalmazó sor számát adja eredményül:
=MIN(HA(Adatok=MAX(Adatok),SOR(Adatok),""))
A HA függvény létrehoz egy, az Adatok nevű tartománynak megfelelő új tömböt. Ha valamelyik megfelelő cella tartalmazza a tartomány legnagyobb értékét, a tömbben szerepel a sor száma. Ha nem, a tömb egy üres karakterláncot ("") tartalmaz. A MIN függvény az új tömböt használja második argumentumaként, és a legkisebb értékét adja vissza – ez az érték az Adatok tartomány legnagyobb értékét tároló sor számával egyezik meg. Ha az Adatok nevű tartomány azonos legnagyobb értékeket tartalmaz, a képlet az első érték sorának számát adja eredményül.
A legnagyobb értéket tartalmazó cella tényleges címének megjelentéséhez a következő képletet használhatja:
=CÍM(MIN(HA(Adatok=MAX(Adatok),SOR(Adatok),"")),OSZLOP(Adatok))
Hasonló példákat talál a mintamunkafüzetben az Adathalmazok közötti különbségek munkalapon.
Elismerés
A cikk részei Colin Wilcoxnak az Excel használatában jártas felhasználóknak szánt írásain, valamint az Excel korábbi MVP szakértőjének számító John Walkenbach Excel 2002 Formulas (Az Excel 2002 képleteinek használata) című könyvének 14. és 15. fejezetén alapul.
További segítségre van szüksége?
Kérdéseivel mindig felkeresheti az Excel technikai közösség egyik szakértőjét, vagy segítséget kérhet a közösségekben.
Lásd még
Dinamikus tömbök és kibontott tömb viselkedése
Dinamikus tömbképletek és korábbi CSE-tömbképletek