Telefonszámunk: 1-472-0679

Excel 2013

Excel tömbök, tömbkonstansok

Tömbök fogalma

A tömbök az Excel-ben értékek sorozatát jelentik. Általános felhasználás során nem igazán szoktunk foglalkozni a tömbökkel, hiszen azokat legtöbbször egyszerűen kijelöléssel határozzuk meg.

Ha például egy egyszerű összesítést (SUM /SZUM) alkalmazunk, akkor a fügvényvarázsló argumentum mutatja a kijelölt tartományt, mint tömböt.

Tömb a függvény varázslóban

Egy dimenziós tömbök

Az egy dimenziós tömbök egymás melletti vagy egymás alatti adatsorokat tartalmaznak. Próbáljuk meg a következőt!

  • Egy cellatartományba egymás mellé balról jobbra írjunk be értékeket. (Pl.: B1:K1)
    tomb-tartomany
  • Egy üres cellába írjunk egy egyenlőség jelet, majd jelöljük ki a B1:K1 tartományt (=B1:K1)
  • Nyomjuk meg az F9 billentyűt
  • Az Excel kibontja a kijelölést mint egy dimenziós tömböt

={1.2.3.4.5.6.7.8.9.10}

Próbáljuk ki ugyanezt egymás alatti értékekkel!

={1;2;3;4;5;6;7;8;9;10}

A vízszintes tömbnél az értékeket ponttal („.”) elválasztva látjuk, (oszlop szeparátor), a függőleges tömbnél pedig pontosvesszővel vannak elválasztva. (Sor szeparátor)

Sor és oszlop szeparátorok

A sorokat, illetve az oszlopokat elválasztó karakterek a vezérlő pult nemzetközi beállításaitól függenek. Emiatt a fenti példa különböző nyelvi beállítások esetén más elválasztó karaktereket eredményezhet.

Az elválasztó karakterek ellenőrzése

  • Lépjünk át a VBE felületre (ALT+F11)
  • Hozzuk elő a parancs ablakot (Ctrl+G)
  • Írjuk be a következő parancsokat
    ? Application.International(xlColumnSeparator)
    ? Application.International(xlRowSeparator)

Bővebben az Excel nemzetközi beállításainak vizsgálatáról egy korábbi oktatanyagban lehet olvasni:
Az Excel nemzetközi beállításainak lekérdezése

Két dimenziós tömbök

A két dimenziós tömbök valójában táblázatok, azaz több sort is tartalmaznak.

Töltsünk fel egy tartományt értékekkel, majd a fenti módszerrel jelöljük ki, majd nyomjuk meg az F9-et

ket-dimenzios-tomb

={"A".10;"B".20;"C".30}

Az látható, hogy a sorokat a pontosvessző, az oszlopokat pont jelzi.

Saját tömb konstansok

A képletekben használhatunk a fentiek szerinti tömbkonstansokat. Ezt legegyszerűbben úgy tehetjük, hogy a névkezelőben nevet adunk a tömbkonstansoknak.

  • Egy tartományba írjuk be a tömb elemeit (egy vagy két dimenzió)
  • Egy üres cellába a fentiek szerint bontsuk ki a tömböt, majd másoljuk ki (Ctrl+C)
  • Nyissuk meg a névkezelőt (Ctrl+F3), Hozzunk létre egy új nevet, és hivatkozásként illesszük be a tömböt
    Tombkonstans-nev
  • A forrástartományt kitörölhetjük

Használati példák

A tömbkonstansokat használhatjuk kisebb keresési tartományként azokban az esetekben, ha nem szeretnénk a forrás tartományokat a munkafüzet celláiban tárolni.

Az elnevezett tömbökben lehet bármelyik kereső függvénnyel keresni, és az összes, tartományokon értelmezhető függvényt használhatjuk.

Konkrét példákat a kapcsolódó videóban lehet majd látni.

Tömbök a képletekben

Képletek belsejében gyakran találkozhatunk olyan részekkel, amelyek tömböt eredményeznek, és ezt a tömböt dolgozza fel a képlet külső része.

Példa: mennyi 4 betűs vagy annál rövidebb szöveg van egy oszlopban? (A szavak az M1:M7 tartományban vannak)

=SZORZATÖSSZEG(--(HOSSZ(M1:M7)<=4))

A képlet működését a Videóban mutatjuk be.

Video

  • Tömbkonstansok az Excelben

Tovább...

Rejtett adatok ábrázolása a grafikonokon

Alapbeállításként az Excel grafikon motorja úgy tekinti az éppen nem látható (szűrt vagy rejtett) cellákat, mintha nem is léteznének. Ez lehet haszos, de éppenséggel bosszantó funkció is. Egy egyszerű beállítással megkérhetjük, hogy az elrejtések, szűrések ellenére a teljes adattartományt ábrázolja.

A probléma képekben

Eredeti táblázat és diagram

Grafikon rejtett sorok

A szűrés után csak a látható adatok szerint rajzol diagramot

Diagram szűrt adatok alapján

Beállítás Excel 2007 utáni verziókban

  1. Jelöljük ki a diagramot, majd a DiagramEszközök szalagon válasszuk a Tervezés (Design) lapot.
  2. Ezután kattintsunk a bal oldalon az Adatok kijelölése (Select Data) gombraGrafikon adatok kijelölése
  3. A megjelenő ablak bal alsó sarkában nyomjuk meg a Rejtett és üres cellák (Hidden and Empty Cells) gombot
    Grafikon-rejtett és üres cellák
  4. Végül jelöljük be, hogy mutassa a bennük lévő értékeket a grafikonon.
    Rejtett adatok megjelenítése a diagramon
Tovább...

Üres stringet tartalmazó cellák kijelölése vagy törlése

Ha egy tartományban képlettel számolunk, akkor nem tudunk visszaadni üres cellát. Leggyakrabban nullát, vagy üres stringet adunk vissza, amit az Excel másképp kezel bizonyos esetekben, mint az üres cellát.

A példában, ha az A1-ben nulla van, akkor üres stringet, különben 1-et adunk vissza:

=IF(A1=0,"",1)

Tegyük fel, hogy ez a képlet sok soron keresztül megy, és a végén grafikont kell belőle rajzolni. A problémát az okozza, hoyg az Excel grafikon motorja csak a valóban üres cellákat tekinti annak, és azokat nem rajzolja ki  a diagramra, de az üres stringet nullának tekinti, és kirajzolja.

Egyik megoldás az lehet, hogy a módosítjuk a képletet, és az üres string helyett hibát adunk, amit szintén figyelmen kívül hagy a grafikon.

=IF(A1=0,NA(),1)

Az NA() függvény a #N/A eredményt adja. Magyar megfelelője a HIÁNYZIK() függvény.

Másik lehetőség, hogy kijelöljük az oszlopot, sé egy kis makróval töröljük az összes üres stringet tartalmazó cella tartalmát.

Üres stringeket tartalmazó cellák kiürítése VBA kóddal

[vb]

‘A kijeloles cellái közül törli a tartalmat, ha üres stringet talál benne
Sub delete_empty_strings()
Dim u As Range
Dim cur As Range

For Each cur In Selection.Cells
If cur.Value = "" Then cur.ClearContents
Next

End Sub
[/vb]

Tovább...

Adott értéket tartalmazó sorok törlése

Ha egy táblázatban különböző oszlopokban többször is előforduló értéket keresünk, és az adott sorokat törölni szeretnénk akkor a következő, egyszerű eljárást használhatjuk:

  • Jelöljük ki a táblázatot vagy tartományt (Ctrl+A)
  • Keressük meg az adott érték (Ctrl+F), és a keresési párbeszédben gyűjtsük ki az összes találatot (Find All / Listába mind)
  • Zárjuk be a párbeszédablakot. A megtalált értékek kijelölve maradnak.
  • Ctrl + – (kötőjel vagy mínusz jel), ez előhozza a cella törlése párbeszédet
  • Egész sorok törlése
    Teljes-sor-torles

Ha adattáblává alakítjuk a tartományunkat, akkor a „Ctrl + -” parancs azonnal teljes sorokat töröl!

Ezt a módszert akkor is alkalmazhatjuk, ha a keresett cellában speciális érték van, pl. hibaüzenet, vagy képlet, esetleg feltételes formázás vagy beviteli szabály. De ugyanígy törölhetjük az üres cellákat tartalmazó sorokat is.

Ha csak egy oszlopban kellene keresnünk, akkor az autoszűrővel leszűrve és a kapott sorokat törölve is célt érhetünk, bár ez a módszer ebben az esetben is gyorsabb, illetve a keresés funkció miatt kicsit rugalmasabb, mivel nem csak pontos egyezésre tudunk keresni.

Ha pedig a keresendő cellák különböző oszlopokban is előfordulhatnak, akkor mindenképpen ez a nyerő.

A Video-ban mindez működés közben is látható

  • Sorok törlése cellatartalom szerint

Tovább...

Táblázatok az Excelben

Ezt a funkciót az Excel 2003-ban mutatták be, ott Lista néven működött. Az Excel 2007-től fölfelé átnevezték Táblázat (Table) funkcióra, ami a magyar Excel esetében kissé zavaró, mert a programot magát „Táblázatkezelő”-nek nevezzük.

Emiatt ebben az anyagban Adattábla nevet fogunk használni.

Sok előnye és kevés hátránya van a használatának, ezeket nézzük most meg.

Adattábla  definiálása

Az adattábla egy Fejléccel, és adatsorokkal rendelkező, elkülöníthető tartomány. Elég gyakran egy munkalapon egy ilyen van, de nem biztos, hogy adattáblaként használjuk. Egy tartományt adattáblaként szeretnénk használni, tegyük a következőket:

  1. Jelöljük ki az átalakítandó tartományt (Ctrl+A)
  2. Alakítsuk táblázattá:  Kezdőlap->Formázás Táblázatként vagy Beszúrás->Táblázat
  3. Adjuk meg,a tartományt, és állítsuk be, hogy az első sort fejlécként kezelje-e
    Excel-tablazat-tartomany-megadasa
  4. Választhatunk a rengeteg beépített formátumból

Amikor befejeztük a folyamatot, a tartományunk átalakul, és valószínűleg valami hasonlót látunk

Excel-tablazat-eredmeny

Az adattábla extra funkciói

  1. A fejléc átalakul
    Megjelenik az autoszűrő, és egyben rögzül is a fejléc, azaz lefelé gördítéskor nem tűnik el.
  2. Egyszerűen lehet sorokat, oszlopokat és az egész adattáblát kijelölni
    Az oszlop vagy sor elején, illetve a sarkán megváltozik az egérmutató, és csak az adattábla tartományában jelöl ki annak megfelelően. Ez képletek bevitelekor is működik.
    Adattabla-sorainak-es-oszlopainak-kijeloleseTeljes-Adattabla-kijelolese
  3. Karbantartja a táblát
    Az új sorokat és oszlopokat automatikusan az Adattábla részévé teszi, kiterjeszti, megtartva a beállított formátumot akkor is, ha sorokat vagy oszlopokat szúrunk be vagy törlünk.  (Hacsak ezt ki nem kapcsoljuk az automatikus javítási beállításokban.)
  4. Képletek automatikus kitöltése
    A táblázaton belül egy új oszlopban elég egy cellába megadni a képletet, az automatikusan kitöltődik az egész oszlopra. (Hacsak ezt ki nem kapcsoljuk az automatikus javítási beállításokban.)Table-autocorrect
    Excel beállítások->Nyelvi Ellenőrzés (Proofing)->Atomatikus javítási beállítások
  5. Rugalmas adatforrás (legfontosabb)
    Ha egy Grafikont vagy akár PIVOT táblát egy adattáblára alapozunk, akkor azok követik a forrás, azaz az adattábla méretének változásait, az esetleg hozzá jött plusz sorokat frissítés után automatikusan megjelenítik.
  6. Képletek megjegyzése
    Ha kiürítjük  atáblázatot, azaz minden sorát töröljük a fejléc kivételével, a bene lévő képletekre akkor is emlékezni fog, és az eéső sor felvitelekor újra ott lesznek. Ha valaki kíváncsi, hogy miért, akkor olvassa el ezt a cikket.

Az adattábla saját szalagja és lehetőségei

Ha egy tartományt adattáblaként definiáltunk, akkor bármely cellájára kattintva megjelenik egy új menüpont a szalag felett (Táblázat Eszközök / Table Tools). Ezt kiválasztva dolgozhatunk az adattábla saját szalagján. A legtöbb beállítás magáért beszél, ezért most nem térünk ki rá részletesen.

Tablazat-szalag

Az adattábla neve – mérete

Tabla-neve-meretezes

Az adattábla nevét érdemes megadni, hogy beszédesebb neve legyen az alapértelmezettnél. A táblázat átméretezése (amennyiben automatikusan nem teszi meg) is lehetséges, ilyenkor egyszerűen csak megadjuk az új tartományt.

Visszaalakítás tartománnyá

Bizonyos funkciók nem működnek akkor, amikor egy tartományt adattáblaként használunk. Ebben az esetben a Tools csoport „Átalakítás tartománnyá (Convert to Range) parancsát használhatjuk. A tartomány megőrzi az adattábla formátumát (pl csíkok) de már nem hordozza tovább az elérhető funkciókat.

Összegsor (Total Row)

ha bekapcsoljuk, akkor a táblázat alján megjelenik egy új , összegző sor. Ebben a sorban minden oszlophoz egy legördülő menüből választhatunk összesítő függvényt (Szum, darab, átlag, stb..), ami a SUBTOTAL függvénnyel működik, emiatt a szűrt adatok esetén az éppen látható sorokra adja az összesítés eredményét.
Table-Total-Row

További funkciók a Video-ban

Az előzőek bemutatásán kívül néhány további érdekességet is lehet látni a következő videóban.

  • Fejléc szövegek igazítása, hogy a szűrő nyilak ne takarják el
  • Csak az adattábla nyomtatása
  • Adatűrlap használata
  • Dinamikus névtartomány

  • Az Excel "Táblázat" funkciója

Tovább...

Hibaüzenetek lecserélése – Hibakezelés

Ha adott egy olyan Excel tábla, amelyben a képletek hibaüzeneteket adnak vissza, felmerülhet az igény a hibaüzenetek megváltoztatására, törlésére.

Ezzel kapcsolatban már volt egy korábbi anyag, amelyben az IFERROR (HAHIBA) függvényt mutattuk be, ami pont erre való. De mit tehetünk akkor, ha már adott a hibákat tartalmazó táblázat, és a képletekhez nem nyúlhatunk?

Segéd oszlopban, külön képlettel vizsgáljuk a hibát, és ha fennáll, egyéb értéket adunk, különben megtartjuk az eredeti eredményt. A képen látható példában a hibaüzenetet nullára cseréljük.

A képlet angol verzióhoz

=IF(ISERROR(B2);0;B2)

A képet magyar verzióhoz

=HA(HIBÁS(B2);0;B2)

Ezt a megoldást akkor érdemes használni, ha a tráblázathoz új sorok is adódhatnak, és a hibakezelés képletet csak le kell húzni és kész.

Hibaüzenetek cseréje speciális kijelöléssel

  1. Válasszuk a speciális (irányított) kijelölést: F5->Special… (Irányított…)
  2. Jelöljük be azt, hogy képleteket, azon belül hibákat keresünk. Ez kijelöli az összes hibaüzenetet, ezek közül az elsőben lesz az aktív cella
  3. Gépeljük be azt az értéket, amit a hibák helyett látni szeretnénk, pl.: nulla
  4. Ctrl+ENTER-rel zárjuk le, ami az össze kijelölt cellába ugyanazt az értéket viszi be.

Mindez animációban

Tovább...

Számtartomány elemeinek szorzása konstanssal

Ha Excelben egy számtartomány minden értékét szeretnénk szorozni egy adott konstans értékkel, akkor a következő lehetőségeink vannak:

  1. Egy segédoszlopban mellette elvégezzük a számítást, majd értékként visszatesszük az eredményt az eredetire
  2. Speciális vágólap beillesztéssel, szorzás műveletet választva
  3. Alkalmazzuk a következő makrót, ami a bekért számmal szorozza az előzőleg kijelölt tartomány számait.

[vb]

Sub multiply_range()
‘A kijelölt tartomány számait szorozza az Inputbox-ban megadott számmal
a = InputBox("value to multiply with:")
Selection.Value = Evaluate(Selection.Address & "*" & a)
End Sub

[/vb]

Mindez hogy működik, és hogy kell használni?

Kiderül a kapcsolódó videóból

Letölthető munkafüzet: tartomány-szorzas-konstanssal

  • Tartomány szorzása konstanssal

Tovább...

Szövegként tárolt számok átalakítása igazi számmá

Gyakran előfordul, hogy a vállalatirányítási rendszer valamely eszközétől lehúzott Excel formátumú riport bizonyos oszlopokat nem a megfelelő formában adja. Leggyakrabban a dátumokkal és a számértékekkel szokott probléma lenni.

Ilyenkor kezdődik a harc, kisebb háború, hogy több-kevesebb munkával helyreigazítsuk a dolgokat. Bevetünk az Excel által kínált eszközöket, de sokszor dátum vagy szövegkezelő függvényekre van szükségünk.

Ebben az anyagban arra a problémára adunk több megoldást, amikor egy oszlopban számokat látunk ugyan, de az Excel azokat szövegként értelmezi. Szerencsés esetben az ilyen cellák bal felső sarkában figyelmeztetésképpen egy zöld háromszöget látunk, és ha rákattintunk akkor megjelenik egy sárga, figyelmeztető rombusz egy felkiáltójellel. Ha erre rámozgatjuk az egeret, megtudhatjuk, hogy az Excelnek mi a problémája, mire figyelmeztet bennünket. A most leírt esetben valami hasonlót látunk:

A felugró buborékban arra figyelmeztet minket, hogy szövegként tárolt szám van a cellában, vagy olyan szám, ami előtt egy aposztrof (felső vessző) van.

Lehetséges megoldások

  • Kijelöljük az érintett cellákat (legtöbbször teljes oszlop) fejléc nélkül, majd lenyitjuk a rombusz melletti nyilat, és választjuk az „Átalakítás számmá” parancsot. Ezt csak akkor tudjuk megtenni, ha vannak zöld háromszögek, ami koránt sem biztos.
  • Vágólap művelettel hozzáadunk nullát vagy megszorozzuk eggyel.
  • Alkalmazzuk a „Szövegből oszlopok (Text to Coluns) parancsot
  • Egy segédoszlopban a VALUE() (ÉRTÉK) függvényt használjuk

A felsorolt módszereket működés közben is megtekintheti a Videóban.

Ha egyik fenti megoldás sem segít, akkor valami érdekes probléma lehet, ami egyedi vizsgálatot igényel.

  • Szöveges számok átalakítása számmá - 4 féleképpen

Tovább...

Cellához képesti reláció a feltételes összesítésekben

Az Excel 2003-ig még csak a SUMIF/COUNTIF (SZUMHA/DARABTELI) függvények léteztek a feltétel szerinti összesítésre. Az első feltétel szerinti összegzést, a második feltétel szerinti megszámlálást végez.

Aztán az Excel 2007-ben bevezettek jó néhány új függvényt, így a hasonló funkciójú függvények sora így néz ki:

Funkció leírása Angol név Magyar név
Egy feltétel szerinti összegzés SUMIF SZUMHA
Több feltétel szerinti összegzés SUMIFS SZUMHATÖBB
Egy feltétel szerinti megszámlálás COUNTIF DARABTELI
Több feltétel szerinti megszámlálás COUNTIFS DARABHATÖBB
Egy feltétel szerinti átlagolás AVERAGEIF ÁTLAGHA
Több feltétel szerinti átlagolás AVERAGEIFS ÁTLAGHATÖBB

Ennek a bejegyzésnek nem az  acélja, hogy ismertesse ezeket a függvényeket, hiszen meglehetősen egyszerűek, az Excel súgója is remek leírást és példákat ad.

De van egy olyan eset a feltétel megfogalmazásánál, ami nem teljesen egyértelmű.

Feladat

Számoljuk meg az összes olyan cellát az A1:A100 tartományban, ahol a cellák értéke kisebb, mint a  D1-ben lévő érték.

Ezt elsőre így próbálnánk megoldani:

=COUNTIF(A1:A100;”<D1″) – Az eredmény valószínűleg nulla lesz, akkor is, ha vannak a D1-nél kisebbek a tartományban

Másodikra megpróbálnánk így:

=COUNTIF(A1:A100;<D1)- Erre pedig kapunk egy hibaüzenetet

Helyes megoldás

Az összes fenti függvény esetén, ha a feltételben használnánk egy cella tartalmát, és ehhez relációval akarunk viszonyítani (kisebb, kisebb vagy egyenlő, stb…), akkor a relációs jelet össze kell fűznünk a cella címével.

=COUNTIF(A1:A100;”<„&D1)

Tehát a kívánt relációs műveleti jelet idézőjelbe tesszük, majd összefűzzük a kívánt cella címével.

Tovább...

FKERES (VLOOKUP) helyett van jobb!?

Két táblázat összekapcsolását tapasztalatom szerint a legtöbb esetben a VLOOKUP (FKERES) függvénnyel oldják meg. A tipikus helyzet az, hogy egy cikk, termék, számla, személy, stb… adatait szeretnénk kikeresni egy törzs táblázatból.

Egy másik táblázatban rendelkezésre áll a keresendő valami azonosító adata, ezt keressük a törzs táblázatban, és ha megtaláljuk benne, akkor ugyanabból a sorból egy másik tulajdonságát (nevét, egységárát, stb..) kérjük vissza.

Az FKERES (VLOOKUP) működése pontos egyezőségi keresés esetén

Az FKERES működése

Az FKERES (VLOOKUP) problémái

  • Csak a keresési tábla első oszlopában tud keresni, és csak tőle jobbra lévő oszlopból tudunk kérni információt
  • Érzékeny a keresési táblázat szerkezetének (oszlopsorrendjének) változására
  • Ha több oszlopból is kérünk vissza adatot, akkor mindannyiszor kerestetni kell a kulcsot
  • Előbbi miatt nagy táblázatoknál lassulást eredményezhet

MATCH+INDEX (HOL.VAN+INDEX) a király!

Az előző megoldás helyett sokkal rugalmasabbnak tűnik egy másik megoldás, ami ugyanarra a feladatra hesználható, és a fenti hiányosságokra megoldást nyújt. Konyhanyelven  a következőről van szó:

  1. Először megkeresem az azonosítót a keresési táblázat vonatkozó oszlopában, és megtudom, hogy hányadik helyen van benne. Erre való a MATCH (HOL.VAN) függvény.
  2. Majd ez alapján a szükséges oszlopból kiveszem az annyiadik elemet, amit az előbb megkaptam. Ezt pedig az INDEX függvény teszi meg.

Tehát két függvényhívás. Lehetnek két külön oszlopban, de össze is lehet őket fűzni egy képletbe.

Letölthető példa munkafüzet

További érthetetlen ábrák és magyarázkodás helyett nézzük akció közben!

  • Fkeres helyett Hol.van+Index

Tovább...