Blog
Nevek véletlen kiválasztása
2019. október 14.

Verzió: Excel 2016, 2013, 2010, 2007

Azok a régi iskolai évek! A tanár lapozgat, majd "véletlenül" kihív valakit felelni. Ma már bizonyára másként(?) van, ám hogyan oldjuk meg ezt Excellel?

A =VÉLETLEN.KÖZÖTT() függvényt általában számok generálására használjuk. Itt egy trükk, hogyan alkalmazhatjuk szöveges értékekre.
Persze nem önállóan, kell még a már oly sokszor bemutatott =INDEX() is.
Nézzünk egy névsort, ebből választunk ki véletlenszerůen egy nevet.

A képlet a B16 celllában:
=INDEX(B2:B13;VÉLETLEN.KÖZÖTT(1;12))
Két függvény alkalmaztunk.
Az =INDEX() függvény értéket ad eredményül egy adott cellatartományból, a =VÉLETLEN.KÖZÖTT() ritkábban szerepelt, így egy kicsit bővebben róla.
A megadott számok közé eső véletlen egész számot ad eredményül.
Figyelem: a függvény a munkalap minden egyes kiértékelésekor egy újabb véletlen egész számot állít elő. Azaz az Enter minden egyes lenyomása után. Az ezzel járó kellemetlenségeket elkerülhetjük, ha a Fájl >Beállítások > Képletek > Munkafüzet kiszámítása párbeszédablakban kikapcsoljuk az Automatikus alapértelmezett beállítást, és a Csak kérésre opciót választjuk.

Szintaxis: =VÉLETLEN.KÖZÖTT(alsó; felső)
Alsó: a függvény által visszaadott legkisebb egész szám.
Felső: A függvény által visszaadott legnagyobb egész szám.
Példánkban az =INDEX() a B2:B13 cellatartományt használja tömbként.
Így a =VÉLETLEN.KÖZÖTT() függvénynek 1 és 12 közötti számok közül kell egyet véletlen eredményként.
Ezért aztán, ha a =VÉLETLEN.KÖZÖTT() függvény eredménye 12 (mint az ábrán), az =INDEX() eredménye a B12 cellában lévő név.

4 a 6-ból
2019. október 7.

Verzió: Excel 2016, 2013, 2010, 2007

Nem, ez nem lottó. Kilenc terméket vizsgálunk 6 szempontból. Ahhoz, hogy a termék (pl.) piacra kerülhessen, a hat tesztből négyben 70 vagy több pontot kell kapnia.

További nehezítés, hogy csak azok a termékek kerülhetnek piacra, melyek a harmadik és a hatodik teszten átmentek. Ez a második rész.
A teszt eredménye:

Nézzük a képletet (I3):
=HA(DARABTELI(C3:H3;">=70")>=4;"Átment";"Elbukott")
A DARABTELI() résszel kezdjük, mely az egyes termékeknél (sorok) megszámolja azokat a sikeres tesztek számát.
Az ábra jelzi a sikeres teszteket, ez a Termék 1 esetében: 2, a Termék 2 esetében: 4, a Termék 3 esetében: 3, és így tovább.
Célszerű lehet, ha ezt önálló oszlopban is feljegyezzük

A DARABTELI() eredményét most összehasonlítjuk a 4 számmal és a nagyobb vagy egyenlő operátorral.
Az eredmény IGAZ vagy HAMIS logikai érték, mely a =HA() függvényben szerepel majd.
Ha 4 vagy több teszt eredménye legalább 70, a =HA() eredménye Átment vagy Elbukott.
Ez volt a könnyebb rész.
Ha kikötöttük, hogy a 3. és 6. teszten feltétlenül Átment eredmény kell, a képletet így egészíthetjük ki:

A képlet (J3):
=HA(ÉS(DARABTELI(C3:H3;">=70")>=4;E3>=70;H3>=70);"Átment";"Elbukott")
Nézzük az =ÉS() függvényt
(ÉS(DARABTELI(C3:H3;">=70")>=4;E3>=70;H3>=70)
Eredménye csak akkor IGAZ, ha a következő három kritériumnak megfelel:
1. 6 tesztből 4-ben Átment az eredmény,
2. Átment a 3. teszten,
3. Átment a 6. teszten.
Esetünkben ezek a Termék 2 és a Termék 7
Megjegyzés: ha esetleg a vagy/vagy logikára lenne szükségünk, használjuk a =VAGY() függvényt, esetleg a =VAGY() és =ÉS() kombinációját.

Részösszeg – trükkös megoldás
2019. szeptember 30.

Verzió: Excel 2016, 2013, 2010, 2007

Mi a helyzet akkor, ha részösszegeket szeretnénk kapni, ám adataink nem függőlegesen, hanem vízszintesen rendezettek.

Ezért a megszokott =RÉSZÖSSZEG() nem igazán alkalmazható.
Lássuk a példát:

Van három Munkatárs, eredményeiket és a megfelelő jutalékokat látjuk négy év bontásában.
Azt szeretnénk, ha megkapnánk ez egyes évek eredményeit, a jutalékokat és (természetesen) a végösszegeket.
Ha az adatok függőlegesen lennének rendezettek, egyszerű lenne a dolgunk, a =RÉSZÖSSZEG() függvénnyel könnyedén megoldanánk. Most azonban egy kis ügyességre van szükség.
Lépések:
1. Jelöljük ki a teljes tartományt (A1:M4).
2. Másoljuk vágólapra (Ctrl + C).
3. Néhány sorral lejjebb (itt A7) másoljuk be a vágólap tartamát a Beillesztés > Irányított beillesztés párbeszédablak segítségével.

A megjelenő párbeszédablakban jelöljük be a Transzponálás jelölőnégyzetet, majd OK:

4. Ezt kapjuk:

És az adatok vertikálisan vannak elrendezve.
5. Válasszuk: ADATOK > Tagolás > Részösszeg és jelöljük ki a Bevétel és Jutalék kategóriákat (a Csoportosítási alap: Év. Függvény: Összeg):

Ezt kapjuk:

6. Amíg az adatok ki vannak jelölve, > Ctrl + C, az A1 cellába állok és bemásolom az adatokat az előzőhöz hasonlóan (Irányított beillesztés > Transzponálás).
Egy kis formázás, az oszlopszélesség beállítása, és adataink a kívánt formában!

7. Most a segédtábla kijelölése után eltávolíthatjuk a Tagolást, törölhetjük.

Egy kis trükk, és használható adataink vannak.

SZORZATÖSSZEG – több oszlop
2019. szeptember 23.

Verzió: Excel 2016, 2013, 2010, 2007

A legtöbb SZORZATÖSSZEGes példában egy listát elemzünk adott kritérium alapján. Némi módosítással nézzünk egy összetettebb megoldást: SZORZATÖSSZEG és definiált nevek.

Nézzünk egy egyszerű listát: termékek havi értékesítési eredményei. A kiegészítésekkel (helyszín, név stb.) nem törődünk.
A termék kiválasztása az ADATOK > Adateszközök > Érvényesítés megoldással történik (A2).

A táblázat fejléce tartalmazza a negyedéves eredmények összegzését (D2, F2, H2 és J2, továbbá az éves eredmény kimutatását: M2.
A kezelhetőség érdekében az egyes tartományoknak nevük van. Így a terméklista a
T_List: A7:A100 (lehet bővíteni),
a teljes év, a Jan.-Dec. neve Év: B7:M100,
az első negyedév, a Jan.-Márc. neve Q_1: B7:D100, az oszlopoknak megfelelően,
a második negyedév, az Ápr.-Jún. neve Q_2: E7:G100, az oszlopoknak megfelelően,
a harmadik negyedév, a Júl.-Szept. neve Q_3: H7:J100, az oszlopoknak megfelelően,
a negyedik negyedév, az Okt.-Dec. neve Q_4: K7:M100, az oszlopoknak megfelelően.

Lássuk, hogyan működik: Termék 1 (7., 11., 15. és 19. sor) az 1. negyedévben:

A képlet (D2):
=SZORZATÖSSZEG((T_List=A2)*Q_1)
Tartományok, hivatkozások nélkül, két névre redukálva a képletet kapjuk meg az eredményt.
Ugyanígy megoldható az össze negyed, itt a Termék 3 4. negyedévi eredménye:

A képlet (D2):
=SZORZATÖSSZEG((T_List=A2)*Q_4)
Ilyen egyszerű. Végül a Termék 4 éves összesítése (M2):

=SZORZATÖSSZEG((T_List=A2)*Év)

Summa summarum
2019. szeptember 16.

Verzió: Excel 2016, 2013, 2010, 2007

Az Excel legtöbbet használt függvény a =SZUM(). Most néhány alapvető, egyszerű megoldás ezzel az egyszerű függvénnyel.

A következők kerülnek terítékre: A SZUM
SZUM: nem összefüggő tartományok
SZUM: két tartomány metszéspontja
SZUM: szövegként formázott számok
SZUM: HA egy kritériummal
SZUM: ha nagyobb, mint
SZUM: ha több kritériummal
SZUM: két dimenzióban
SZUM: legnagyobb értékek
SZUM: legkisebb értékek
SZUM: minden n-edik sor
A SZUM
Az egyszerű SZUM függvény a legalapvetőbb dolog. Semmi extra.

A képlet (B15):
=SZUM(C2:C11)
A képlet a C2:C11 tartomány celláinak értékét adja össze.
SZUM: nem összefüggő tartományok összege
A SZUM függvényt nem csak egyetlen tartományban lehet alkalmazni. A tartományok közötti pontosvessző (;), ahogy ezt legutóbb ismertettem, az egyesítő operátor, amely több hivatkozást egyesít egyetlen hivatkozásban:

A képlet (B15):
=SZUM(C2:C5;D7:D8;E9:E11;C10)
A képlet összeadja a felsorolt tartományok értékeit, mintha egyetlen tartomány lenne.
SZUM: két tartomány metszéspontjának összege
A szóköz a metszet operátor, amely a képletben szereplő tartományokra jellemző cellákra mutató hivatkozásokat ad eredményül.
Nézzük a példát:

A képlet (B15):
=SZUM(D2:D11 C7:E8)
Láthat a szóköz a két tartomány között: a képlet a D7:D8 cellák értékét (6 + 7) adja össze, mert ez a két cella mind a D2:D11, mind a C7:E8 tartományban szerepel.
SZUM: szövegként formázott számok összege
Ha a számok szövegként formázottak, mint annyiszor, bizony gondot okoz az összeadásuk. Ám meg lehet oldani ezt a gondot.

Az ábrán a C2:C11 cellák értékei előtt egy aposztróf (')szerepel, így az Excel szövegként értelmezi őket.
A képlet a B15 cellában:
=SZUM(C2:C11)
Az eredmény 0 (zéró), mert a tartományban nem számok szerepelnek, így nem lehet összeadni őket.
Ha a szövegként formázott számot megszorozzuk 1-gyel vagy használjuk a kettős mínuszt, a szöveget számmá konvertáljuk.
A képlet 2 a B18 cellában:
{=SZUM(--C2:C11)}
Látjuk, ez tömbképlet, a szövegből érték lesz, majd következik az összeadás.
A képlet 3 a B21 cellában:
=SZORZATÖSSZEG(--C2:C11)
A =SZORZATÖSSZEG() függvénnyel tömbképlet nélkül kapjuk meg ugyanezt az eredményt, ugyanígy a logikai értékek konvertálásával (két mínusz).
SZUM: HA egy kritériummal
A =SZUMHA() jól ismert függvény, ha olyan értékeket akarunk összeadni, melyek egyetlen kritériumnak felelnek meg.
Bár ezt a =SZUM() maga is meg tudja oldani:

A képlet a B16 cellában:
{=SZUM(C2:C11*(B2:B11="fekete"))}
A tömbképlet a C2:C11 tartományban azoknak a celláknak az értékeit adja össze, ahol a B2:B11 tartomány "fekete".
A képlet 2 a B19 cellában:
=SZUMHA(B2:B11;"fekete";C2:C11)
A =SZUMHA() függvénnyel tömbképlet alkalmazása nélkül jutunk ugyanehhez az eredményhez.
SZUM: ha nagyobb, mint
Ha folytatjuk az előző példát, a =SZUM() függvénnyel összeadhatjuk azokat az értékeket, melyek nagyobbak egy tetszőlegesen megadott értéknél:

A képlet a B15 cellában:
{=SZUM(C2:C11*(C2:C11>8))}
Itt a 8-nál nagyobb értékeket adtuk össze, tömbképlettel.
Van megoldás tömbképlet nélkül is, a =SZORZATÖSSZEG segítségével.
A képlet 2 a B18 cellában:
=SZORZATÖSSZEG(C2:C11*(C2:C11>8))
Egyik kedvenc függvényem, a =SZORZATÖSSZEG kezeli a tömböket, ezért olyan jó megoldás.
SZUM: HA több kritériummal
Az Excel 2007 óta lehetőség van több kritérium alkalmazására, de (bármennyire meglepő) a =SZUM() is tud több kritériumot kezelni, ahogy ezt látjuk:

A példában 2 kritérium szerepel: "fekete" és "cipő", azaz a fekete cipők mennyiségét keressük.
A képlet a B16 cellában:
{=SZUM(C2:C11*(B2:B11="fekete")*(A2:A11="cipő"))}
Lám, tömbképlettel a =SZUM() is kezeli a több kritériumot.
A C2:C11 tartományból azoknak a celláknak az összegét kapjuk meg, melyeknél a megfelelő cellák értéke a B2:B11 tartományban "fekete", ÉS az A2:A11 tartományban "cipő"
A második megoldás tömbképlet nélkül (B19):
=SZUMHATÖBB(C2:C11;B2:B11;"fekete";A2:A11;"cipő")
A =SZUMHATÖBB() gyorsabb és egyszerűbb, mint a tömbképlettel történő summázás, viszont meg kell szokni a =SZUMHA() és a =SZUMHATÖBB() szintaktikájának különbségét, ahogy erről már többször volt szó.
SZUM: két dimenzióban
A =SZUM() "sorokon, oszlopokon át" is kiválóan funkcionál.

A két dimenzió (sorok és oszlopok) jó példája: a fekete színű termékek (sorok) februári (oszlopok) összegzését akarjuk elvégezni.
A képlet a B15 cellában:
{=SZUM(C2:D11*(B2:B11="fekete")*(C1:D1="Február"))}
A tömbképlet azokat az értékeket összegzi, melyek megfelelnek a sorokban a fekete és az oszlopokban a Február kritériumoknak.
A képlet 2 a B18 cellában:
=SZORZATÖSSZEG((C2:D11)*(B2:B11="fekete")*(C1:D1="Február"))
Látható, hogy a =SZORZATÖSSZEG() sokkal kényelmesebb, és jobban kezeli a feladatot.
SZUM: legnagyobb értékek összege
Ha a =NAGY() függvényt kombináljuk a =SZUM() függvénnyel, összeadhatjuk a legnagyobb értékeket.

(A példában az értékek övekvő sorrendbe rendezettek, ennek semmi hatása nincs az eredményre, a három legnagyobb érték összegét keressük.)
A képlet a B15 cellában:
{=SZUM(NAGY(C2:C11;{1;2;3}))}
A tömbképlet a C2:C11 tartomány 3 legnagyobb értékét adja össze. Ha változtatni akarunk, a kapcsos zárójelben lévő tömböket kell módosítani, így pl. az {1;2;3} módosítható {1;3;5}, így az első, harmadik és ötödik legnagyobb értékek összegét kapjuk meg.
A képlet 2 a B18 cellában:
=SZUM(ÖSSZESÍT(14;4;C2:C11;{1;2;3}))
A képlet a tömbképlet elkerülését elkerülendő az =ÖSSZESÍT() függvényt használja.
SZUM: legkisebb értékek összege
A =NAGY() és a KICSI() függvények alkalmazása egyforma.

Az előző példa mintájára a 3 legkisebb érték összegét keressük.
A képlet a B15 cellában:
{=SZUM(KICSI(C2:C11;{1;2;3}))}
A képlet 2 a B18 cellában:
=SZUM(ÖSSZESÍT(15;4;C2:C11;{1;2;3}))
SZUM: minden n-edik sor összege
Gyakori feladat, hogy a konzisztens struktúrájú táblázatok minden n-edik sorának értékei kell összeadni.
A példában minden harmadik cella értékeinek összegét akarjuk megkapni, de lehetne minden második, ötödik stb.

A képlet a B15 cellában:
{=SZUM(C2:C11*(MARADÉK(SOR(C2:C11);3)=0))}
Ez egy kissé bonyolult tömbképlet, nézzük:
1. SZUM(1;2;3;4;5;6;7;8;9;10}*(MARADÉK({2;3;4;5;6;7;8;9;10;11};3)=0))
Megjelenítettük a tartomány értékeit, a =SOR() eredményét.
2. SZUM(1;2;3;4;5;6;7;8;9;10}*({2;0;1;2;0;1;2;0;1;2}=0))
Látjuk a maradékokat.
3. ({SZUM(1;2;3;4;5;6;7;8;9;10}*({HAMIS;IGAZ;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS}))
Az 1 és 2 érték HAMIS, a 0 maradék IGAZ.
3. SZUM({0;2;0;0;5;0;0;8;0;0})
Néhány lépést átugorva ezt kaptuk: a 2., 5., és 8. sor értékei következnek.
4. 15
A képlet 2 a B18 cellában:
=SZORZATÖSSZEG(C2:C11*(MARADÉK(SOR(C2:C11);3)=0))
Ismét a kedvenc, ezzel váltottuk ki a tömbképletet.
Summa summarum, a példákban bemutatott helyzetekben egy sor esetben nem használjuk a =SZUM()függvényt, de néhány technika érdekes lehet.
Nem ismertettem a felhasznált függvényeket, rengetegszer szerepeltek már.

Adjunk meg egyszerre több definiált nevet!
2019. szeptember 9.

Verzió: Excel 2016, 2013, 2010, 2007

A definiált nevek alkalmazásáról már többször volt szó. Itt csak a leglényegesebbekről lesz szó. Most egy trükkel tesszük könnyebbé a munkát.

Nevek használatával sokkal érthetőbbé és kezelhetőbbé tehetjük a képleteket. Nevet adhatunk cellatartományoknak, függvényeknek, állandóknak vagy táblázatoknak. Miután megszokta, hogy a munkafüzetben neveket használ, ezeket egyszerűen frissítheti, vizsgálhatja és kezelheti.
A név jelentést hordozó hivatkozás, amely megkönnyíti egy, elsőre talán nehezen átlátható cellahivatkozás, állandó, képlet vagy tábla céljának megértését.
Kezdjük mindjárt egy bonyolultnak tűnő feladattal: a következő kis táblázatot szeretnénk egyszerűen kezelni.

Jelöljük ki a tartományt.
Kattintsunk: KÉPLETEK > Definiált nevek > Kijelölésből új.

Ezt kapjuk:

Bejelöltük, honnan szeretnénk kapni az adatokat. Esetünkben a felső sorból (negyedévek) és a bal oszlopból (régiók).
Ha most a táblázat egyik adatát kijelöljük (itt a C3), a bal felső sarokban található Név mező lenyílójára kattintunk, ezt látjuk:

És most nézzük a trükköt.
Szeretnénk egyszerűen megkapni Dél régió 2. és 3. negyedévi eredményét.
A képlet a B9 cellában:

Látható, hogy a Dél definiált névvel jelzett tartomány és a 2. és 3. negyedév tartomány között csak szóköz van.
Ez a metszet operátor. Ha helyesen használjuk, sok időt takaríthatunk meg, a számítási modelleket nagyban leegyszerűsíti, nem kell módosítani a hivatkozásokat stb.
Az operátorok határozzák meg a képlet elemein végrehajtandó számítási műveleteket.
A számítási operátoroknak négy típusa van: aritmetika, összehasonlítás, szöveg összefűzése (szöveg egyesítése) és hivatkozás.
Itt most csak a hivatkozás érdekel bennünket.
A hivatkozási operátorokkal cellák tartományait egyesíthetjük számítások céljából.
Így
: (kettőspont): ez a tartományoperátor, amely a két hivatkozás közötti összes cellára (beleértve a két hivatkozást is) egyetlen hivatkozást eredményez --> D3:D15
; (pontosvessző): ez az egyesítő operátor, amely több hivatkozást egyesít egyetlen hivatkozásban --> SZUM(D3:D15;E3:E15)
szóköz (szóköz): ez a metszet operátor, amely a képletben szereplő tartományokra jellemző cellákra mutató hivatkozásokat ad eredményül --> D3:F3 E2:E4. A példában az E3 cella mindkét tartományban megtalálható, ez a metszet
Nézzük a példát:

És valóban: 13030 + 44934 = 57964.
(Azért meg kell jegyezni, az operátor angol megnevezése [intersection] jobban kifejezi a lényeget.)

Elemek száma egy másik oszlopban lévő kritérium alapján
2019. szeptember 2.

Verzió: Excel 2016, 2013, 2010, 2007

Hogyan lehet meghatározni egy oszlopban lévő elemek számát, ha a számlálás kritériumát egy másik oszlop tartalmazza?

Vegyünk egy mindennapi példát.
Egy központi elosztó cég naponta küld (mondjuk) alkatrészeket telephelyekre (Észak, Dél, Kelet, Nyugat).
Ha a küldeményekkel valamilyen gond van (késedelem, kár, hiányos), egy külön oszlopban jelezzük. Ez itt a D oszlop.

Arra vagyunk kíváncsiak, hány küldeménnyel volt gond.
A megoldásra leginkább a DARABTELI() függvény tűnik alkalmasnak, ám van egy kis gond.
Nézzük a lehetőségeket, hogyan lehet megszámlálni az elemeket.
1. A kiválasztott régió (B13) részére küldött TERMÉKEK száma
Ha a Kelet régióba küldött mennyiséget akarjuk megkapni, egyszerű a dolog: a =SZUMHA() függvény.

SZUMHA()
A függvény a megadott kritériumoknak eleget tevő cellákban található értékeket adja össze.
Szintaxis: =SZUMHA(tartomány;kritériumok;[összegtartomány])
=SZUMHA(B2:B11;B13;C2:C11)
Ellenőriztük a régiók neveit a B oszlopban, és összeadtuk a megfelelő számokat a C oszlopban.
Azaz: =SZUMHA(régiók; kiválasztott régió [Kelet];mennyiség)
Megkapjuk az eredményt: 47 (C2: 12, C4: 19, C8: 3, C11: 13 = 47).
Viszont nem tudjuk, hány küldeménnyel van probléma.
2. A kiválasztott régió (B13) részére küldött SZÁLLÍTMÁNYOK száma
Ha a Kelet régióba küldött szállítmányok számát akarjuk megkapni, a =DARABTELI() függvény a megoldás.

DARABTELI()
Egy tartományban összeszámolja azokat a cellákat, amelyek eleget tesznek a megadott kritériumnak.
A függvény csak két argumentumot tartalmaz:
Szintaxis: =DARABTELI(tartomány;kritériumok)
=DARABTELI(B2:B11;B13)
Azaz: =DARABTELI(régiók;kiválasztott régió [Kelet])
Így megkaptuk, hányszor szerepel a régiók között "Kelet".
Előrébb még nem vagyunk, de az Excel 2007 óta itt a =DARABHATÖBB() függvény.
3. A kiválasztott régió (B13) részére küldött problémás SZÁLLÍTMÁNYOK száma

DARABHATÖBB()
A függvény kritériumokat alkalmaz több tartomány celláira, és megszámolja, hogy hány alkalommal teljesül valamennyi kritérium.
Szintaxis: =(DARABHATÖBB(kritériumtartomány1; kritérium1; [kritériumtartomány2; kritérium2]…)
=DARABHATÖBB(B2:B11;B13;D2:D11;"<>")
Azaz: =DARABHATÖBB(régiók;kiválasztott régió [Kelet];gondok bejegyzései [D oszlop];nem üres cellák a D oszlopban)
Ellenőrizzük a B oszlopot, hányszor szerepel a "Kelet" régió, majd a D oszlopot, hány nem üres cella van benne.
A "<>" kritérium a "nem egyenlő" operátor. Ha önmagában használjuk, jelentése: "nem egyenlő 'szöveggel'", így megszámlálja a nem üres cellákat.
A =DARABHATÖBB() függvény "megoldotta" a gondot. A 2. és 8. sorban a "Kelet" régió szállításainál van gond (D oszlop: D2, D8).
Üres <> Nem üres
A példában a D oszlop néhány cellájában megjegyzések olvashatók, a többi üres.
A képlet csak a nem üres cellákat számolja meg.
Ha ebben az oszlopban képletek lennének, néhány cella eredménye "" lenne (azaz üres karakterlánc), és ezeket a képlet szintén nem üres cellának értelmezné, mint a szöveget tartalmazókat, jóllehet üresnek látszanak.
Győződjünk meg arról, hogy az üres cellák valóban üresek, ha ezt a képletet alkalmazzuk.
Vagy alkalmazható a SZORZATÖSSZEG() függvénnyel használt képlet:
=SZORZATÖSSZEG(--(B2:B11="Kelet");--(D2:D11<>""))
Az eredmény: 2.
A képlet két eleme előtti két mínuszjelről
Már többször volt szó erről a megoldásról, így röviden.
Nézzük a megoldást:
SZORZATÖSSZEG(--(B2:B11="Kelet");--(D2:D11<>""))
SZORZATÖSSZEG(--({IGAZ;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS,HAMIS;IGAZ});--(D2:D11<>""))
SZORZATÖSSZEG(--{IGAZ;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS,HAMIS;IGAZ};--(D2:D11<>""))

A következő lépésben az IGAZ/HAMIS értékeket numerikus értékekké, azaz 1 és 0 értékekké kell alakítanunk. Erre alkalmazzuk a "két mínuszjel trükköt".
SZORZATÖSSZEG(--({1;0;1;0;0;0;1;0;0;1};--({IGAZ;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;IGAZ;HAMIS,HAMIS;HAMIS}))
Tovább:
SZORZATÖSSZEG(--({1;0;1;0;0;0;1;0;0;1};--{IGAZ;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;IGAZ;HAMIS,HAMIS;HAMIS})
SZORZATÖSSZEG(--({1;0;1;0;0;0;1;0;0;1};--{1;0;0;0;1;0;1;0,0;0})

A két mínusz a képletben az IGAZ értéket "1" értékké, a HAMIS értéket "0" értékké alakítja.

Ebben a kis példában a B2 cellában lévő képlet =(10>5). Mivel a feltétel igaz, az eredmény IGAZ.
A B3 cellában a képlet =--(10>5). Mivel a feltétel továbbra is igaz, az eredmény "1" -- a két mínuszjel "jóvoltából".
(A B5 és B6 cellában a HAMIS bemutatója.)
A képletekben használt két mínuszjel nincs hatással más eredményre, csak az IGAZ vagy HAMIS értékeket módosítja.
Ezt a technikát leggyakoribban a SZORZATÖSSZEG függvénnyel, mellyel több kritérium alapján adunk össze adatokat, együtt szokás alkalmazni. Ezt történik itt is.
A tömbök összeszorzása
Miután elvégeztük az átalakítást, elvégezhető a szorzás. (Még egyszer: a 0-val történő szorzás eredménye 0.)
A lényeg
Ezzel a módszerrel megtakarítható a =HA() függvény alkalmazása, a számítás egyetlen cellában végrehajtható.

Különbségek
2019. augusztus 26.

Verzió: Excel 2016, 2013, 2010, 2007

Most a keresési lehetőségek egyik gyors megoldásáról lesz szó.

A sorok közti különbségeket gyorsan megtalálhatjuk.
Íme egy két oszlopból álló lista. Látható, hogy a két oszlop nem azonos.

Jelöljük ki a tartományt (B2:C11).
FÁJL > Szerkesztés csoport > Keresés és kijelölés:

(Természetesen működik az F5, ill. a Ctrl + G billentyűkombináció is (Ugrás > Irányított).
A lenyílóból válasszuk: Irányított kijelölés
A megjelenő párbeszédablakban jelöljük be: Sorkülönbségek.

És itt az eredmény:

Ha több oszlopunk van, a dolog akkor is működik:

Érdemes végigmenni a párbeszédablak által kínált lehetőségeken, sok időt megtakaríthatunk, ha célszerűen alkalmazzuk őket.

Függőlegesből vízszintes
2019. augusztus 19.

Verzió: Excel 2016, 2013, 2010, 2007

Nem, ez nem keresztrejtvény.
Függőleges tartományt alakítunk át vízszintessé, képlet segítségével.

Nézzünk egy átlagos adatrendezési, adattisztítási problémát: adatok átrendezése (transzponálása).
Miről van szó? A a függőlegesen elrendezett adatokat (cellatartományt) vízszintesként adja eredményül, ill. megfordítva. Tehát ha az eredeti tartomány sorokba volt rendezve, oszlopok lesznek, és viszont.
Bevezetésként egy "naiv" példa

A B2:B9 függőleges tartományt vízszintessé alakítottuk át a C11 cellától kezdődően.
A képlet: =INDEX($B$2:$B$9;OSZLOPOK($B$2:B9))
Ezt húztuk végig a J11 celláig.
Az ábra másik része azt mutatja, hogy ezt a tartományt (C11:J11) függőlegessé alakítjuk a C15 cellától kezdődően.
A képlet: =INDEX($C$11:$J$11;SOROK($C$11:J11))
Az =INDEX() függvényt már rengetegszer bemutattam, így csak röviden:
Táblázatban vagy tartományban található érték hivatkozását vagy értékét adja vissza.
A függvénynek két alakja van:
a tömbös forma, amely adott cella vagy cellatömb értékét adja eredményül.
a hivatkozásos forma, amely adott cellák hivatkozását adja eredményül, és
Szintaxis 1: =INDEX(tömb;sor_szám;[oszlop_szám])
Tömb: cellatartomány vagy tömbállandó.
Ha a tömb egyetlen sorból vagy oszlopból áll, akkor a megfelelő sor_szám, illetve oszlop_szám argumentum elhagyható.
Ha a tömb egynél több sorból és egynél több oszlopból áll, és csak a sor_szám vagy csak az oszlop_szám argumentumot adjuk meg,
akkor az INDEX függvény eredménye a tömb teljes sorából, illetve oszlopából álló tömb lesz.
Sor_szám: a tömbben annak a sornak a száma, amelyikből az értéket meg szeretnénk kapni.
Ha a sor_szám hiányzik, akkor az oszlop_szám argumentum megadása kötelező.
Oszlop_szám: a tömbben annak az oszlopnak a száma, amelyikből az értéket meg szeretnénk kapni.
Szintaxis 2: =INDEX(hivatkozás;sor_szám;[oszlop_szám];[terület_szám])
A hivatkozáson belüli adott cellákra mutató hivatkozást ad eredményül.
Hivatkozás: egy vagy több cellatartományra való hivatkozás.
Ha nem összefüggő tartományt adunk meg hivatkozásként, akkor a hivatkozást zárójelek közé kell tenni.
Ha a hivatkozás argumentumban szereplő egyes területek csak egyetlen sort vagy oszlopot tartalmaznak, akkor a sor_szám vagy az oszlop_szám argumentum elhagyható.
Ha a hivatkozás például csak egyetlen sorra vonatkozik, akkor elegendő annyit írni: INDEX(hivatkozás;;oszlop_szám).
Sor_szám: a hivatkozásban annak a sornak a száma, amelyikből az eredményhivatkozást meg szeretnénk kapni.
Oszlop_szám: a hivatkozásban annak az oszlopnak a száma, amelyikből az eredményhivatkozást meg szeretnénk kapni.
Terület_szám: a hivatkozásnak azt a tartományát jelöli ki, amelyből a sor_szám és oszlop_szám által meghatározott eredményhivatkozást meg szeretnénk kapni.
A másik két függvény:
=OSZLOPOK()
Egy hivatkozásban vagy egy tömbben lévő oszlopok számát adja eredményül.
Szintaxis: =OSZLOPOK(tömb)
Tömb: az a tömb, tömbképlet vagy cellatartományra való hivatkozás, amelyre vonatkozóan az oszlopok számát meg szeretnénk kapni.
=SOROK()
Egy hivatkozásban vagy tömbben található sorok számát adja meg.
Szintaxis: =SOROK(tömb)
Tömb: az a tömb, tömbképlet vagy cellatartományra mutató hivatkozás, amelyben meg szeretnénk kapni a sorok számát.
Nézzünk egy másik példát!
Könnyű megváltoztatni a táblázat struktúráját: sorokból oszlopok vagy oszlopokból sorok.
Lépések:
1. Jelöljük ki a tartományt (itt:B1:N6), majd másoljuk (Ctrl + C).
2. Válasszunk ki egy cellát, ahová az új elrendezésű táblázatot szeretnénk tenni (itt B8).
3. KEEZDőLAP > Beillesztés > Irányított beillesztés.

A párbeszédablakban válasszuk: Transzponálás.

És íme:

Fölmerülhet a kérdés, miért ezt a megoldást választottam, hiszen itt van (az igazából nem nagyon használt) =TRANSZPONÁLÁS(), mely erre "van kitalálva".
Egy példa:

A képlet a G2:I5 cellákban:
{=TRANSZPONÁLÁS(B2:E4)}.
Erre szolgál a kevésbé használatos =TRANSZPONÁLÁS() függvény
A függvény szintaxisa: =TRANSZPONÁLÁS(tömb)
Tömb: a munkalap transzponálandó tömbje vagy cellatartománya.
A transzponálás során a tömb első oszlopa lesz az új tömb első sora, a második oszlopa az új tömb második sora és így tovább. (Kékkel szedve.)
Mi a gond ezzel a megoldással?
A =TRANSZPONÁLÁS() függvényt tömbképletként kell bevinni, ezt sokan nem szeretik.
A sorok számának a tömb oszlopainak számával, az oszlopok számának pedig a tömb sorainak számával kell egyeznie.
És a legfőbb gondom: ezzel a megközelítéssel gyakorlatilag az eredeti adatok másolatát készítjük el, így ha valamilyen ok miatt módosítanunk kell az eredeti adatokat, billentyűkombinációkkal és komoly időveszteséggel (gondos ellenőrzés!!!) tudjuk frissíteni a transzponálást.
Ez ebben az esetben nem a legjobb megközelítés.
Az Irányított beillesztés > Transzponálás révén ez a gond könnyedén elkerülhető, elegáns, gyors megoldás.

Adattábla
2019. augusztus 12.

Verzió: Excel 2016, 2013, 2010, 2007

Az Adattábla olyan cellatartomány, amelyben néhány cellában módosíthatjuk az értékeket, és a problémákra eltérő válaszokat kaphatunk. Az adattábla jó példája, ha a =RÉSZLET() függvénnyel különböző hitelekkel és kamatlábakkal számítjuk ki a megfizethető összegeket.

Ha az ADATOK csoportban a Lehetőségelemzés lenyílóra kattintunk, ezt látjuk:

Az Excel alkalmazásban háromféle elemzési eszköz létezik:
Esetvizsgáló,
Célértékkeresés,
Adattábla.
Ebben a bejegyzésben az Adattáblával foglalkozunk.
Az adattáblák lehetővé teszik különböző esetek áttekintését egyetlen táblázatban.
Egy adattábla legfeljebb két változót tartalmazhat.
Ha több mint két változót szeretnénk elemezni, inkább az Esetvizsgálót alkalmazzuk. Bár az Adattábla csak egy vagy két változóra korlátozódik (az egyik a sor, a másik az oszlop bemeneti cellája), az adattábla tetszőleges számú változó értéket tartalmazhat. Egy eset legfeljebb 32 különböző értékkel rendelkezhet, de korlátlan számú esetet létrehozhat.
Az adattáblákkal könnyen és gyorsan megvizsgálhatjuk a lehetőségeket. Mivel csak egy vagy két változóra kell figyelni, az eredmények könnyen olvashatók és megoszthatók táblázatos formátumban.
Míg az Esetvizsgáló és a Célértékkeresés a megadott eredményt adó bemeneti érték(ek)et keresi meg, az Adattábla kimeneteket határoz meg, különböző bemeneti érték(ek) függvényében.
Használatával egy olyan táblázatot kapunk, melyben könnyedén áttekinthető, milyen lehetséges eredmények születhetnek a különféle bemenetek esetén.
Bár ezt általában képletmásolással is meg lehet oldani, egyszerűbb, ha inkább ezt az éppen erre tervezett eszközt használjuk.
A kiszámított megoldások adatkövetőek, vagyis reagálnak mind a képlet, mind a bemeneti adatok megváltoztatására.
Létezik egy- és kétváltozós adattábla is, de előbbit nem nagyon szoktuk használni.
Ritkán fordul ugyanis elő, hogy a képlet annyira összetett, hogy a feladat megoldása függvénymásolással hosszabb lenne, mint adattábla használatával.
Azért egy bevezető példa:
A lépések:
A példában olyan adattáblával dolgozunk, melyben a kölcsön ideje 1 és 6 év közötti, a fizetések gyakorisága 12-től 72ig terjed.
Fontos! a beviteli celláknak az adattáblával azonos lapon kell lenniük.
1. A B8:B13 cellákba írjuk be az 1-től 6 évig terjedő részletfizetések számát.
2. a C7 cellába írjuk be a =RÉSZLET(C2/12;C3;C4) függvényt, mely a hitelinformációkra hivatkozik.
3. Jelöljük ki a B7:C13 cellákat (fejléc és adatok).
4. Kattintsunk: Adatok > Adateszközök > Lehetőségelemzés > Adattábla. (Lásd a fenti ábrát.)
5. Kattintsunk az Oszlopérték bemeneti cellája mezőbe, majd kattintsunk a C3 cellára (ez tartalmazza a Fizetések száma változót).
6. OK, bezárjuk a párbeszédablakot.
7.Válasszuk ki a havi törlesztők celláit és formázzuk: Pénznem. Itt a negatív számok vörösek, előjellel.

8. Ha rákattintunk a havi törlesztők valamelyik cellájára, a Szerkesztőlécen a TÁBLA függvényt látjuk, benne második argumentumként a C3 cellát. A kapcsos zárójel mutatja, tömbképlettel van dolgunk.

Mielőtt folytatnánk, egy fontos információ.
Az Adattábla törlése
Mivel az adattábla értékei tömböt alkotnak, az egyes cellákat nem lehet szerkeszteni vagy törölni. Ez kezdőknek sok bosszúságot okoz.
Ha az egész táblát vagy az eredményeket törölni akarjuk, a megoldás:
1. Jelöljük ki az adattábla összes celláját a fejléccel együtt.
2. Nyomjuk meg a Del billentyűt.
Ha csak az eredményeket törölnénk:
1. Jelöljük ki az összes eredményt.
2. Nyomjuk meg a Del billentyűt.
Ahogy említettem, az egyváltozós adattábla csak a bemutatás célját szolgálta.
Nézzünk egy példát 2 változóval.
A menet megegyezik az előzővel, annyi a plusz, hogy a Sor bemeneti értékéhez kattintsunk a C2 cellára (kamatláb).

A =RÉSZLET() függvényről
A törlesztési időszakra vonatkozó törlesztési összeget számítja ki állandó nagyságú törlesztő részletek és kamatláb esetén.
Szintaxis: =RÉSZLET(ráta; időszakok_száma; mai_érték; [jövőbeli_érték]; [típus])
Ráta: az időszakonkénti kamatláb.
Időszakok_száma: a fizetési időszakok száma a törlesztési időszakban.
Mai_érték: a jövőbeli kifizetések jelenértéke, vagyis az a jelenbeli egyösszegű kifizetés, amely egyenértékű a jövőbeli kifizetések összegével.
Jövőbeli_érték: a jövőbeli érték vagy az utolsó részlet kifizetése után elérni kívánt összeg. Ha a jövőbeli_értéket elhagyja, a program 0-nak tekinti (például egy kölcsön jövőbeli értéke 0).
Nem kötelező megadni.
Típus: értéke 0 vagy 1; azt mutatja, hogy mikor esedékesek a résztörlesztések.
Nem kötelező megadni.
Ügyeljünk arra, hogy a ráta és az időszakok_száma mértékegységét következetesen használjuk.
Ha pl. egy 4 éves, 12%-os éves kamatrátájú kölcsön havi törlesztő részletét szeretnénk kiszámolni,
a ráta: 12%/12, az időszakok_száma: 4*12.
Ugyanez a kölcsön éves részletekben: a ráta 12%, az időszakok_száma 4.
Még egy gyakorlati példa, legyen autóvásárlás.
Vegyünk egy 48 hónapos futamidejű, 2 millió Ft-os, évi 10 százalékos kamatozású hitelt!
Nézzünk bele a családi büdzsébe, és variáljunk.
Mekkora a havi törlesztő így? Mekkora lenne, ha nem 48, hanem egy évre (12hónap), vagy 24, vagy 36, netán 60 hónapra vennénk fel a hitelt?
S mennyi lenne akkor, ha nem 2 millió Ft-ot vennénk fel, hanem csak másfelet vagy egyet, esetleg 2,5 vagy 3 milliót?

Lehet mérlegelni.
A példák nem tükrözik a mai valóságot, kizárólag szemléltető jellegűek.

Alaptőke megduplázása – a 72-es szabály
2019. augusztus 5.

Verzió: Excel 2016, 2013, 2010, 2007

Egy több ezer fős mintán alapuló felmérés szerint az átlag magyar egyáltalán nem ismeri azt a rendkívül egyszerű szabályt, amellyel akár fejben is azonnal ki lehet számolni, hogy egy adott kamatlábbal bankban elhelyezett tőke (vagy adott hozamú befektetetett összeg) hány év alatt duplázódik meg. (Forrás: itt)

Lehet még fokozni: mennyinek kellene lennie a kamatlábnak, hogy az adott időtartamig lekötött/befektetett/ tőke megduplázódjon.
Vagy (még csak rágondolni is rossz): egy adott inflációs ráta mellett hány év alatt veszítjük el (parlagon hevező) pénzünk felét.
Lássuk a lényeget! A kamatos kamat lényege, hogy az adott befektetési periódus végén a törzstőkére járó kamatot nem fizetik ki, hanem hozzáadják a tőkéhez, és ez a következő időszakban kamatozik, azaz többletkamat keletkezik.
Így a következő periódus során a megnövekedett tőke fog nekünk kamatot, vagy osztalékot fizetni.
Bár a Microsoft Excel nem tartalmaz függvényt a kamatos kamat meghatározására, a 2013 változatban bevezetett KAMATÉRZ.PER (angolul PDURATION függvény jól alkalmazható, mint látni fogjuk.
És most néhány példát!
Fektessünk be 100.000 forintot évi 6% kamattal. A 72-es szabály alapján a 72-t el kell osztanunk a kamatláb értékével, és már megkaptuk a végeredményt.
72:6=12
Pontosítsunk: az első év végén 106.000 pénzünk van. Ha ezt tovább kamatoztatjuk, a második év végére az összeg 112.360 Ft. A harmadik év végére már 119.102 forintunk van, persze továbbra is 6% kamattal. Ha tovább számolunk, kiderül, hogy a 12. év végére a 100.000 Ft gyakorlatilag megduplázódik.
Azaz:

Lássuk részleteiben. A következő táblázatban a C oszlop tartalmazza a 72-es szabály alapján számított összegeket, a D pedig az Excel KAMATÉRZ.PER függvényével számított értékeket.
(Csak zárójelben, lehetne itt logaritmusokkal "bűvészkedni", de ez csak egy Excellel foglalkozó írás.)

Látható, nagy különbségek nincsenek.
A KAMATÉRZ.PER függvényről:
A függvény kiszámítja az ahhoz szükséges időszakok számát, hogy egy befektetés elérjen egy megadott értéket.
Szintaxis: =KAMATÉRZ.PER(ráta; jelenérték; jövőérték)
Ráta: az időszakokra érvényes kamatláb.
Jelenérték: a befektetés jelenlegi értéke.
Jövőérték: a befektetés elvárt jövőbeni értéke.
A KAMATÉRZ.PER függvény a következő egyenleten alapul:

Melyben:
JövÉrt a befektetés jövőbeli értéke,
JelÉrt a befektetés jelenértéke,
ráta az időszakokra érvényes kamatláb.
Azaz a 100 000 forintos példában a ráta 6% a jelenérték 100 000 Ft, a jövőérték 200 000 (a 100 000 kétszerese).
Vissza az ábrához:
Az E oszlop azt mutatja, mennyi a különbség a két módszerrel számított érték között.
A képletek:
C4: =72/(100*B4)
D4: =KAMATÉRZ.PER(B4;1;2)
És így tovább:
C23: =72/(100*B23)
D23: =KAMATÉRZ.PER(B23;1;2)
Jól látható a fenti, 6%-os példa. példa.
Az ábrából az is kivehető, hogy az 1%-os kamatlábtól eltekintve a 72-es szabály nagyon megbízható: a 6-12%-os sávban szinte tűpontos.

Érdemes fejben alkalmazni.

Kétdimenziós keresés és összegzés 3.
2019. július 29.

Verzió: Excel 2016, 2013, 2010, 2007

Legutóbb (itt) egy bolt nyitva tartási idejében egy időintervallum forgalmára voltunk kíváncsiak.
Egy más megközelítéssel újabb megoldás.

A példa (mondjuk) egy telfonos ügyfélszolgálat hívásait mutatja munkatársanként és óránként.
Tetszés szerinti időszakok összesített forgalmát akarjuk megkapni, kiválasztott munkatársakként.

A választásokat az Érvényesítés beépített funkcióval könnyítettük meg, a D1 cellában a kezdő isőpont:
Adatok > Érvényesítés majd a párbeszédablakban az Érvényességi feltétel: Lista, Forrás: C4:N4.
Ugyanígy a befelezés (D2), majd a Név (G2) forrása: B5:B10.
A megoldás a B12 cellában:
=SZORZATÖSSZEG((C5:N10)*(C4:N4 >= D1)*(C4:N4 <= D2)*(B5:B10 = G2))
Az előző példához hasonlóan, itt sem kell több kifejezéssel definiálnunk az időszakot, összehasonlító operátorokkal oldjuk meg a kezdő és a befejelő időszakot:
nagyobb vagy egyenlő (kezdés: D1), kisebb vagy egyenlő (befejezés (D2).
Így, az egyszerűség mellett, megkapjuk a szükséges flexibilitást.
Van még egy kritériumunk. Míg az előzőket az oszlopokból kaptuk, most a sorokból kell kinyernünk a kiválasztott munkatársat. Ezt tartalmazza a G2 cella Érvényesítése, így a képlet 3. része: (B5:B10=G2).

Kétdimenziós keresés és összegzés 2.
2019. július 22.

Verzió: Excel 2016, 2013, 2010, 2007

Legutóbb (itt) egy példában nyitástól zárásig akartuk a forgalmat bizonyos szempontok szerint összegezni.
Olvasói kérdésre válaszolva következik a bejegyzés.

A példában hétfőtől péntekig, a kijelölt napokon (kedd és csütörtök) a délutáni (12.00 utáni) forgalomra vagyunk kíváncsiak. A táblázatban jelöltem:
Mint látható, egy időponttól a záró időpontig összegeztük az adatokat.

Mi a helyzet, ha egy időintervallumra vagyunk kíváncsiak?
Az egyszerűség kedvéért legyen ez nyitástól (8:00 de.) délután 1:00-ig. A napok maradnak. Így:

Tehát SZUM(D3:D7;F3:F7), azaz 89.
Lássuk a megoldást. A könnyebb kezelhetőség érdekében a cellatartományoknak definiált nevük van. Ezek a következők:
adat = C3:G13
idő = B4:B13
napok = C2:G2

Ahogy már szó volt róla, az =IDŐ() függvény az adott időponthoz tartozó tizedes törtet adja eredményül.
A B oszlopban lévő idők értékei:
0,33, 0,38, 0,42, 0,46, 0,50, 0,54, 0,58, 0,63, 0,67, 0,71, 0,75.
Így a képlet a B15 cellában:
=SZORZATÖSSZEG(adat*(idő>=0,33)*(idő<=0,5)*((napok="Kedd")+(napok="Csütörtök")))
Nézzük meg a megoldás menetét nagy lépésekben!
A SZORZATÖSSZEG soronként "feltérképezi" a tartományt:
SZORZATÖSSZEG({9\5\4\12\7;14\13\12\14\2;11\6\4\5\14; stb.}*(idő>=0,33)*(idő<=0,5)*((napok="Kedd")+(napok="Csütörtök")))
Kihagyjuk az evaulások folyamatát, rátérünk a napokra először a Keddre:
SZORZATÖSSZEG({9\5\4\12\7;14\13\12\14\2;11\6\4\5\14;10\3\8\12\14;8\9\8\10\11; itt jönnek a zérók}*({HAMIS\IGAZ\HAMIS\HAMIS\HAMIS}+(napok="Csütörtök")))
Majd ugyanez a Csütörtökkel, ezt követően ezeket értékké alakítjuk:
({0\1\0\10})
Innen már kész.

Kétdimenziós keresés és összegzés
2019. július 15.

Verzió: Excel 2016, 2013, 2010, 2007

A =SZORZATÖSSZEG() függvény hatékonyságáról már többször volt szó. Most egy újabb lehetőség: a függvény alkalmazása az időértékekkel kapcsolatban.

Tételezzük fel a következő helyzetet. Nyitástól zárásig akarjuk a forgalmat bizonyos szempontok szerint összegezni. A példában hétfőtől péntekig, a kijelölt napokon (kedd és csütörtök) a délutáni (12.00 utáni) forgalomra vagyunk kíváncsiak. A táblázatban jelöltem:

A táblázatban a forgalom (vevők száma, értékesítések száma, hívások száma stb.) szerepel, óránkénti bontásban. A B oszlopban az időt az Excel =IDő() függvényével adtam meg.
Az eredmény a B15 cellában: 81.
Ha megnézzük:
=SZUM(D8:D13)+SZUM(J13:J14) = 46 + 35 = 81
A képlet:
=SZORZATÖSSZEG(adat*(idő>0,5)*((napok="Kedd")+(napok="Csütörtök")))
Lássuk a megoldást. A könnyebb kezelhetőség érdekében a cellatartományokat elneveztem. A definiált nevek a következők:
adat = C3:G13
idő = B4:B13
napok = C2:G2

A definiált nevek révén a képlet dinamikus, ezért a =SZUM(D8:D13;J13:J14) megoldás nem igazán célravezető.
Nézzük először a képlet =(idő>0,5) részét. Ez nem más, mint =(idő>IDő(12;0;0)), hiszen az =IDŐ() függvény az adott időponthoz tartozó tizedes törtet adja eredményül.
A visszaadott érték a 0 (nulla) és 0,99999999 közötti tartományba esik, amelyek a 0:00:00 és 23:59:59 időpontnak felelnek meg.
Szintaxis: =IDŐ(óra;perc;mperc)
Óra: az órát jelölő szám, értéke 0 (nulla) és 32767 közötti lehet.
Perc: a percet jelölő szám, értéke 0 és 32767 közötti lehet.
Mperc: a másodpercet jelölő szám, értéke 0 és 32767 közötti lehet.
Megjegyzés
Óra: a 23-nál nagyobb értékeket a program elosztja 24-gyel, a maradék lesz az óra értéke.
Perc: az 59-nél nagyobb értékeket a program órákká és percekké alakítja.
Mperc: az 59-nél nagyobb értékeket a program órákká, percekké és másodpercekké alakítja.
Cellák formázása
Az eredmény idő, amit 24 vagy 12 órás rendszerre lehet formázni.
A tizedes tört a napra vonatkoztatott időt mutatja.
Ha a cellaformátum a függvény bevitele előtt Általános volt, az eredmény dátumként lesz formázva.
Vissza a megoldáshoz, a példában a 12:00 óra értéke 0,5, a 6:00 du. értéke 0,75.
Ha a =SZORZATÖSSZEG() riasztónak tűnik, röviden a függvényről.
A =SZORZATÖSSZEG() megadott tömbök megfelelő elemeit szorozza össze, majd kiszámolja a szorzatok összegét.
Az első tömb (oszlop) értékeit megszorozzuk a megfelelő (azonos sorban lévő) második oszlop értékével. Az összes érték összege adja az eredményt.
Szintaxis:=SZORZATÖSSZEG(tömb1;tömb2;tömb3;…)
Tömb1: Az első tömbargumentum, amelynek a szorzatösszegét ki szeretnénk számítani.
Tömb2, tömb3,…: A 2-255. tömbargumentum, amelynek a szorzatösszegét ki szeretnénk számítani.
Mint említettem, a képlet dinamikus, a napokat, időt egyszerűen lehet módosítani.

Adatűrlapok használata
2019. július 8.

Verzió: Excel 2016, 2013, 2010, 2007

Az adatbevitel "fájdalmas" munka, az Excel legkevesebb élményt adó része, főleg akkor, ha sok oszloppal kell dolgoznunk, és az állandó görgetés már az agyunkra megy. Felosztás, rögzítés nem sokat ér, ráadásul a hibák elkövetésének esélye is igen nagy.
Azért van megoldás az egyszerű munkalapok esetében is: az Adatűrlap!

Az Adatűrlap segítségével egyszerűen rögzíthetjük, szerkeszthetjük adatainkat: egy teljes sort egy párbeszédablak segítségével.
Hogyan működik?
Nézzük egy Excel táblázat egy csöppnyi részét!

Jelöljünk ki egy cellát a táblázatban, majd a Gyorselérési eszköztáron kattintsunk az Űrlap gombra.

Ha nem találjuk, kövessük a később ismertetendő lépéseket.
Elképzelhető, hogy ezt az üzenetet kapjuk, ha adatainkat nem táblázatként formáztuk:

Kövessük a javaslatokat.
(Ha oszlopnevek szerepelnek az első sorban, egyszerűen kattintsunk az OK gombra.)
De vissza a táblázathoz és az Űrlap gombhoz.
Egy párbeszédablak jelenik meg, az oszlop fejlécek a mezőnevek, a cellák adatait pedig szerkeszthető mezőkként kapjuk meg.

Látjuk, hogy a képleteket tartalmazó oszlopok (pl. Áfa nem szerkeszthetők.
Ha az Adatűrlapot használjuk, a következőkre van lehetőségünk:
Meglévő adatok szerkesztése
Kattintsunk az Előzőt vagy a Következő gombra, hogy meghatározhassuk, melyik sort akarjuk szerkeszteni. Majd hajtsuk végre a módosításokat a megfelelő mezőben. Enter, hogy alkalmazzuk a módosításokat, majd a következő mezőbe léphetünk. Ha nem akarjuk a változtatást, kattintsunk az Előző állapot gombra. (Ha már Entert nyomtunk, a visszaállítás csak manuálisan megy.)
Új adatsor hozzáadása
1.Kattintsunk az Újat gombra.
2. A megjelenő adatűrlapon írjuk be az új sor adatát a megadott mezőkbe.
3. Az ENTER billentyű lenyomásával mentjük a módosításokat, és bekerül a tartományba.
(A számított mezők automatikusan bekerülnek.)
Adatok keresése vagy szerkesztése adott kritériumok alapján
Kattintsunk a Feltételek gombra.
A megfelelő mezőbe írjuk be a keresendő kifejezést. Enter, majd az Előzőt vagy a Következő gomb segítségével navigáljunk.
Röviden ennyi.
Az Adatűrlap a Gyorselérési eszköztáron
Ha nem látjuk az Adatűrlap gombot a Gyorselérési eszköztáron, feltehetőleg hozzá kell adnunk.
Ezt:

1. Kattintsunk a Gyorselérési eszköztár melletti nyílra, majd a További parancsok parancsra.

Innen már egyszerű:
2. A Választható parancsok helye listában válasszuk a a Minden parancs elemet, majd a listában jelöljük ki az Űrlap gombot.
3. Kattintsunk a Hozzáadás, majd az OK gombra.

ÖSSZESÍT: egy kiváló, ám ritkán használt függvény
2019. július 1.

Verzió: Excel 2016, 2013, 2010, 2007

Már a neve is magáért beszél: összesít, azaz részeket egésszé formál. Nagyjából olyan, mint az összegzés, a SZUM(). Csakhogy az =ÖSSZESÍT() sokkal többre képes: ÁTLAGot, MAXimumot, MINimumot, DARABot számít, csak hogy néhányat említsünk.
Viszont annyival jobb ezeknél a függvényeknél, hogy az =ÖSSZESÍT() nem veszi figyelembe a hibákat, a rejtett cellákat, sőt azokat sem, melyek az =ÖSSZESÍT() vagy =RÉSZÖSSZEG() függvényeket tartalmazzák.

Egy példa: a következő cellatartományban szeretnénk megkapni a második legjobb eredményt, ám (itt) egy cella a #HIÁNYZIK hibaértéket tartalmazza. Normál esetben a NAGY() függvényt alkalmaznánk, de hibát kapnánk.

A képlet a C11 cellában:
=NAGY(C3:C9;2)
Majd az =ÖSSZESÍT() függvényt alkalmazva megkapjuk a helyes eredményt:
A képlet a C13 cellában:
=ÖSSZESÍT(14;6;C3:C9;2)
A megoldás nem veszi figyelembe a hibaértéket, és megbízhatóan hozza a megoldást.
Még egy példa.
Csak a látható cellák átlagát szeretnénk megkapni. Ha az =ÁTLAG() függvényt használjuk, nem tesz különbséget a látható és a rejtett cellák között.
Az =ÖSSZESÍT() függvényt beállíthatjuk úgy, hogy figyelmen kívül hagyja a rejtett cellákat, és a helyes eredményt adja.

Az ábra mutatja, hogy elrejtettük a 6. sort. Két eredményt kapunk, természetesen az =ÖSSZESÍT() függvénnyel számított a helyes.
Itt az ideje, hogy magáról a függvényről szóljunk.
Az ÖSSZESÍT függvény lista vagy adatbázis összesítését adja eredményül.
Két formája van:
Hivatkozásos forma
=ÖSSZESÍT(függv_szám; beállítások; hiv1; [hiv2]; …)
Tömbös forma
=ÖSSZESÍT(függv_szám; beállítások; tömb; [k])
Nem kell aggódni, a függv_szám kiválasztáskor az Excel automatikusan alkalmazza a megfelelőt.
Függv_szám: 1 és 19 közötti szám, amely megadja, hogy a program melyik függvényt használja.

Beállítások: numerikus érték, amely meghatározza, hogy a függvény kiértékelési tartományában milyen értékek legyenek mellőzve.

Hiv1: a függvények első, több numerikus argumentumot használó argumentuma, amelyek értékét összesíteni szeretnénk.
Hiv2;…: 2-től 252-ig terjedő numerikus argumentumok, amelyek értékét összesíteni szeretnénk.
Tömböt használó függvények számára a hiv1 tömb, tömbképlet vagy hivatkozás egy cellatartományra, amelynek értékét összesíteni szeretnénk.
A hiv2 egy második argumentum, amely bizonyos függvényekhez szükséges. A hiv2 argumentum a következő függvényekhez szükséges:

A függvény a feltételes formázás korlátozott voltára kínál megoldást.
Az adatsávok, ikonkészletek és színskálák nem alkalmasak a feltételes formázás megjelenítésére, ha a tartományban hibák lépnek fel, mivel a MIN, a MAX és a PERCENTILIS függvény a számítási tartományban fellépő hibák esetén nem működik.
A NAGY, a KICSI és a SZÓRÁSP függvény szintén akadályozza a feltételes formázás egyes szabályainak megfelelő működését.
Az ÖSSZESÍT függvénnyel viszont használhatók ezek a függvények, mivel az a hibákat nem veszi figyelembe.
Ezenkívül a függvény alkalmas különböző összesítő függvények listára vagy adatbázisra történő alkalmazására is a rejtett sorok és hibaértékek mellőzésének lehetőségével.
Amikor a munkalap egyik cellájában megadjuk az ÖSSZESÍT függvényt, és beírjuk a függv_szám argumentumot, az összes argumentumként használható függvény listája megjelenik.
Beágyazott összesítő függvények:
Ahogy már írtaam, ha a hiv1, hiv2, vagy a többi hivatkozás más ÖSSZESÍT függvényt (vagy beágyazott ÖSSZESÍT függvényt) tartalmaz, a dupla számolás elkerülése érdekében a program ezeket a beágyazott ÖSSZESÍT függvényeket figyelmen kívül hagyja.
Ugyanígy: ha a függvény hivatkozási argumentumai RÉSZÖSSZEG függvényt tartalmaznak, a program ezeket figyelmen kívül hagyja.
Ha az ÖSSZESÍT függvények RÉSZÖSSZEG függvénybe ágyazottak, program ezeket az ÖSSZESÍT függvényeket figyelmen kívül hagyja.
Tartomány típusa:
Az ÖSSZESÍT függvényt adatoszlopokra vagy függőleges tartományokra tervezték, nem pedig adatsorokra vagy vízszintes tartományokra.
Ha részösszeget hozunk létre egy vízszintes tartományon az 1. lehetőség, például az ÖSSZESÍT(1;1;hiv1) használatával, az oszlopok elrejtése nincs hatással az összesített értékre.
A sorok függőleges tartományban történő elrejtése viszont hatással van az összesítésre.
Túl bonyolult, mert rengeteg dolgot kell fejben tartani?
Egyáltalán nem. Ha elkezdjük beírni a képletet, megjelenik egy lenyíló az opciókkal:

Majd a beállítások opciói:

Ám ha még egyszerűbben akarjuk, használjuk az fx gombot (az első lépések után):

Néhány példa

1. A C11 cellában a képlet:
=ÖSSZESÍT(1;7;D3:D9;E3:E9;F3:F9)
A D3:D9, E3:E9 és az F3:F9 cellák értékeinek átlagát (függv_szám = 1) számítjuk ki, figyelmen kívül hagyva a rejtett sorokat és hibákat (beállítások: 7).
(Fontos: elég lenne egyetlen hivatkozás is: D3:F9!)
Ne feledjük, a6. sort elrejtettük.
2. A =NAGY() függvény:
A C13 cellában a képlet:
=ÖSSZESÍT(14;5;D3:D9;1)
A képlettel az első legnagyobb értéket számítottuk ki a D oszlopban (függv_szám: 14), ű
3. A =NAGY() függvény tömbképlet nélkül:
A képlet a C15 cellában:
=ÖSSZESÍT(14;5;D3:D9*(C3:C9="Észak");1)
A legnagyobb értéket számítja ki az Észak régióban.
Kiszámíthattuk volna tömbképlettel:
{=NAGY(D3:D9*(C3:C9="Észak");1)}
4. Hibaértékek mellőzése nélkül:
A képlet a C17 cellában:
=ÖSSZESÍT(9;5;E3:E9)
A képlet megpróbálja összegezni (=SZUM()) az értékeket (függv_szám: 9), nem vettük figyelembe a rejtett sorokat (beállítások: 5). Az eredmény #HIÁNYZIK, mert a tömbben szintén van #HIÁNYZIK hiba.
Összegezve
Már ez a kis szösszenet is jelzi a függvény erejét:
152 különböző feladatot képes ellátni (19 függvény * 8 beállítás),
nem kell kijavítani a tartományom belüli hibákat,
szűrt listákban csak a látható cellákkal dolgozhatunk,
nagyon gyors.

Keresés több oszlopban
2019. június 24.

Verzió: Excel 2016, 2013, 2010, 2007

Előfordulhat, hogy több értéket keresünk különböző oszlopokban, és ezeket az értékeket meg is kell kapnunk eredményként.

Van egy táblázatunk, három oszloppal (A1:C11). Az első a tranzakció dátumát, a második a munkatársak nevét, a harmadik az eredményt, azaz a terméket (kapcsolatot, egyéb szöveges adatot) tartalmazza. Ez az INDEX típusú eredmény.
Szeretnénk megtudni, hogy az általunk kiválasztott idősávban (beleértve a kezdő és a befejező napot) az adott munkatárs milyen eredményt ért el
A dátumokat a B13 és B14 cellákba visszük be, a nevet a B15-be. (Az Érvényesítéssel automatizálhatjuk a bevitelt.

Az eredményt (Jancsi esetében) a B17:B19 cellákban kapjuk meg.
A képlet:
{=INDEX($C$2:$C$11;KICSI(HA(($B$15=$B$2:$B$11)*($A$2:$A$11<=$B$14)
*($A$2:$A$11>=$B$13);HOL.VAN(SOR($A$2:$A$11);SOR($A$2:$A$11));"");SOR(A1)))}

Látható, tömbképlet, a bevitel a Ctrl + Alt + Shift együttes lenyomásával történik
A megoldás főbb lépései
1. A B15 cella értékének összevetése a $B$2:$B$11 cellatartomány értékeivel
A $B$2:$B$11 eredménye:
"Jancsi"={"IGAZ";"HAMIS";"HAMIS";"HAMIS";"HAMIS";"HAMIS";"IGAZ";
"HAMIS";"IGAZ";"HAMIS"

hiszen:
"Jancsi"={"Jancsi";"Juliska";"Piroska";"Vadász";"Vadász";"Piroska";
"Jancsi";"Juliska";"Jancsi";"Piroska"}

2. A kezdő és a záró dátum összevetése a Dátum oszloppal
A ($A$2:$A$11<=$B$14)*($A$2:$A$11>=$B$13) eredménye, a fárasztó részletek (a dátum sorszám, így 43228;43228;43230;stb.<=43235) mellőzésével:
()*()
3. Egyezés esetén megkapjuk a sor számát
HA(($B$15=$B$2:$B$11)*($A$2:$A$11<=$B$14)*($A$2:$A$11>=$B$13);HOL.VAN(SOR($A$2:$A$11);SOR($A$2:$A$11))
Eredménye (a részletek nélkül):
HA(*;HOL.VAN(SOR($A$2:$A$11);SOR($A$2:$A$11))
Ennek eredménye:
HA(;)
4. A k-adik legkisebb elem értéke
A
KICSI(HA(($B$15=$B$2:$B$11)*($A$2:$A$11<=$B$14)*
($A$2:$A$11>=$B$13);HOL.VAN(SOR($A$2:$A$11);SOR($A$2:$A$11));"");SOR(A1))

eredménye:
KICSI(;SOR(A1))
Ebből:
KICSI(;1)
4. A megfelelő sor és oszlop metszéspontjában álló cella értéke
Az
INDEX($C$2:$C$11;KICSI(HA(($B$15=$B$2:$B$11)*
($A$2:$A$11<=$B$14)*($A$2:$A$11>=$B$13);HOL.VAN(SOR($A$2:$A$11);SOR($A$2:$A$11));"");SOR(A1)))

eredménye:
INDEX($C$2:$C$11;1)
ez:
INDEX({"Termék1";"Termék2";"Termék3";"Termék4";"Termék5";"Termék6";
"Termék7";"Termék8";"Termék9";"Termék10"};1)

Ennek eredménye a B17 cellában:
Termék1
A képletet addig húzzuk lefelé, míg értéket kapunk.

Háromféle összeg
2019. június 17.

Verzió: Excel 2016, 2013, 2010, 2007

Előfordulhat, hogy számadatainkat előjelek szerint kell összegeznünk. A megoldás.

Az ábrán egy nagyon egyszerű, pozitív és negatív előjelű számok összegzése látható, három eredménnyel.

1. A B8 cellában a képlet:
=SZUM(B2:B6)
Ez a leggyakoribb, magyarázni sem kell.
2. A B9 cellában a képlet:
=SZUMHA(B2:B6;">0")
A csak pozitív számok összeadására új függvényt alkalmazunk, ez a =SZUMHA().
A függvény a megadott kritériumoknak eleget tevő cellákban található értékeket adja össze.
Szintaxis: =SZUMHA(tartomány;feltételek;[összeg_tartomány])
Tartomány: a kritériumok alapján kiértékelendő cellatartomány.
Az egyes tartományok cellái számok, számokat tartalmazó tömbök vagy számokra mutató nevek, illetve hivatkozások lehetnek.
Az üres és a szöveges értékeket a függvény figyelmen kívül hagyja.
Kritériumok: az összeadandó cellákat meghatározó, számként, kifejezésként, cellahivatkozásként, szövegként vagy függvényként megadott feltétel,
például: 32, ">32", B5, 32, "32", "alma" vagy MA().
Fontos: bármely szöveges kritériumot vagy bármely olyan kritériumot, amely logikai vagy matematikai szimbólumokat tartalmaz, idézőjelek közé (") kell tenni. Ha a kritérium numerikus, nem szükséges a dupla idézőjel.
Összeg_tartomány:a ténylegesen összeadandó cellák, ha a tartományargumentumban megadottaktól eltérő cellákat szeretnénk összeadni.
Ha az összeg_tartomány argumentumot elhagyjuk, az Excel a tartomány argumentumban megadott cellákat adja össze (ugyanazokat, amelyekre a kritériumokat alkalmazza).
Nem kötelező megadni.
Esetünkben a kritérium: ">0", csak a zérónál nagyobb számokat adtuk össze.
3. A B10 cellában változtattunk, csak a negatív előjelű számok összegére vagyunk kíváncsiak.
=SZUMHA(B2:B6;"<0")
És hogy legyen valami gyakorlati haszna is, nézzük az ábrát:

Számlákról van szó, kíváncsiak vagyunk Vevő 1 és vállalkozásunk viszonyára.
A képlet a C10 cellában:
=SZUMHA(B2:B8;"Vevő 1";C2:C8)
Látszólag minden rendben, Vevő 1 egyenlege pozitív.
Ám a számformátumból is látjuk, hogy két tétel még nincs kiegyenlítve.
Ha ragaszkodunk a SZUMHA alkalmazásához, a feltételes összegzés újabb, az Excel 2010 óta bevezetett függvényt kell alkalmaznunk.
Ez a =SZUMHATÖBB().
A függvény egy adott tartomány több kritériumnak is eleget tevő celláit adja meg.
A SZUMHATÖBB függvényben az argumentumok sorrendje eltér a SZUMHA függvényétől.
A SZUMHATÖBB függvényben az összeg_tartomány argumentum az első helyen áll, míg a SZUMHA függvényben ez a harmadik argumentum.
E két hasonló függvény másolásakor és szerkesztésekor ügyeljünk az argumentumok megfelelő sorrendjére.
Szintaxis: =SZUMHATÖBB(összegtartomány; kritériumtartomány1; kritérium1; [kritériumtartomány2; kritérium2]; …)
Összegtartomány: Legalább egy összegzendő cella; tartalmazhat számokat, neveket, tartományokat vagy számokat tartalmazó cellahivatkozásokat.
Az alkalmazás figyelmen kívül hagyja a szöveges értékeket és az üres cellákat.
Kritériumtartomány1: a kapcsolódó kritériumok kiértékelésére használt első tartomány.
Kritérium1: A kritériumtartomány1 argumentum összeadandó celláit meghatározó, számként, kifejezésként, cellahivatkozásként vagy szövegként megadott kritérium, például: 32, ">32", B4, "alma" vagy "32".
Kritériumtartomány2; kritérium2; …: a további tartományok és az azokhoz társított kritérium. Legfeljebb 127 tartomány-kritérium pár engedélyezett.
Nem kötelező megadni.

Így a képlet a C10 cellában:
=SZUMHATÖBB(C2:C8;B2:B8;"Vevő 1";C2:C8;"<0")
Mindjárt más a helyzet!

Hányszor fordul elő egy érték egy sorban?
2019. június 3.

Verzió: Excel 2016, 2013, 2010, 2007

Olykor bizony előfordulhat, hogy erre a kérdésre kell válaszolnunk.
A megoldás viszonylag egyszerű.

Vegyünk egy nagyon egyszerű példát. A keresett érték legyen 8. Azt keressük, hányszor fordul elő ez az érték tízszer egy sorban.
A más értékeket a szemléltetés érdekében üres cellákkal jelöltem, a K oszlopban a tényleges előfordulások száma látható.

A megoldás a B7 cellában:
=SZORZATÖSSZEG(--(DARABTELI(ELTOLÁS(A2:J5;SOR(A2:J5)-SOR(A2);0;1);8)=10))
Az eredmény 2, a második és az ötödik sor tartalmazza nyolcszor a 8 értéket.
Folytatódik a =SOR() függvénnyel megoldott problémák "sora".
Mellette a =SZORZATÖSSZEG(), =DARABTELI() és a gyakran alkalmazott =ELTOLÁS() szerepel.
Nézzük a függvényeket!
Az első felhasznált függvény, a =SZORZATÖSSZEG() megadott tömbök megfelelő elemeit szorozza össze, majd kiszámolja a szorzatok összegét.
Az első tömb (oszlop) értékeit megszorozzuk a megfelelő (azonos sorban lévő) második oszlop értékével. Az összes érték összege adja az eredményt.
Szintaxis:=SZORZATÖSSZEG(tömb1;tömb2;tömb3;…)
Tömb1: Az első tömbargumentum, amelynek a szorzatösszegét ki szeretnénk számítani.
Tömb2, tömb3,…: A 2-255. tömbargumentum, amelynek a szorzatösszegét ki szeretnénk számítani.
Látjuk, hogy egy tömbünk (A2:J5) van.
A két mínuszjel
A következő lépésben az IGAZ/HAMIS értékeket numerikus értékekké, azaz 1 és 0 értékekké kell alakítanunk. Erre alkalmazzuk a "két mínuszjel trükköt".
Erről is volt már szó, röviden a lényeg:
Közismert (bocsánat!), hogy a mínuszjel használata egy képletben az eredmény előjelének megváltoztatását is eredményezheti, így például a pozitív előjelből negatív lesz.
De milyen eredménnyel jár két mínuszjel?
A két mínusz a képletben az IGAZ értéket "1" értékké, a HAMIS értéket "0" értékké alakítja.

Ebben a kis példában a B2 cellában lévő képlet =(10>5). Mivel a feltétel igaz, az eredmény IGAZ.
A B3 cellában a képlet =--(10>5). Mivel a feltétel továbbra is igaz, az eredmény "1" -- a két mínuszjel "jóvoltából".
(A B5 és B6 cellában a HAMIS bemutatója.)
A képletekben használt két mínuszjel nincs hatással más eredményre, csak az IGAZ vagy HAMIS értékeket módosítja.
Ezt a technikát leggyakoribban a SZORZATÖSSZEG függvénnyel, mellyel több kritérium alapján adunk össze adatokat, együtt szokás alkalmazni. Ezt történt itt is.
A következő a =DARABTELI().
A függvény egy tartományban összeszámolja azokat a cellákat, amelyek eleget tesznek a megadott feltételnek.
Esetünkben a feltétel, az érték 8.
Szintaxis: =DARABTELI(tartomány;kritériumok)
Tartomány: egy vagy több összeszámolandó cella; tartalmazhat számokat, neveket, tömböket vagy számokat tartalmazó hivatkozásokat.
A függvény figyelmen kívül hagyja a szövegértéket és az üres cellát.
Kritériumok: az összeszámolandó cellákat meghatározó, számként, kifejezésként, cellahivatkozásként vagy szövegként megadott feltétel.
A feltétel lehet:
szám, így pl. =DARABTELI(B2:B500;7)
szöveg idézőjelben, így pl. =DARABTELI(A1:A5;"Szia")
operátor idézőjelben, így pl. =DARABTELI(A2:J5;">8").
ELTOLÁS()
Egy megadott magasságú és szélességഩ hivatkozást ad eredményül, egy másik hivatkozástól számított megadott számú sornyi és oszlopnyi távolságra. Az eredményként visszaadott hivatkozás hivatkozhat egyetlen cellára vagy egy cellatartományra.
Megadhatjuk a sorok és az oszlopok számát.
Szintaxis: =ELTOLÁS(hivatkozás;sorok;oszlopok;[magasság];[szélesség])
Hivatkozás: az a hivatkozás, amelyhez képest az eredmény hivatkozás helyzetét az argumentumok meghatározzák.
A hivatkozásnak egyetlen cellára vagy egy cellatartományra kell vonatkoznia, ellenkező esetben a függvény az #ÉRTÉK! hibaértéket adja eredményül.
Sorok: az eredmény bal felső cellája és a hivatkozás közötti függőleges távolság a sorok számában kifejezve.
Ha például az argumentum értéke 3, akkor az eredményül kapott hivatkozásban a bal felső cella 3 sorral lesz a hivatkozás alatt.
A sorok értéke lehet pozitív (a kezdőhivatkozás alatt) vagy negatív (a kezdőhivatkozás felett).
Oszlopok: az eredmény bal felső cellája és a hivatkozás közötti vízszintes távolság az oszlopok számában kifejezve.
Ha például az argumentum értéke 3, akkor az eredményül kapott hivatkozásban a bal felső cella a bal felső cella 3 oszloppal jobbra lesz a hivatkozás mellett.
Az oszlopok értéke lehet pozitív (a kezdőhivatkozástól jobbra) vagy negatív (a kezdőhivatkozástól balra).
Ha a sorok és az oszlopokáltal megadott mértékben eltolt hivatkozás túllóg a munkalap szélén, akkor a függvény a #HIV! hibaértéket adja eredményül.
Magasság: az eredmény hivatkozás magassága a sorok számában mérve. A magasság csak pozitív szám lehet.
Nem kötelező megadni.
Szélesség: az eredmény hivatkozás szélessége az oszlopok számában mérve. A szélesség csak pozitív szám lehet.
Nem kötelező megadni.
Ha a magasság vagy a szélesség argumentumot nem adjuk meg, akkor a program a hivatkozás magasságát és szélességét használja.
SOR()
Egy hivatkozás sorának számát adja meg.
Szintaxis: =SOR(hivatkozás])
Hivatkozás: az a cella vagy cellatartomány, amelyben meg kell állapítani a sor számát.
Ha a hivatkozás argumentumot nem adjuk meg, akkor a függvény annak a cella sorának számát adja meg, amelyben a SOR függvény található.
Ha a hivatkozás cellatartomány, és a függvényt függőleges tömbként adtuk meg, akkor a függvény a hivatkozás sorainak számait függőleges tömbként adja eredményül.
A hivatkozás csak egyetlen, folytonos cellatartományból állhat.
És akkor a megoldás:
=SZORZATÖSSZEG(--(DARABTELI(ELTOLÁS(A2:J5;SOR(A2:J5)-SOR(A2);0;1);8)=10))
=SZORZATÖSSZEG(--(DARABTELI(ELTOLÁS(A2:J5;SOR(A2:J5)-SOR(A2);0;1);8)=10))
Először megkeressük a sorok értékét, ez a 2., 3., 4. és 5. sor:
=SZORZATÖSSZEG(--(DARABTELI(ELTOLÁS($A$2:$J$5;{2;3;4;5}-SOR(A2);0;1);8)=10))
Most az A2:
=SZORZATÖSSZEG(--(DARABTELI(ELTOLÁS($A$2:$J$5;{2;3;4;5}>-{2};0;1);8)=10))
Elvégezzük a kivonást:
=SZORZATÖSSZEG(--(DARABTELI(ELTOLÁS($A$2:$J$5;{0;1;2;3};0;1);8)=10))
Innen már egyszerű:
=SZORZATÖSSZEG(--(DARABTELI(#ÉRTÉK!;#ÉRTÉK!;#ÉRTÉK!;#ÉRTÉK!;8)=10))
=SZORZATÖSSZEG(--(DARABTELI({10;6;10;8}=10))
Hiszen a: =DARABTELI(ELTOLÁS(A2:J5;SOR(A2:J5)-SOR(A2);0;1);8)=10
eredménye IGAZ
=SZORZATÖSSZEG(--({IGAZ;HAMIS;IGAZ;HAMIS}))
Kihagyjuk az értékeket (IGAZ=1, HAMIS=0):
2
A megoldás szöveges értékek esetében is működik.

A numerikus értékeket az x helyettesíti. A képlet:
=SZORZATÖSSZEG(--(DARABTELI(ELTOLÁS(A2:J5;SOR(A2:J5)-SOR(A2);0;1);"X")=10))
Ügyeljünk az idézőjelekre.

Eredmények strukturált táblázatokból
2019. május 27.

Verzió: Excel 2016, 2013, 2010, 2007

Sokszor szükséges, hogy nagyobb, strukturált listák adatait összesítsük. Itt egy megoldás.

Különösen hasznos tipp, ha adataink sorok százaiból (ezreiből) állnak, és oly módon strukturáltak, hogy ismert a sorok közti állandó különbség, azaz az adatokat tartalmazó cellák közötti növekedés.
Egy rövid példa:

A megoldás az E:F oszlop eredménytáblájában látható. (Az üres sorok a megoldás szemléltetését célozzák, kerüljük alkalmazását.)

A képlet (F2):
=ELTOLÁS($C$2;SOR(C2)*6-6;0)
Ezt húzzuk végid.
A megoldás a már sokszor bemutatott =ELTOLÁS() és a =SOR() függvény alkalmazása.
A függvényekről röviden:
ELTOLÁS()
Nemrég (itt) már bemutattam a függvény alkalmazását a =SOROK() függvénnyel kombinálva.
Egy megadott magasságú és szélességഩ hivatkozást ad eredményül, egy másik hivatkozástól számított megadott számú sornyi és oszlopnyi távolságra. Az eredményként visszaadott hivatkozás hivatkozhat egyetlen cellára vagy egy cellatartományra.
Megadhatjuk a sorok és az oszlopok számát.
Szintaxis: =ELTOLÁS(hivatkozás;sorok;oszlopok;[magasság];[szélesség])
Hivatkozás: az a hivatkozás, amelyhez képest az eredmény hivatkozás helyzetét az argumentumok meghatározzák.
A hivatkozásnak egyetlen cellára vagy egy cellatartományra kell vonatkoznia, ellenkező esetben a függvény az #ÉRTÉK! hibaértéket adja eredményül.
Sorok: az eredmény bal felső cellája és a hivatkozás közötti függőleges távolság a sorok számában kifejezve.
Ha például az argumentum értéke 3, akkor az eredményül kapott hivatkozásban a bal felső cella 3 sorral lesz a hivatkozás alatt.
A sorok értéke lehet pozitív (a kezdőhivatkozás alatt) vagy negatív (a kezdőhivatkozás felett).
Oszlopok: az eredmény bal felső cellája és a hivatkozás közötti vízszintes távolság az oszlopok számában kifejezve.
Ha például az argumentum értéke 3, akkor az eredményül kapott hivatkozásban a bal felső cella a bal felső cella 3 oszloppal jobbra lesz a hivatkozás mellett.
Az oszlopok értéke lehet pozitív (a kezdőhivatkozástól jobbra) vagy negatív (a kezdőhivatkozástól balra).
Ha a sorok és az oszlopokáltal megadott mértékben eltolt hivatkozás túllóg a munkalap szélén, akkor a függvény a #HIV! hibaértéket adja eredményül.
Magasság: az eredmény hivatkozás magassága a sorok számában mérve. A magasság csak pozitív szám lehet.
Nem kötelező megadni.
Szélesség: az eredmény hivatkozás szélessége az oszlopok számában mérve. A szélesség csak pozitív szám lehet.
Nem kötelező megadni.
Ha a magasság vagy a szélesség argumentumot nem adjuk meg, akkor a program a hivatkozás magasságát és szélességét használja.
A példát szándékosan nem az A1 cellában kezdtem, így jobban bemutatható mind az ELTOLÁS(), mind a SOROK() lényege.
Így a hivatkozás az A22 cella, ebben áll a fejléc NÉV mezője, a sorok a hasonló nevഩ függvény eredménye, az oszlopok argumentumot pedig a =HOL.VAN() függvény adja meg.
SOR()
Egy hivatkozás sorának számát adja meg.
Szintaxis: =SOR(hivatkozás])
Hivatkozás: az a cella vagy cellatartomány, amelyben meg kell állapítani a sor számát.
Ha a hivatkozás argumentumot nem adjuk meg, akkor a függvény annak a cella sorának számát adja meg, amelyben a SOR függvény található.
Ha a hivatkozás cellatartomány, és a függvényt függőleges tömbként adtuk meg, akkor a függvény a hivatkozás sorainak számait függőleges tömbként adja eredményül.
A hivatkozás csak egyetlen, folytonos cellatartományból állhat.
Így a megoldás menete:
=ELTOLÁS($C$2;SOR(C2)*6-6;0)
=ELTOLÁS($C$2;SOR(C2)*6-6;0)
=ELTOLÁS($C$2;C2*6-6;0)
Elvégzi a műveletet:
=ELTOLÁS($C$2;12-6;0)
=ELTOLÁS($C$2;6;0)
6 sor:

239000
Természetesen Dél összesítésében (F3) a SOR C3, így a művelet 3*6-6, és így tovább.
Logikus, ha a táblázatban a sorok másképp strukturáltak, a képlet megfelelően módosul.

Több oszlopból egy oszlop
2019. május 20.

Verzió: Excel 2016, 2013, 2010, 2007

Gyakran fordul elő, hogy oszlopokat egy oszloppá kell szerkesztenünk, és manuálisan bizony megküzdünk ezzel a feladattal (rendezés, másolás, beillesztés). Megy könnyebben is.

Vegyünk egy nagyon egyszerű példát: Magyarország megyéi:

És akkor a megoldás.
A Word könnyebben kezeli a táblázatokat.
1. Másoljuk ki a három oszlopot, és illesszük be a Wordbe.
Alapból táblázatot kapunk.

2. Kattintsunk a táblázatba, és válasszuk a menüszalagon: Táblázateszközök > Elrendezés > Szöveggé alakítás.

Kattintsuk a Szöveggé alakítás opcióra.
Megjelenik a párbeszédablak, azt kérdezi, mi legyen a cellahatároló. Válasszuk a Bekezdésjelet, hiszen minden elemet új sorban szeretnénk látni.

És ezzel meg is vagyunk:

Azért ez még nem teljesen jó. Az eredetiben az oszlopokban nem egyenlően oszlottak meg a tartalmak, néhány üres cellánk is volt, ezeket el kell távolítanunk.
Illesszük be a Word-anyagot az Excelbe, jelöljük ki a cellákat, majd az F5 lenyomásával válasszuk az Ugrás > Irányított > Üres cellák opciót.

És ennyi.

Számítások egyesített fejlécek esetén
2019. május 13.

Verzió: Excel 2016, 2013, 2010, 2007

A cím kissé becsapós. Természetesen nem szeretjük az egyesített cellákat, használatuktól mindenkit eltanácsolok. Néha azonban belefutunk. Így itt is.

A becsapás annyi, hogy a dologban egyáltalán nem számít, egyesítettek-e a fejlécek., csak a látvány kedvéért szerepelnek így. Sokkal izgalmasabb a kérdés, hogyan összegezzünk, ha például az egyes egységek (itt évek) nem azonos számú oszlopból állnak.

Az oszlopok negyedéveket jelképeznek, látható, hogy a 2019 alatt csak két oszlop szerepel.
A megoldás:
1) készítsük el az eredményeket összegző táblát: A28:D32.

A megértést elősegítendő, az oszlopokat megszámoztam.
Az összegzés részletes megoldását a D29 cellában (Andi -- 2019) mutatom be, egyelőre az általános koncepciót a B29 (Andi -- 2017) cella demonstrálja:
2) A képlet:
=SZUM(ELTOLÁS($A$22;SOROK($22:22);HOL.VAN(B$28;$22:$22;0)-1;;HAHIBA(HOL.VAN(C$28;$22:$22;0);DARAB2($23:$23)+1)-HOL.VAN(B$28;$22:$22;0)))
Összesítésről van szó, így a képlet a =SZUM() függvénnyel indul.
A további függvények: =ELTOLÁS(), =HOL.VAN(), =SOROK(), DARAB2 és végül a szépség kedvéért a =HAHIBA()
A függvényekről
ELTOLÁS()
Egy megadott magasságú és szélességഩ hivatkozást ad eredményül, egy másik hivatkozástól számított megadott számú sornyi és oszlopnyi távolságra. Az eredményként visszaadott hivatkozás hivatkozhat egyetlen cellára vagy egy cellatartományra.
Megadhatjuk a sorok és az oszlopok számát.
Szintaxis: =ELTOLÁS(hivatkozás;sorok;oszlopok;[magasság];[szélesség])
Hivatkozás: az a hivatkozás, amelyhez képest az eredmény hivatkozás helyzetét az argumentumok meghatározzák.
A hivatkozásnak egyetlen cellára vagy egy cellatartományra kell vonatkoznia, ellenkező esetben a függvény az #ÉRTÉK! hibaértéket adja eredményül.
Sorok: az eredmény bal felső cellája és a hivatkozás közötti függőleges távolság a sorok számában kifejezve.
Ha például az argumentum értéke 3, akkor az eredményül kapott hivatkozásban a bal felső cella 3 sorral lesz a hivatkozás alatt.
A sorok értéke lehet pozitív (a kezdőhivatkozás alatt) vagy negatív (a kezdőhivatkozás felett).
Oszlopok: az eredmény bal felső cellája és a hivatkozás közötti vízszintes távolság az oszlopok számában kifejezve.
Ha például az argumentum értéke 3, akkor az eredményül kapott hivatkozásban a bal felső cella a bal felső cella 3 oszloppal jobbra lesz a hivatkozás mellett.
Az oszlopok értéke lehet pozitív (a kezdőhivatkozástól jobbra) vagy negatív (a kezdőhivatkozástól balra).
Ha a sorok és az oszlopokáltal megadott mértékben eltolt hivatkozás túllóg a munkalap szélén, akkor a függvény a #HIV! hibaértéket adja eredményül.
Magasság: az eredmény hivatkozás magassága a sorok számában mérve. A magasság csak pozitív szám lehet.
Nem kötelező megadni.
Szélesség: az eredmény hivatkozás szélessége az oszlopok számában mérve. A szélesség csak pozitív szám lehet.
Nem kötelező megadni.
Ha a magasság vagy a szélesség argumentumot nem adjuk meg, akkor a program a hivatkozás magasságát és szélességét használja.
A példát szándékosan nem az A1 cellában kezdtem, így jobban bemutatható mind az ELTOLÁS(), mind a SOROK() lényege.
Így a hivatkozás az A22 cella, ebben áll a fejléc NÉV mezője, a sorok a hasonló nevഩ függvény eredménye, az oszlopok argumentumot pedig a =HOL.VAN() függvény adja meg.
SOROK()
Egy hivatkozásban vagy tömbben található sorok számát adja meg.
Szintaxis: SOROK(tömb)
Tömb: az a tömb, tömbképlet vagy cellatartományra mutató hivatkozás, amelyben meg szeretnénk kapni a sorok számát.
Esetünkben ez a tömb a 22. sorral indul.
Részletesen majd a képletben.
HOL.VAN()
A képletben háromszor is szerepel. Nagyon sokszor bemutattam már, így csak röviden.
Szintaxis: =HOL.VAN(keresési_érték;tábla;[egyezés_típus])
Keresési_érték: az az érték, amelynek segítségével a táblázatban a keresett érték megtalálható.
Tábla: azon értékeket tartalmazó összefüggő cellatartomány, amelyek között a függvény a keresési_értéket keresi.
Egyezés_típus: értéke -1, 0 vagy 1.
Ha az egyezés_típus: 1, azt a legnagyobb értéket keresi meg, amely egyenlő vagy kisebb, mint a keresési_érték.
Ha nincs egyezés vagy kisebb érték, akkor a #HIÁNYZIK hibaértéket adja eredményül.
A táblának emelkedő sorrendbe rendezettnek kell lennie.
Ha az egyezés_típus: -1, azt a legkisebb értéket keresi meg, amely egyenlő vagy nagyobb, mint a keresési_érték.
Ha nincs egyezés vagy nagyobb érték, akkor a #HIÁNYZIK hibaértéket adja eredményül.
A táblának csökkenő sorrendben rendezettnek kell lennie
Ha az egyezés_típus értéke 0, az első olyan értéket keresi meg, amely pontosan egyenlő a keresési_értékkel.
A háromszor szereplő függvényben a keresési_érték a B28, C28, ill. a D28 cella tartalma, azaz a fejléc (az adott év).
Ha most ideírom a D29 cella (Andi -- 2019) képletét, rögtön látszik a megoldás lényege:
D29: =SZUM(ELTOLÁS($A$22;SOROK($22:22);HOL.VAN(D$28;$22:$22;0)-1;;HAHIBA(HOL.VAN(E$28;$22:$22;0);DARAB2($23:$23)+1)-HOL.VAN(D$28;$22:$22;0)))
A hivatkozás az E29, mely üres, nincs 2020 (ezért a =HAHIBA() megoldás.
Még röviden a DARAB2() függvényről.
DARAB2()
A függvénnyel egy tartomány nem üres celláinak száma kapható meg.
Szintaxis: =DARAB2(érték1;érték2;…)
Érték1: A megszámlálni kívánt értékeket megadó első argumentum.
Érték2;…: Legfeljebb 255 további argumentum, amely a megszámolni kívánt értékeket tartalmazza.
A példában ez a függvény biztosítja, hogy eltérő oszlopszámok esetén is megfelelő adatokat kapjunk.
És akkor nézzük a megoldás menetét, mint jeleztem, a D29 cellában (Andi -- 2019).
Összehasonlításként a B29 és a D29 cellában lévő képletek:

B29: =SZUM(ELTOLÁS($A$22;SOROK($22:22);HOL.VAN(B$28;$22:$22;0)-1;;HAHIBA(HOL.VAN(C$28;$22:$22;0);DARAB2($23:$23)+1)-HOL.VAN(B$28;$22:$22;0)))
D29: =SZUM(ELTOLÁS($A$22;SOROK($22:22);HOL.VAN(D$28;$22:$22;0)-1;;HAHIBA(HOL.VAN(E$28;$22:$22;0);DARAB2($23:$23)+1)-HOL.VAN(D$28;$22:$22;0)))
Jól láthatók a különbségek.
A megoldás a D28 cellában:
=SZUM(ELTOLÁS($A$22;SOROK($22:22);HOL.VAN(D$28;$22:$22;0)-1;;HAHIBA(HOL.VAN(E$28;$22:$22;0);DARAB2($23:$23)+1)-HOL.VAN(D$28;$22:$22;0)))
=SZUM(ELTOLÁS($A$22;SOROK($22:22);HOL.VAN(D$28;$22:$22;0)-1;;HAHIBA(HOL.VAN(E$28;$22:$22;0);DARAB2($23:$23)+1)-HOL.VAN(D$28;$22:$22;0)))
Először megkeresi a D28 értékét:
=SZUM(ELTOLÁS($A$22;SOROK($22:22);HOL.VAN(2019;$22:$22;0)-1;;HAHIBA(HOL.VAN(E$28;$22:$22;0);DARAB2($23:$23)+1)-HOL.VAN(D$28;$22:$22;0)))
21.) segíti az értelmezést:
=SZUM(ELTOLÁS($A$22;1;10-1;;HAHIBA(HOL.VAN(E$28;$22:$22;0);DARAB2($23:$23)+1)-HOL.VAN(D$28;$22:$22;0)))
Most, a kivonás elvégzése után a következő "évet" keresi:
=SZUM(ELTOLÁS($A$22;1;9;;HAHIBA(HOL.VAN(E$28;$22:$22;0);DARAB2($23:$23)+1)-HOL.VAN(D$28;$22:$22;0)))
És nem találja:
=SZUM(ELTOLÁS($A$22;1;9;;HAHIBA(HOL.VAN(0;$22:$22;0);DARAB2($23:$23)+1)-HOL.VAN(D$28;$22:$22;0)))
Hibaértéket kapunk.
=SZUM(ELTOLÁS($A$22;1;9;;HAHIBA(#HIÁNYZIK;DARAB2($23:$23)+1)-HOL.VAN(D$28;$22:$22;0)))
Elvégzi a mഩveletet:
=SZUM(ELTOLÁS($A$22;1;9;;HAHIBA(#HIÁNYZIK;11+1)-HOL.VAN(D$28;$22:$22;0)))
=SZUM(ELTOLÁS($A$22;1;9;;HAHIBA(#HIÁNYZIK;12)-HOL.VAN(D$28;$22:$22;0)))
Visszatérünk a létező, utolsó évhez (D28 -- 2019):
=SZUM(ELTOLÁS($A$22;1;9;;12)-HOL.VAN(D$28;$22:$22;0)))
=SZUM(ELTOLÁS($A$22;1;9;;12)-HOL.VAN(2019;$22:$22;0)))
Megvan, a 10. pozícióban:
=SZUM(ELTOLÁS($A$22;1;9;;12-10))
Az eredmény:
=SZUM(ELTOLÁS($A$22;1;9;;2))
Innen már egyszerഩ, megvan a hivatkozás:
=SZUM($J$23:$K$23)
Az értékek összeadása:
=300
És így tovább a tartomány minden cellájára.
Azért legyünk óvatosak: a =DARAB2() függvény miatt az érintett sorokban a tartományon kívüli oszlopokban nem állhat semmi.

Tartományok áthelyezése egy másik munkalapra
2019. május 6.

Verzió: Excel 2016, 2013, 2010, 2007

Nagyobb anyagok készítésekor előfordulhat, hogy a munka kezdetén (és során) még nem tudjuk, hogyan rendezzük, kategorizáljuk az adatokat, struktúrákat. Így előfordulhat, hogy adatokat vagy számításokat egy másik munkalapra kell átvinnünk, mert a le-föl görgetés, a munkalap felosztása elég idegőrlő. Egy kevésbé ismert módszer bemutatása következik.

Miről van szó?

Kiegészítésként: az adatok formázása, a hivatkozások érintetlenek maradnak.
A megoldás
1. lépés
Egérrel válasszuk és jelöljük ki a másolandó tartományt. Itt egy primitív ábre, egyszerű szorzások:

2. lépés
Az egérrel manjünk a kijelölés szélére, míg minden irányba mutató nyíllá változik:

3. lépés
Tartsuk lenyomva a bal gombot, egyben nyomjuk le az Alt billentyűt, és
4. lépés
húzzuk a megfelelő munkalap fülére (itt: beszámoló).
És hopp, már ott is van. Az új lapon a közismert módon a megfelelő helyre tesszük.

Ritkán alkalmazott roppant egyszerű megoldás.

Az utolsó (7) elem összege és az ELTOLÁS
2019. április 29.

Verzió: Excel 2016, 2013, 2010, 2007

Olykor szükségünk lehet arra, hogy csak a legutolsó n számú elem összegét kapjuk meg. Kiváló megoldás lehet, ha az =ELTOLÁS() függvényt alkalmazzuk.

Mi az =ELTOLÁS() függvény lényege?
Egy megadott magasságú és szélességű hivatkozást ad eredményül, egy másik hivatkozástól számított megadott számú sornyi és oszlopnyi távolságra.
Az eredményként visszaadott hivatkozás hivatkozhat egyetlen cellára vagy egy cellatartományra.
Megadhatjuk a sorok és az oszlopok számát.
Szintaxis: =ELTOLÁS(hivatkozás;sorok;oszlopok;[magasság];[szélesség])
Hivatkozás: az a hivatkozás, amelyhez képest az eredmény hivatkozás helyzetét az argumentumok meghatározzák.
A hivatkozásnak egyetlen cellára vagy egy cellatartományra kell vonatkoznia, ellenkező esetben a függvény az #ÉRTÉK! hibaértéket adja eredményül.
Sorok: az eredmény bal felső cellája és a hivatkozás közötti függőleges távolság a sorok számában kifejezve.
Ha például az argumentum értéke 3, akkor az eredményül kapott hivatkozásban a bal felső cella 3 sorral lesz a hivatkozás alatt.
A sorok értéke lehet pozitív (a kezdőhivatkozás alatt) vagy negatív (a kezdőhivatkozás felett).
Oszlopok: az eredmény bal felső cellája és a hivatkozás közötti vízszintes távolság az oszlopok számában kifejezve.
Ha például az argumentum értéke 3, akkor az eredményül kapott hivatkozásban a bal felső cella a bal felső cella 3 oszloppal jobbra lesz a hivatkozás mellett.
Az oszlopok értéke lehet pozitív (a kezdőhivatkozástól jobbra) vagy negatív (a kezdőhivatkozástól balra).
Ha a sorok és az oszlopokáltal megadott mértékben eltolt hivatkozás túllóg a munkalap szélén, akkor a függvény a #HIV! hibaértéket adja eredményül.
Magasság: az eredmény hivatkozás magassága a sorok számában mérve. A magasság csak pozitív szám lehet.
Nem kötelező megadni.
Szélesség: az eredmény hivatkozás szélessége az oszlopok számában mérve. A szélesség csak pozitív szám lehet.
Nem kötelező megadni.
Ha a magasság vagy a szélesség argumentumot nem adjuk meg, akkor a program a hivatkozás magasságát és szélességét használja.
"Magyarul" megfogalmazva:
ELTOLÁS(ebben a cellában indul, fel- vagy lefelé ennyi sort halad; balra vagy jobbra ennyi oszopnyit halad;[a cellatartomány magassága];[a cellatartomány szélessége])
Nézzük a példát! Az utolsó hét beérkezett számla összege:

Hogyan működik?
Látható, hogy két függvény szerepel: az =ELTOLÁS() és a DARAB2, utóbbiról a maga helyén.
1. lépés: írjuk be =SZUM, hiszen az utolsó hét számla összegére vagyunk kíváncsiak. (Kereshetnénk az ÁTLAGot is.)
2. lépés: folytatjuk az ELTOLÁS függvénnyel, ezzel hivatkozunk az összegzendő tartományra.
SZUM(ELTOLÁS)
3. lépés: az első argumentum az ELTOLÁS függvényben: hol akarjuk kezdeni?
Ez ez első tétel a számlák tartományában:
SZUM(ELTOLÁS(C3
4. lépés: a második argumentum az ELTOLÁS függvényben: hány sornyit akarunk haladni?
Itt alkalmazzuk a DARAB2 függvényt, ez számolja meg, összesen hány összegünk van, és egyben lemegy az utolsó celláig.
SZUM(ELTOLÁS(C3;DARAB2(C3:C100)
(Látható, kibővítettem a tartományt, így az újabb adatok bevitelekor is az utolsó hét összegét kapjuk.)
A =DARAB2() függvénnyel egy tartomány nem üres celláinak száma kapható meg.
A függvény bármilyen adattípust tartalmazó cellát megszámlál, így a hibaértéket és az üres szöveget ("") tartalmazókat is.
5. lépés: hány utolsó tételt akarunk összegezni?
Példánkban hetet, így ennyit kell kivonnunk a DARAB2 eredményéből, azaz:
SZUM(ELTOLÁS(C3;DARAB2(C3:C100)-7;
6. lépés: a harmadik argumentum az ELTOLÁS függvényben: hány oszlopnyit akarunk jobbra/balra haladni?
Nem, mi nem megyünk sehová, hiszen a megfelelő oszlopban vagyunk, így 0.
SZUM(ELTOLÁS(C3;DARAB2(C3:C100)-7;0;
7. lépés: a negyedik argumentum az ELTOLÁS függvényben: milyen magas legyen a hivatkozás?
Mivel (itt) hét számla összegére vagyunk kíváncsiak, így a [magasság] 7 cellányi:
SZUM(ELTOLÁS(C3;DARAB2(C3:C100)-7;0;7;
8. lépés: az ötödik argumentum az ELTOLÁS függvényben: milyen széles legyen a hivatkozás?
Csak egy oszlopra van szükségünk, így a [szélesség]: 1.
SZUM(ELTOLÁS(C3;DARAB2(C3:C100)-7;0;7;1))
Így:

Ha most újabb összegeket írunk be a lista aljaára, automatikusan az utolsó 7 számla összegét kapjuk meg, azaz nem kell frissítenünk táblázatunkat.

Mondani sem kell, az összegzendő sorok száma tetszőleges, csak a két argumentumot (sorok; magasság) kell módosítani.

Rendezés balról jobbra
2019. április 22.

Verzió: Excel 2016, 2013, 2010, 2007

Az Excelben többnyire listákban találjuk az adatokat. Az oszlopok tartalmazhatják a különböző adattípusokat, a sorok az adatok vagy tranzakciók rögzítésére szolgálnak. A rendezés többféle módon történhet. Erről lesz szó.

Rendezés függőlegesen
Ez a legegyszerűbb: ikon a szalagon.
Egyetlen teendőnk van, ki kell jelölnünk a rendezendő adatokat. Tudnunk kell, hogy a rendezés e kijelölt tartomány első oszlopa alapján történik.
Adatok > Rendezés és szűrés > A-Z (vagy Z-A)

A listát ilyen egyszerűen rendeztük
Ha fejlettebb rendezésre van szükségünk, azaz ha az oszlopokat speciális sorrendben akarjuk látni:
Adatok > Rendezés és szűrés > Rendezés

Megjelenik a Rendezés ablak:

Eldönthetjük, melyik oszlop alapján akarjuk rendezni adatainkat, és hogyan (pl. értékek, színek stb. szerint), a rendezés sorrendjét (A-Z vagy Z-A), ill. oszloponként milyen sorrendben.
Rendezés balról jobbra
Néha azonban nem fentről le, azaz függőlegesen, hanem inkább balról jobbra, vízszintesen akarjuk rendezni adatainkat.
Egy példa:

Nincs valami furcsa ebben a táblázatban? De bizony, valaki ábécébe rendezte a hónapokat! Anyám, ez így csaknem használhatatlan. A jó hír:
1)van megoldás a gyors javításra,
2) és tudunk balról jobbra rendezni.
A megoldás:
1. Jelöljük ki az adattartományt a fejlécekkel együtt (C1:H11).
Kattintsunk:
Adatok > Rendezés és szűrés > Rendezés.
A párbeszédablakban kattintsunk a Beállítások gombra.
A megjelenő ablakban jelöljük be a Balról jobbra jelölőgombot. Kattintsunk: OK.

2. Adjuk meg annak a sornak a számát, mely alapján rendezni akarunk, majd a Sorrend ablakban a lenyílóból válasszuk
3. az Egyéni sorrend opciót.
3. Megjelenik az Egyéni listák ablak. Mivel a hónapok már szerepelnek, válasszuk ki, majd: OK.

És ennyi.

A =MARADÉK() függvény alkalmazása 2.
2019. április 15.

Verzió: Excel 2016, 2013, 2010, 2007

Az előző bejegyzésben a =MARADÉK() függvény alkalmazásáról volt szó. Most újabb megközelítést mutatok be.

Előfordul, hogy a rendezett adatokat az oszlopok szerint kellene csoportosítani, pl. összegezni. Most néhány példa a konstansnak nevezet (páros, páratlan, minden harmadik stb.) oszlop adatainak összegzésére. A példák szándékosan "bonyolultak", mert a második oszloppal kezdődnek, de így jól lehet látni a felhasznált =MARADÉK() és =OSZLOP() függvények lényegét.
Az ábrákban a 7. sor csak szemléltetés, az összegeket és a függvény által kezelt cellák bemutatására szolgál.
Tehát a B:H tartomány tartalmazza az adatokat.

A képlet:
{=SZUM(B3:H6*(MARADÉK(OSZLOP(B3:H3);3)=0))}
Kezdjük az =OSZLOP() résszel.
A cellatartomány oszlopainak számát eredményezi, így 2 a B3, 3 a C3, 4 a D3 számára, és így tovább.
Ez akkor lenne igazán látványos, ha a fejlécben nem 1, 2, 3, hanem Január, Február, Március állna, de a helyszűke miatt itt számok szerepelnek.
A =MARADÉK() (mint láttuk) az osztás maradékát eredményezi. A példában az (osztandó) szám az egyes cellák oszlopainak száma, az osztó pedig 2.
Ez a művelet eredménye minden páros oszlop esetében 0, ne feledjük, hogy az első hónap a B, azaz a második oszlopban van.
A maradékot látjuk:

És itt a 0 nagyon fontos, logikai érték, ha =MARADÉK() eredménye 1, ezt kapjuk 1=0, ami HAMIS, azaz a HAMIS-t 0-ként kezeljük.
Az oszlopok összegét (a 7. sorban) ezzel az 1-gyel vagy nullával szorozzuk, és az összegeket adjuk össze.
Ha a páros oszlopokat, azaz itt az elsőt, harmadikat stb. akarjuk összegezni:

A képlet (értelemszerűen):
{=SZUM(B3:H6*(MARADÉK(OSZLOP(B3:H3);2)=0))}
Ha minden harmadik vagy negyedik oszlop adatait akarjuk összeadni, változtassuk az osztót.

A képlet:
{=SZUM(B3:H6*(MARADÉK(OSZLOP(B3:H3);3)=0))}
Az összes megoldás tömbképlettel készült.

A =MARADÉK() függvény alkalmazása
2019. április 8.

Verzió: Excel 2016, 2013, 2010, 2007

A függvényt általában csak matematikai műveletekben, esetleg a feltételes formázásban ("zebra" sorok) szokás alkalmazni, pedig hasznos lehetőségeket lehet vele kihasználni.

Nézzük először a szintaxist.
A =MARADÉK függvény egy szám osztó argumentummal való osztásából adódó maradékot adja eredményül.
Az eredmény előjele megegyezik az osztó előjelével.
Szintaxis: =MARADÉK(szám;osztó)
A szám az a szám, amelynek maradékát meg szeretnénk kapni. Ebben az esetben ez a SOR száma.
Az osztó az a szám, amellyel a szám argumentumot el akarjuk osztani.
Példák:

Láthatóan mindegyik művelet rendben van, kivéve az utolsót. Mivel a 3 nem osztható közvetlenül 5-tel, a teljes számot maradékként kapjuk. Ezért célszerű, hogy a =MARADÉK() eredményeket ellenőrizzük.
A függvényt gyakran alkalmazzuk olyan esetekben, melyekben minden n-edik értékkel állnak kapcsolatban. Erre adunk néhány példát.
1) Páros (páratlan) cellák száma

A =SZORZATÖSSZEG() közvetlenül kezeli a tömböket, majd meg kell számolnunk az eredményeket.
Így esetünkben ellenőrizzük a páratlan számokat:
MARADÉK(tartomány;2)=1
Esetünkben a tartomány az értékeket tartalmazó cellatartomány (B3:B8), akár nevet is adhatunk neki.
A =MARADÉK() az osztásából adódó maradékot adja eredményül. Esetünkben az osztó 2, így a függvény minden páratlan egész szám esetében 1-et ad maradékként, párosak esetében a maradék pedig zéró.
A képlet SZORZATÖSSZEG része ellenőrzi a B3:B8 tartomány minden egyes celláját, az eredmény IGAZ/HAMIS értékek tömbje:
{HAMIS;IGAZ;IGAZ;IGAZ;HAMIS;IGAZ}
A kettős mínuszjellel számokká alakítottuk a logikai IGAZ/HAMIS értékeket, és ezt kapjuk:
{0;1;1;1;0;1}
A =SZORZATÖSSZEG() egyszerűen összeadja az értékeket, az eredmény (itt): 4
A két mínuszjelről
A két mínuszjel használata elég furcsának tűnhet.
Azonban a megoldás érdekes és hasznos.
Közismert (bocsánat!), hogy a mínuszjel használata egy képletben az eredmény előjelének megváltoztatását is eredményezheti, így például a pozitív előjelből negatív lesz.
De milyen eredménnyel jár két mínuszjel?
A két mínusz a képletben az IGAZ értéket "1" értékké, a HAMIS értéket "0" értékké alakítja.

Ebben a kis példában a B2 cellában lévő képlet =(10>5). Mivel a feltétel igaz, az eredmény IGAZ.
A B3 cellában a képlet =--(10>5). Mivel a feltétel továbbra is igaz, az eredmény "1" -- a két mínuszjel "jóvoltából".
(A B5 és B6 cellában a HAMIS bemutatója.)
A képletekben használt két mínuszjel nincs hatással más eredményre, csak az IGAZ vagy HAMIS értékeket módosítja.
Ezt a technikát leggyakoribban a SZORZATÖSSZEG függvénnyel, mellyel több kritérium alapján adunk össze adatokat, együtt szokás alkalmazni. Ezt történt itt is.
A páros számok megszámlálására több lehetőségünk is van,, maradjunk a MARADÉKnál:

2) Minden n-edik oszlop értékeinek összege
Előfordulhat, hogy kimutatásokban rendszeresen visszatérő minden n-edik oszlop (pl. hónap, hét napja stb.) értékeinek összegére vagyunk kíváncsiak.
Itt most csak számok jelzik az oszlopok számát, az I oszlopban adtam meg, hányadik oszlopokat összegezzük, így először az összeset (1), majd minden másodikat, harmadikat, negyediket.

A képlet a J3 cellában:
=SZORZATÖSSZEG(--(MARADÉK(OSZLOP(B3:H3)-OSZLOP(B3)+1;I3)=0);B3:H3)
Általánosítva:
=SZORZATÖSSZEG(--(MARADÉK(OSZLOP(tartomány)-OSZLOP(tart. első oszlopa)+1;n)=0);tartomány)
Hogyan működik?
Ahhoz, hogy minden n-edik oszlop értékeit összeadhassuk, három függvényt alkalmazunk a képletben: =SZORZATÖSSZEG(), =MARADÉK(), =OSZLOP()
A képlet magja ismét a =SZORZATÖSSZEG(), a függvény összegzi az adott sor MARADÉK által megszűrt értékeit. A lényeg:
(MARADÉK(OSZLOP(B3:H3)-OSZLOP(B3)+1;I3)=0)
Az OSZLOP segítségével megkapjuk a relatív oszlopszámokat, ez adja meg a tartományt.
{1,2,3,4,5,6,7}
Ez kerül a MARADÉK elé, valahogyan így:
MARADÉK({1;2;3;4;5;6;7};I3)=0
Itt az I3 az n értéke. A MARADÉK megadja az össze oszlop maradékát, ami az n-nel történt osztás után maradt. Így ha i = 3, az eredmény:
{1;2;0;1;2;0;1}
Látható hogy a 0 a harmadik, hatodik, kilencedik stb. oszlopokban jelenik meg. A 0 eredménye IGAZ, ha a maradék zéró, és HAMIS, ha nem. Ekkor alkalmazzuk a dupla negatívjelet, hogy az IGAZ és HAMIS értékeket egyekkéé és zérókká alakítsa.
{0;0;1;0;0;1;0}
Itt az 1-ek jelzik az n-edik értéket. Ez kerül a SZORZATÖSSZEG első tömbjébe, a B3:H3 második tömbbel együtt.
A SZORZATÖSSZEG teszi a dolgát, először összeszorozza, majd összeadja a tömböket.
A szorzást csak az 1-et tartalmazó tömbök "élik túl".

Oszlop/sor kijelölése Excel táblázatban
2019. április 1.

Verzió: Excel 2016, 2013, 2010, 2007

Ha már másolunk, többnyire a teljes oszlopot másoljuk. Ez a szokás kellemetlen mellékhatásokkal járhat, így például milliónyi sor vagy oszlop szükségtelen formázásával. Hogyan kerülhetjük ezt el?

A táblázatok használata hihetetlenül megkönnyíti munkánkat. Ha csak az adatokat akarjuk kijelölni (és miért akarnánk mást?), nagyon egyszerűen megtehetjük.
Előbb azonban néhány szó a kijelölésről.
Ha végiggondoljuk, a Ctrl + A kombinációt sokan azért nem használják, mert talán emlékeznek a régi időkre, amikor ezzel a teljes munkalapot kijelöltük. Az újabb verziók már "okosabbak", csak azt a blokkot jelölik ki, melyben a kurzor áll:

A kijelölt cellában alkalmazva a billentyűkombinációt, a kijelölés csak a körülvevő cellákra érvényes
Ha táblázatot használunk, a következő lehetőségeink vannak. Ha a kurzor az adatterületen van:
1) a Ctrl + A lenyomásával a teljes adattartományt kijelöljük:

2) ha még egyszer lenyomjuk, ismét kijelöljük az összes tartalmat, plusz a fejléceket:

3) ha háromszor nyomjuk meg a Ctrl + A billentyűkombinációt, a telje munkalapot kijelöltük:

Mi a helyzet azonban, ha csak egy oszlopot akarunk kijelölni?
Egyszerű: Vigyük a kurzort a kijelölendő oszlop neve (fejléc) fölé (a kurzor nyíl alakú lesz), és kattintsunk. Kijelöljük az oszlop összes adatát, és nem a teljes oszlopot.

Ez akkor is működik, ha a táblázatban üres sorok is vannak. (Ellentétben az 1) alatti megoldással.)
Mi a helyzet, ha a táblázat egyik sorát akarjuk kijelölni?
Ebben az esetben a beépített megoldás marad:
Válasszuk ki a sort, jobb kattintás Kijelölés > Táblázatsor.

(Ezt egyébként (mint látszik) az oszlop kijelölésekor is megtehetjük.)

Csoportok összegzése
2019. március 25.

Verzió: Excel 2016, 2013, 2010, 2007

Előfordulhat, hogy adatokat csoportok szerint kell összegezni, de a többször előforduló csoportokat is összesíteni kell (pl. időszakok, kategóriák, mértek stb. szerint.

A példában a termékek (egyszerűen Termék néven) három kategóriába tartoznak (S, M, L). Az értékeket szeretnénk csoportonként összegezni, így

Itt két megoldás van, egyrészt a csoportok összesítés, majd az összegzés. Nézzük először a csoportosítást!
A megoldás, a Small (S) csoport összesítése:
B15 cella.
A képlet: =KERES(2;1/(DARABTELI($B$14:B14;$B$3:$B$12)=0);$B$3:$B$12)
A szemléltetés érdekében a B15 képletéből aDARABTELI elemet az E3 cellában szemléltetem.

A képlet: =DARABTELI($E$2:E2;$B$3:$B$12)
A bővülő hivatkozással (abszolút és relatív) megoldottuk, hogy milyen értékeket számoltunk meg.
Látható, hogy a fejléc a kritérium. Ügyeljünk arra, hogy a listában ne legyen a fejléccel megegyező érték.
Az E2 cella értékét nem találja a képlet a B3:B12 tartományban.
A képlet:
Az aktuális cella feletti értékek megszámlálása:
A (DARABTELI() függvény egy tartományban összeszámolja azokat a cellákat, amelyek eleget tesznek a megadott feltételnek.
Szintaxis: =DARABTELI(tartomány;feltételek)
Tartomány:egy vagy több összeszámolandó cella; tartalmazhat számokat, neveket, tömböket vagy számokat tartalmazó hivatkozásokat.
A függvény figyelmen kívül hagyja a szövegértéket és az üres cellát.
Feltételek: az összeszámolandó cellákat meghatározó, számként, kifejezésként, cellahivatkozásként vagy szövegként megadott feltétel.
A feltétel lehet:
szám, így pl. =DARABTELI(A1:A5;100),
szöveg idézőjelben, így pl. =DARABTELI(A1:A5;"Szia"),
operátor idézőjelben, így pl. =DARABTELI(A1:A5;">100").
Egyelőre csak a DARABTELI részt vizsgálva:
A bővülő hivatkozással (abszolút és relatív) megoldottuk, hogy milyen értékeket számoltunk meg.
Látható, hogy a fejléc a kritérium. Ügyeljünk arra, hogy a listában ne legyen a fejléccel megegyező érték.
Az E2 cella értékét nem találja a képlet a B3:B12 tartományban.
A következő lépés az értékek összehasonlítása:

Ahhoz, hogy azonosíthassuk a nem mutatott értékeket, a tömböt összevetjük a 0 értékkel
A képlet:
=DARABTELI($E$2:E2;$B$3:$B$12)=0
A tömb összes értéke IGAZ.
Osszunk el 1-et a tömbbel!
Tudjuk, hogy a logikai IGAZ érték egyenlő 1-gyel, míg a HAMIS érték = 0.
Így osztáskor az IGAZ eredménye 1, mert az 1/IGAZ = 1.
Ha a tömb egyik értéke HAMIS, az eredmény ZÉRÓOSZTÓ!, mert az 1/HAMIS egyenlő: 1/0!
Ezt kapjuk:

És most áttérhetünk a KERES értékekre
A függvényről:
Egy sorból vagy egy oszlopból álló tartományban vagy tömbben lévő értéket keres meg.
A =KERES() függvénynek két formája van: a tömbös és a vektoros.
A függvény tömbös formája egy adott tömb első sorában vagy első oszlopában keres egy megadott értéket, majd a megtalált érték oszlopának vagy sorának utolsó elemével tér vissza.
A függvény vektoros alakja megkeres egy értéket az egy sorból vagy egy oszlopból álló tartományban (ez a vektor), és egy másik vektor azonos pozíciójában lévő értéket ad eredményül.
Szintaxis: =KERES(keresési_érték;keresési_vektor;eredmény_vektor)
Keresési érték: az az érték, amelyet a függvény az első vektorban keres.
A keresési_érték lehet szám, szöveg, logikai érték, illetve ezek valamelyikére vonatkozó név vagy hivatkozás.
Keresési_vektor: egyetlen sorból vagy egyetlen oszlopból álló tartomány.
A keresési_vektor értékei szöveg, számok vagy logikai értékek lehetnek.
A keresési_vektor értékeinek emelkedő sorrendben kell elhelyezkedniük: pl. -2, -1, 0, 1, 2; A-Z; HAMIS, IGAZ.
Ellenkező esetben a KERES függvény nem biztosan ad pontos eredményt. A függvény a kis- és nagybetűk között nem tesz különbséget.
Eredmény_vektor: egyetlen sorból vagy egyetlen oszlopból álló tartomány.
Méretének meg kell egyeznie akeresési_vektor méretével.
A =KERES() függvényben az a jó, hogy figyelmen kívül hagyja a hibaértékeket.
Esetünkben az értékek kétfélék: vagy 1, vagy ZÉRÓOSZTÓ!.
A KERESfüggvény első argumentuma 2, így a függvény azt az utolsó értéket találja meg, amelyik egyenlő 2-vel, vagy kisebb nála.
Visszatérve az eredeti táblázathoz, a képlet a B15 cellában:
=KERES(2;1/(DARABTELI($B$14:B14;$B$3:$B$12)=0);$B$3:$B$12)
Ezzel a formulával kapjuk meg a Small (S) csoport nevét.
Jobban látható a működés, ha a képletet lehúzva, megtekintjük a B16-ban lévő eredményt.
A képlet:
=KERES(2;1/(DARABTELI($B$14:B15;$B$3:$B$12)=0);$B$3:$B$12)
Az eredmény: Large (L).
Nézzük (az előzőekben kifejtettek alapján):
=KERES(2;1/(DARABTELI($B$14:B15;$B$3:$B$12)=0);$B$3:$B$12)
Látjuk a hivatkozások "erejét".
=KERES(2;1/(DARABTELI($B$14:B15;$B$3:$B$12)=0);$B$3:$B$12)
=KERES(2;1/({1;0;0;1;0;0;1;0;0;1}=0);$B$3:$B$12)
=KERES(2;1/({HAMIS;IGAZ;IGAZ;HAMIS;IGAZ;IGAZ;HAMIS;IGAZ;IGAZ;HAMIS}=0);$B$3:$B$12)
=KERES(2;({#ZÉRÓOSZTÓ!;1;1;#ZÉRÓOSZTÓ!;1;1;#ZÉRÓOSZTÓ!;1;1;#ZÉRÓOSZTÓ!};$B$3:$B$12)
Large (L)
Így kapjuk meg a csoportok (méretek) nevét. Persze a HAHIBA() alkalmazásával elkerüljük, hogy a képlet másolásakor az üres kategória helyén ne a #HIÁNYZIK hibaüzenetet kapjuk.
Megvannak a nevek. Az összegzéshez egyszerűen a =SZUMHA() függvényt használjuk.

A képlet a C15 cellában:
=SZUMHA($B$3:$B$12;B15;$D$3:$D$12)
A függvényt már többször bemutattam, csak röviden:
A =SZUMHA() adott kritérium (feltétel) alapján összegzi a sorokat.
Szintaxisa
=SZUMHA(tartomány;feltételek;összegtartomány)
A tartomány a feltételek alapján kiértékelendő cellatartomány. Ebben az esetben ez a C3:C16, itt találhatók a kategóriák.
A tartományok cellái számok, számokat tartalmazó tömbök vagy számokra mutató nevek, illetve hivatkozások lehetnek.
A kritérium az összeadandó cellákat meghatározó, számként, kifejezésként, cellahivatkozásként, szövegként vagy függvényként megadott feltétel, például: 32, ">32", B5, 32, "32", "élelmiszer" vagy MA().
Fontos: bármely szöveges feltételt vagy bármely olyan feltételt, amely logikai vagy matematikai szimbólumokat tartalmaz, dupla idézőjelbe (") kell tenni. Ha a feltétel numerikus, nem szükséges a dupla idézőjel.
A kritérium lehet:
numerikus érték (beleértve az egész számot, törtszámot, dátumot, időt vagy logikai értéket, így pl. 10, 10,25, 2012/04/25, HAMIS),
vagy
karakterlánc (pl. "benzin", "csütörtök"),
vagy
kifejezés (pl. ">100", "<>0")
A SZUMHA nem tesz különbséget a kis- és nagybetű között, így az "ÉLELMISZER" és az "Élelmiszer" vagy
Esetünkben a tartomány a $B$3:$B$12 cellatartomány, a $ jele zárolja a tartomány, ha a képletet másoljuk.
A második argumentum a kritérium a B15 cellában relatív havatkozással ($-jel nélkül), hogy változhasson másoláskor.
A harmadik argumentum, az összegtartomány tartalmazza az összeadandó értékeket, ($D$3:$D$12, ismét rögzítve, abszolút hivatkozással).
Így megkaptuk a teljes megoldást, nagyobb táblázatoknál, hasznos lehet.

Két táblázat összefésülése
2019. március 18.

Verzió: Excel 2016, 2013, 2010, 2007

Hogyan lehet két egymással összefüggő táblázatot összefésülni, azaz egy táblázattá alakítani, hogy ebből a táblázatból egyszerűen készíthessünk kimutatást (Pivot table-t)?
(A Kimutatás köztudottan csak egy táblázatból készíthető.) Szeretnénk kimutatni az értékesítők teljesítményét.

Az adatokat két táblázat tartalmazza. Az első mutatja a neveket és a képviselt cégeket, a második a terméket, az árat és a cég nevét.
Egy értékesítőnek több cége is lehet.

Szeretnénk, ha a megfelelőm adatok egy táblázatba kerülnének.
Megoldás
Nevezzük el a táblázatokat: Tábl_1, ill. Tábl_2.
Kezdjünk a második táblázattal.
1. Jelöljük ki a H2 cellát.
2. Írjuk be ezt a képletet:
=INDEX(Tábl_1[Név];HOL.VAN([@Vállalat];Tábl_1[Vállalat];0))
3. Enter.

Megkaptuk a Vállalathoz tartozó munkatárs Nevét.

Így már nekiláthatunk a Kimutatás elkészítésének.
Látható, hogy a jól ismert INDEX/HOL.VAN kombót alkalmaztam.
Hogyan működik?
=INDEX(Tábl_1[Név];HOL.VAN([@Vállalat];Tábl_1[Vállalat];0))
=INDEX(Tábl_1[Név];HOL.VAN([@Vállalat];Tábl_1[Vállalat];0))
=INDEX($B$2:$B$10;HOL.VAN([@Vállalat];Tábl_1[Vállalat];0))
=INDEX($B$2:$B$10;HOL.VAN("Cég Kft.";Tábl_1[Vállalat];0))
=INDEX($B$2:$B$10;HOL.VAN("Cég Kft.";$C$2:$C$10;0))
=INDEX($B$2:$B$10;1)
Név1

Egy adott sor vagy oszlop kiemelése
2019. március 11.

Verzió: Excel 2016, 2013, 2010, 2007

Hogyan lehet megoldani, hogy egy táblázatban egy adott sort vagy oszlopot úgy emeljünk ki, hogy a kiemelés megmaradjon akkor is, ha beszúrunk vagy éppen törlünk sorokat vagy oszlopokat.

Elképzelhető, hogy valamilyen célból ki kell emelnünk egy sort vagy oszlopot, mert pl. elértünk egy célt vagy eredményt.
Hogy egyszerű legyek, mondjuk, a 101. sort akarjuk megjelölni, mert ez a századik rekord egy fejléccel ellátott táblázatban.
Ha ezt a sort kiemeljük (mondjuk, kék kitöltéssel), a 100. sorra csúszik vissza, ha előtte törlünk egy sort.
A példában legyen ez a 11. sor. Így

Hogy érjük el, hogy a kiemelés mindig a 11. sorban maradjon?
A megoldása feltételes formázás.
A megoldás menete
1. Először ki kell jelölnünk azt a tartományt, melyben alkalmazni akarjuk a feltételes formázást.
Kijelölhetnénk az egész lapot, de ez fölösleges.
Célszerűbb a ténylegesnél magasabb (több sor) és valamivel szélesebb (több oszlop) kijelölése.
Így a B1:J100 tartományt jelöltük ki.
2. Kattintsunk: Kezdőlap > Stílusok > Feltételes formázás, majd válasszuk: Új szabály.
3. Az opciók közül kattintsunk: A formázandó cellák kijelölése képlettel.

A képletdobozba írjuk be: =SOR()=11.
3. Kattintsunk a Formátum gombra, és válasszuk ki a kiemelendő cellák formátumát.
Ennyi. A 11. sort kiemeltük, ez így marad,akár törlünk, akár beszúrunk sorokat (nyilván fölötte).

Ugyanez megtehetjük az oszlopokkal is: =OSZLOP()=x.
Arra azonban ügyeljünk, hogy az oszlop_szám tényleg szám, így a J oszlop: =OSZLOP()=10.

Az ELTOLÁS/HOL.VAN/HOL.VAN
2019. március 4.

Verzió: Excel 2016, 2013, 2010, 2007

Nemrég volt szó az INDEX/HOL.VAN/HOL.VAN kombináció hallatlan előnyeiről. Ha továbbra is a kétdimenziós keresés opcióit vizsgáljuk, megkerülhetetlen az ELTOLÁS/HOL.VAN/HOL.VAN kombináció

Az ELTOLÁS/HOL.VAN/HOL.VAN használatának egyetlen előfeltétele, ahogy erről már az INDEX/HOL.VAN/HOL.VAN esetében is szó volt, az adatok mátrix jellegű elrendezése. Egyszerűen fogalmazva, a keresési értékeknek a bal szélső oszlopban és az első sorban (fejléc) kell lenniük.
Vegyünk egy hasonló példát:

Ha most összehasonlítjuk az ELTOLÁS/HOL.VAN/HOL.VAN kombinációt az INDEX/HOL.VAN/HOL.VAN változattal, az egyetlen különbség a képletkombináció alapozása.
Az =INDEX() megköveteli,
1) hogy speciális hivatkozási tömböt határozzunk meg,
2) majd megkérdezi, hová menjen ebben a meghatározott mezőben.
Ezzel szemben az =ELTOLÁS() arra kér, hogy
1) határozzuk meg a kiindulási pontot,
2) majd mondjuk meg, hová lépjünk innen.
Mindkét megközelítés létfontosságú, és végül ugyanahhoz az eredményhez vezet. Az ELTOLÁS/HOL.VAN/HOL.VAN azonban egy kicsit eltérő módon éri ezt el.
A szintaxis
=ELTOLÁS(HOL.VAN( keresési_érték;tömb; 0);
HOL.VAN( keresési_érték;tömb; 0))

A képlet általános szintaxisa meglehetősen egyszerű: az alap az ELTOLÁS(), melyben két =HOL.VAN() függvényt alkalmazunk a függőleges és vízszintes keresésre. Nézzük a részleteket!
Az =ELTOLÁS() függvény
Egy megadott magasságú és szélességű hivatkozást ad eredményül, egy másik hivatkozástól számított megadott számú sornyi és oszlopnyi távolságra. Azaz: meg kell határoznunk a kiindulási hivatkozási pontot, majd meg kell mondanunk, hány cellányit akarunk függőlegesen (vertikálisan) mozogni (sorok), illetve vízszintesen (oszlopok) ettől a ponttól.
Az eredményként visszaadott hivatkozás hivatkozhat egyetlen cellára vagy egy cellatartományra.
Megadhatjuk a sorok és az oszlopok számát.
Szintaxis: =ELTOLÁS(hivatkozás;sorok;oszlopok;[magasság];[szélesség])
Hivatkozás: az a hivatkozás, amelyhez képest az eredmény hivatkozás helyzetét az argumentumok meghatározzák.
A hivatkozásnak egyetlen cellára vagy egy cellatartományra kell vonatkoznia, ellenkező esetben a függvény az #ÉRTÉK! hibaértéket adja eredményül.
Sorok: az eredmény bal felső cellája és a hivatkozás közötti függőleges távolság a sorok számában kifejezve.
Ha például az argumentum értéke 3, akkor az eredményül kapott hivatkozásban a bal felső cella 3 sorral lesz a hivatkozás alatt.
A sorok értéke lehet pozitív (a kezdőhivatkozás alatt) vagy negatív (a kezdőhivatkozás felett).
Oszlopok: az eredmény bal felső cellája és a hivatkozás közötti vízszintes távolság az oszlopok számában kifejezve.
Ha például az argumentum értéke 3, akkor az eredményül kapott hivatkozásban a bal felső cella a bal felső cella 3 oszloppal jobbra lesz a hivatkozás mellett.
Az oszlopok értéke lehet pozitív (a kezdőhivatkozástól jobbra) vagy negatív (a kezdőhivatkozástól balra).
Ha a sorok és az oszlopok által megadott mértékben eltolt hivatkozás túllóg a munkalap szélén, akkor a függvény a #HIV! hibaértéket adja eredményül.
Magasság: az eredmény hivatkozás magassága a sorok számában mérve. Csak pozitív szám lehet.
Szélesség: az eredmény hivatkozás szélessége az oszlopok számában mérve. Csak pozitív szám lehet.
Ha a magasság vagy a szélesség argumentumot nem adjuk meg, akkor a program a hivatkozás magasságát és szélességét használja.
Ebben a bejegyzésben csak egy celláról van szó, így az utóbbi két argumentumra itt nincs szükségünk.
A =HOL.VAN() függvény
A függvény egy olyan elem tömbben elfoglalt relatív pozícióját adja vissza, amely megadott értékkel megadott módon egyezik. Kereshetünk számot, szöveget vagy logikai értéket, hivatkozást ilyen értékre. A megtalált elem helyét adja meg, és nem magát az elemet.
Példánkban: ha keresési értékként a 2015 évet választanám, és táblaként a teljes első sort, a képlet eredménye 2 lenne, mert a 2015 a második érték az általam kiválasztott tömbben (atáblában).
Szintaxis: =HOL.VAN(keresési_érték;tábla;[egyezés_típus])
Keresési_érték: az az érték, amelynek segítségével a táblázatban a keresett érték megtalálható.
Tábla: azon értékeket tartalmazó összefüggő cellatartomány, amelyek között a függvény a keresési_értéket keresi.
Egyezés_típus: értéke -1, 0 vagy 1.
Ha az egyezés_típus: 1, azt a legnagyobb értéket keresi meg, amely egyenlő vagy kisebb, mint a keresési_érték.
Ha nincs egyezés vagy kisebb érték, akkor a #HIÁNYZIK hibaértéket adja eredményül.
A táblának emelkedő sorrendbe rendezettnek kell lennie.
Ha az egyezés_típus: -1, azt a legkisebb értéket keresi meg, amely egyenlő vagy nagyobb, mint a keresési_érték.
Ha nincs egyezés vagy nagyobb érték, akkor a #HIÁNYZIK hibaértéket adja eredményül.
A táblának csökkenő sorrendben rendezettnek kell lennie
Ha az egyezés_típus értéke 0, az első olyan értéket keresi meg, amely pontosan egyenlő a keresési_értékkel.
A táblának nem kell rendezettnek lennie.
Hogyan működik?
A megoldás egyszerűsített szintaxisa:
= ELTOLÁS( kiindulási pont[hivatkozás]; Hol.VAN(függőleges keresési_érték; bal oldali keresési oszlop, a hivatkozás nélkül;0 );
Hol.VAN(vízszintes keresési_érték;teljes fejléc sor, a hivatkozással együtt;0))

Példa
Keressük a Nyugat régió 2017-es eredményét.

1. Kezdjük beírni az =ELTOLÁS() függvényt, válasszuk ki a kiindulási pontot, a hivatkozást; ez a tábla bal felső cellája, értéke: Régió.

2. Indítjuk a HOL.VAN függvényt: jelöljük ki a függőleges keresési értéket, esetünkben ez: Nyugat régió.

3. Határozzuk meg a függőleges keresési értéket. Ez az az oszlop, mely a kiindulási pontot (hivatkozást) is tartalmazza. Esetünkben ez a régiók nevét tartalmazó tartomány, benne a fejléc. (Lilával kiemelve.)

4. Zárjuk a függvényt: "0", pontos egyezést akarunk.
=ELTOLÁS(B2;HOL.VAN(B10;B2:B7;0
5. Kezdjük beírni a második =HOL.VAN() függvényt, válasszuk ki a vízszintes keresési értéket, ebben az esetben ez a C10 cellában 2018.

6. Határozzuk meg a vízszintes keresési értéket. Ez a tartomány felső sora, benne a hivatkozásként megadott első cella, esetünkben az Éveket jelölő cellák. (Magentával kiemelve.)
FONTOS!
Ügyeljünk arra, hogy a HOL.VAN tömb kiválasztása ne legyen átfedésben a hivatkozással (a kiinduló cellával). Látjuk, a fenti kiválasztott tartományok nem fedik vagy keresztezik egymást. Ez azért van, mert a HOL.VAN arról tájékoztatja az ELTOLÁS függvényt, hogy hány cellával kell elmozdulnia a kiinduló cellától. Ha kijelölések fedésben vannak, ez plusz lépést jelentene. (Az ELTOLÁS/HOL.VAN/HOL.VAN használatának ez a legtöbbször elkövetett hibája. Az átfedés hiánya egyben az egyik fő különbség, ha összehasonlítjuk az INDEX/HOL.VAN/HOL.VAN kombinációval. (Egyben érthető is hogy az =ELTOLÁS() függvény miért nem tol el egyetlen cellát sem.)
7. 4. Zárjuk a függvényt: "0", pontos egyezést akarunk.
=ELTOLÁS(B2;HOL.VAN(B10;B2:B7;0);HOL.VAN(C10;C2:F2;0)
8. Végső zárójellel fejezzük be a képletet:
=ELTOLÁS(B2;HOL.VAN(B10;B2:B7;0);HOL.VAN(C10;C2:F2;0))
Hogyan működik?
Az Excel először a =HOL.VAN() függvényekkel foglalkozik. Megkeresi a keresési tömbökben a keresési értékek relatív helyét (pozícióját). Példánkban mind a Nyugat régió, mind a 2018 év a 4. pozícióban van. A kiinduló cella a Régió: 4 cellát haladunk lefelé és 4 cellányit jobbra. A végeredmény: 433 000.

Ha valakinek az =ELTOLÁS() függvény nem okoz gondot, ez a kombináció nagyon hasznos megoldás.

Az INDEX/HOL.VAN/HOL.VAN
2019. február 25.

Verzió: Excel 2016, 2013, 2010, 2007

Legutóbb (itt) az INDEX/HOL.VAN kombó előnyeiről és az alkalmazás során előforduló hibákról volt szó. Ha ez a fajta keresés nagy előnyökkel jár, mit mondjunk az INDEX/HOL.VAN/HOL.VAN változatról? Elsőre bonyolultnak tűnik, hiszen három függvény kombinációja, de megértésük után egyből kedvencünk lesz.

Vegyünk egy nagyon leegyszerűsített példát. Kíváncsiak vagyunk Név 5 teljesítményére 2017-ben.

Hogyan kapjuk meg egyszerűen a fenti eredményt?
Magyarán, hogyan tudunk egyszerre vízszintesen és függőlegesen keresni?
Látható, hogy a fenti táblázat mátrix. Azaz a működéshez elengedhetetlen, hogy az adatok sorokba és oszlopokba legyenek rendezve. A metszéspont adja a keresett adatot.
Esetünkben a Név és az Évek kereszthivatkozása adja az Eredmény releváns adatát.
Mátrixok alkalmazása megkönnyíti a vizualitást, ráadásul helytakarékos megoldás.
Meg kell azonban jegyezni, a legtöbb adatállomány nem ilyen módon rendezett, sőt ha az elméletet követjük, nem volna szabad az adatokat egyszerre vertikálisan és horizontálisan elrendezni.
Egy tökéletesen formázott táblázat ilyen lenne:

Mielőtt folytatnám, persze több opció is kínálkozik, ha az adatok elrendezése nem alkalmas a INDEX/HOL.VAN/HOL.VAN alkalmazására. Így például a =VKERES(), ha csak a táblázat "tetején" keresünk, vagy az =FKERES(), ill. az INDEX/HOL.VAN kombináció, ha a keresett érték a bal oldalon van.
Nézzük először a kombináció szintaxisát, egyelőre általánosan
= INDEX ( tömb;HOL.VAN( keresési_érték;tömb; 0);
HOL.VAN( keresési_érték;tömb; 0))

A képlet elemei
=INDEX()
Legutóbb részletesen ismertettem (itt), most csak röviden a példára koncentrálva.
Kijelölünk egy sort vagy oszlopot tartományként, meghatározzuk a hivatkozási pontot, és a megfelelő értéket kapjuk eredményként. Példánkban: ha a táblázat első (bal) oszlopát választjuk, és a hivatkozás "6", az =INDEX() eredménye a Név 5 érték
Ha az egyetlen sor vagy oszlop kijelölése helyett egy egész mátrixot (tömböt) is kijelölhetünk: több sorral és oszloppal.
Ebben az esetben meg kell adnunk mind a horizontális, mind a vertikális referenciapontot (cellát), hogy megkapjuk a keresett értéket.
(Jegyezzük meg, az = INDEX() függvényben először a sor_számot adjuk meg.)
Példánkban kijelöltük a teljes táblázatot, majd a sor_szám argumentum értéke "6", az oszlop_számé pedig "4". A szemléltetéshez megszámoztam a sorokat és az oszlopokat.
A függvény (képlet) a tömbben 6 sornyit halad lefelé és 4 oszlopnyit jobbra, így megkapjuk az értéket: "76 000".

=HOL.VAN()
A függvény voltaképpen az =INDEX() fordítottja. Mindkét függvény ugyanazokból az összetevőkből áll, de az input és az output átrendezett.
Így:
INDEX
=INDEX(tömb;sor_szám;[oszlop_szám])
HOL.VAN
=HOL.VAN(keresési_érték;tábla;egyezés_típus)
Példánkban, ha kijelöljük az első oszlopot, és keresési_értékként megadjuk a Név 6 értéket, a =HOL.VAN() eredmény "6". (Fontos: utolsó argumentumként 0-át kell adnunk, jelezve, hogy pontos egyezésre van szükségünk.)

Hogyan működik?
Ahogy írtam, ha az =INDEX() függvényt egy mátrixban (tömbben) alkalmazzuk, meg kell adnunk a vízszintes és függőleges hivatkozásokat.
Az INDEX/HOL.VAN/HOL.VAN esetében ezt a két hivatkozást a HOL.VAN() függvények oldják meg.
Együtt
A megoldás egyszerűsített szintaxisa:
= INDEX ( teljes tömb; Hol.VAN(függőleges keresési_érték;teljes bal oldali keresési oszlop;0 );
Hol.VAN(vízszintes keresési_érték;teljes fejléc sor;0))

A megoldás menete
1. Írjuk be az INDEX függvényt, tömbként adjuk meg a teljes táblázatot.
=INDEX(B2:F11
2. Ha megvan a sor_szám, itt a B15, írjuk be a HOL.VAN függvényt, és válasszuk ezt az értéket:
=INDEX(B2:F11;HOL.VAN(B15
3. A keresés hely tömbhöz jelöljük ki a teljes bal oldali oszlopot. Ügyeljünk arra, hogy magassága megegyezzen az INDEXben megadott magassággal.
=INDEX(B2:F11;HOL.VAN(B15;B2:B11
4. A HOL.VAN utolsó argumentumaként írjuk be 0-át, jelezve, hogy pontos egyezést akarunk. Zárjuk le a képletet:
=INDEX(B2:F11;HOL.VAN(B15;B2:B11;0)
Így:

5. Most érkeztünk az =INDEX() rész oszlop_szám argumentumának megadásához.
Most írjuk be a második HOL.VAN függvényt, ebben az esetben a vízszintes keresési_értéket választjuk ki:
=INDEX(B2:F11;HOL.VAN(B15;B2:F11;0);HOL.VAN(C15
6. A tömb kiválasztásához jelöljük ki a táblázatból (melyet az INDEX számára használtunk) az egész fejlécet:
=INDEX(B2:F11;HOL.VAN(B15;B2:B11;0);HOL.VAN(C15;B2:F2
7. Ismételjük meg az előző HOL.VAN eljárását: írjunk be 0-át, jelezve a pontos egyezést:
=INDEX(B2:F11;HOL.VAN(B15;B2:B11;0);HOL.VAN(C15;B2:F2;0
8. Zárjuk be a képletet. Ezt kapjuk:

Leírás
Az Excel először az INDEX-be beágyazott két HOL.VAN eredményét számítja ki.
Már tudjuk, hogy a Név 5 a hatodik érték az első oszlopban, és 2017 a negyedik érték a fejléc sorban, így az értékek: 6 és 6.
Ha így leegyszerűsítettük, az Excel ugyan így jár el: 6 sort halad lefelé és 4 oszlopot jobbra, és megkapjuk a helyes eredményt: 76 000.

Lehetséges, hogy ritkán van szükségünk erre a megoldásra, ám ha mátrix jellegű elrendezéssel van dolgunk, vagy látványos prezentációkat akarunk készíteni, hasznos lehet. Nem beszélve arról, mennyi számítást takaríthatunk meg.

Az INDEX/HOL.VAN használatában elkövethető top hibák
2019. február 18.

Verzió: Excel 2016, 2013, 2010, 2007

Az INDEX/HOL.VAN kombó az egyik leghatékonyabb függvénykombináció. Sokan váltanak az FKERES-ről erre, számtalan előny van. Népszerűsége ellenére sem nevezhető tökéletesnek, a felhasználók könnyen hibázhatnak az alkalmazás során. A bejegyzés a leggyakoribb hibákat veszi sorra.

1. Felcseréljük a szintaxist
Talán a leggyakoribb hiba. Ha a dolog logikáját nézzük, az INDEX/HOL.VAN szintakszisa mintha fordítva működne. Mindjárt érthetővé válik, ha az alábbi táblázatban az ID alapján keresünk az EREDMÉNYre, és „logikusan” először a keresés helyét adjuk meg, majd az eredményét (B, ill. D oszlop). Íme a hiba:

Nem kaptunk eredményt!
Mielőtt a részleteket látnánk, néhány szó a két függvényről:
Az INDEX függvényről (röviden)
Táblázatban vagy tartományban található érték hivatkozását vagy értékét adja vissza.
A függvénynek két alakja van:
a tömbös forma, amely adott cella vagy cellatömb értékét adja eredményül és
a hivatkozásos forma, amely adott cellák hivatkozását adja eredményül.
Szintaxis: =INDEX(tömb;sor_szám;[oszlop_szám])
Tömb: cellatartomány vagy tömbállandó.
Sor_szám: a tömbben annak a sornak a száma, amelyikből az értéket meg szeretnénk kapni.
Oszlop_szám: a tömbben annak az oszlopnak a száma, amelyikből az értéket meg szeretnénk kapni.
A példában itt a tömb: B5:B12
A sor_szám argumentum pedig a HOL.VAN(B16;D5:D12;0) függvény.
A HOL.VAN függvényről (röviden)
A függvény a keresési_érték tömbben elfoglalt relatív pozícióját adja vissza.
Szintaxis: HOL.VAN(keresési_érték;tábla;egyezés_típus)
A függvény alkalmazásához szükségünk van a keresési_értékre és a táblára.
Esetünkben a keresési_érték a B16 cella tartalma.
A tábla a D5:D12 tartomány.
(Az egyezés_típus paraméter "0" [azaz HAMIS] -- ezzel jelezve, hogy pontos értékre van szükségünk.)
=INDEX(tömb;HOL.VAN képlet)
A példában a képlet (C16):
=INDEX(B5:B12;HOL.VAN(B16;D5:D12;0))
Ábrázolva:

A megoldás:

Milyen egyszerű lenne, ha a teljes táblát jelölnénk, mint az =FKERES() esetében, de nem, csak a keresési és eredménytömböket vesszük figyelembe. És ez a másik különbség, a kombó visszafelé, balról jobbra működik.
A helyes képlet:
=INDEX(D5:D12;HOL.VAN(B16;B5:B12;0))
„Magyarul”:
=INDEX(Oszlop, melyből az értéket akarom megkapni;HOL.VAN(A keresett érték;Oszlop, melyben a keresési érték van;”0” beírása))
2. Elfelejtjük megadni az egyezés_típus paramétert
Ez a hiba a kombó =HOL.VAN() részében fordul elő, ha nem írjuk be a zérót (0) a képletbe.
A szintaxis:
Egyezés_típus: értéke -1, 0 vagy 1.
Ha az egyezés_típus: 1, azt a legnagyobb értéket keresi meg, amely egyenlő vagy kisebb, mint a keresési_érték.
Ha nincs egyezés vagy kisebb érték, akkor a #HIÁNYZIK hibaértéket adja eredményül.
A táblának emelkedő sorrendbe rendezettnek kell lennie.
Ha az egyezés_típus: -1, azt a legkisebb értéket keresi meg, amely egyenlő vagy nagyobb, mint a keresési_érték.
Ha nincs egyezés vagy nagyobb érték, akkor a #HIÁNYZIK hibaértéket adja eredményül.
A táblának csökkenő sorrendben rendezettnek kell lennie
Ha az egyezés_típus: értéke 0, az első olyan értéket keresi meg, amely pontosan egyenlő a keresési_értékkel.
A táblának nem kell rendezettnek lennie.
Ha elfelejtjük megadni a zérót, az Excel azt tételezi, hogy 1-et akartunk írni, azt, amely egyenlő vagy nagyobb, mint a keresési_érték. Esetünkben ez 76 000 lenne (0214).
3. Nem egyforma méretűek a tömbök
Az INDEX/HOL.VAN kombó kétségtelen hátránya, hogy (ellentétben az =FKERES() függvénnyel, hogy több kijelölést használ. Kis adatbázisoknál ez nem gond, de ha nem látjuk a teljes oszlopot a képernyőn, gondunk lehet.

Megoldás, ügyeljünk a két tömb kijelölésekor (beírásakor), hogy egyforma méretűek legyenek, így példánkban:
D5 : D12, ill.B5:B12.
4. Nincs meg a keresési_érték
Bár ez tűnik a legszembeszökőbb hibának, többnyire ez jut legkevésbé eszünkbe, ha hibakeresésre, hibaelhárításra kerül sor.
Az ábrán a =HOL.VAN() függvény eredményét látjuk

Így természetesen a kombó sem ad eredményt. Ezért hibakereséskor használjuk szólóban a =HOL.VAN() függvényt. Ha jól írtuk be és nem kapunk eredményt, tudjuk, hogy a keresett érték nincs ott.
5. Megfeletkezünk a hivatkozás rögzítéséről
Valahányszor másolunk, húzunk egy kereső képletet, mindig gondoljuk meg, hol és hogyan kell zárolni a tömböket.

A képlet a C19 cellában két keresés után lehúzva.
=INDEX(D7:D14;HOL.VAN(B19;B7:B14;0))
Látható, hogy változott a tömb, így nincs eredmény. A hivatkozásokról már többször volt szó, így egyszerűen egy képpel mutatom be a függőleges húzás megoldását:

A képlet a C19 cellában:
=INDEX(D$5:D$12;HOL.VAN(B19;B$5:B$12;0))
Még két hiba említendő, de ezeket más esetekben is elkövetjük:
6. Fölösleges szóközök
A =KIMETSZ() használata.
7. Számok szövegként formázva
Az újabb verziók már jelzik ezt a gondot.

Üres cellák feletti cellák összegzése
2019. február 11.

Verzió: Excel 2016, 2013, 2010, 2007

Előfordulhat, hogy kimutatásokban, bemutatókban éves (negyedéves, havi stb.) adatokat utólag kell összegeznünk. Egy gyors módszer.

Leegyszerűsített táblázatunkban az éves összegzéseket kell elvégeznünk, egyszerűen.
A kiinduló helyzet:

Ki tudjuk egyszerűen választani az üres (kék hátterű) cellákat, és egyben tudnánk összeadni a felettük lévő cellák értékeit?
És még egy kérdés: meg tudjuk adni a végösszegeket a 18. sorban?
Természetesen. A megoldás lépései:
1. Jelöljük ki a teljes, értékeket tartalmazó tartományt
Ne jelöljök a sor- és oszlopfejléceket, és hagyjuk figyelmen kívül a Mindösszesen sort.

2. Kattintsunk: F5, vagy a menüszalagon: Keresés és kijelölés > Ugrás

A párbeszédablakban kattintsunk: Irányított
Jelöljük ki: Üres cellák, majd OK.

3. A Kezdőlapon kattintsunk a SZUM ikonra
Ezzel minden üres cellánkban megkapjuk a =SZUM() képletet.

Ezzel megvolnánk a nehezével.
A végleges szummázás már "hagyományosan" megy:
4. Jelöljük ki (példánkban) a C18 cellát, és írjuk be a képletet:
=SZORZATÖSSZEG(KÉPLET(C3:C17)*C3:C17)

Húzzuk végig, és kész.
A képlet működése:
A képletben két függvény használunk: =SZORZATÖSSZEG() és =KÉPLET().
Az utóbbit ritkán alkalmazzuk.
A függvény megvizsgálja, hogy egy hivatkozás képletet tartalmazó cellára mutat-e, és IGAZ vagy HAMIS értéket ad eredményül.
Így első lépésben képletünk:
=SZORZATÖSSZEG(KÉPLET(C3:C17)*C3:C17)
=SZORZATÖSSZEG({HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;IGAZ}*C3:C17)
=SZORZATÖSSZEG({0;0;89000;0;0;0;118000;0;0;0;202000;0;0;0;127000}*C3:C17)
És a =SZORZATÖSSZEG() megoldja:
536000
Gyors megoldás egy ritkán használt függvény segítségével.

Kritériumok és eredmények 2.
2019. január 28.

Verzió: Excel 2013, 2010, 2007

Olykor szükség lehet arra, hogy csoportokba sorolt, sorolható értékekkel bizonyos kritériumok alapján műveleteket végezzünk. Nagyon egyszerűen, most a =SZUMHATÖBB() függvény segítségével újabb példa az alkalmazhatóságra.

Van egy hosszabb kimutatásunk, tételezzük, hogy öt termékkel és régiók negyedéves forgalmi adataival, minden rendezés nélkül.
Szeretnénk áttekinthető kimutatást látni az egyes termékek negyedéves forgalmáról.
Az ábrán kijelöltük a Termék 1 cikk Észak régió összes negyedévét.

A megoldást két változatban mutatom be.
Tartomány
A megoldás menete
1. Elkészítjük a fejlécet (B16:G16).
2. Az Érvényesítés megoldással mind a Termék, mind a Régió számára lenyíló listát készítünk.

3. Az első negyed összegzése:

A képlet a D17 cellában:
=SZUMHATÖBB($D$3:$D$14;$B$3:$B$14;B17;$C$3:$C$14;C17)
Látható, hogy ismét a nagyon hasznos =SZUMHATÖBB() a megoldás!
A függvény egy adott tartomány több kritériumnak is eleget tevő celláit adja meg.
Az argumentumok sorrendje eltér a =SZUMHA() függvényétől.
(A =SZUMHATÖBB() függvényben az összegtartomány argumentum az első helyen áll, míg a =SZUMHA() függvényben ez a harmadik argumentum.
Szintaxis: =SZUMHATÖBB(összegtartomány; kritériumtartomány1; kritérium1; [kritériumtartomány2; kritérium2]; …)
Összegtartomány: legalább egy összegzendő cella; tartalmazhat számokat, neveket, tartományokat vagy számokat tartalmazó cellahivatkozásokat.
Figyelmen kívül hagyja a szöveges értékeket és az üres cellákat.
Kritériumtartomány1: a kapcsolódó feltételek kiértékelésére használt első tartomány.
Kritérium1: A kritériumtartomány1 argumentum összeadandó celláit meghatározó, számként, kifejezésként, cellahivatkozásként vagy szövegként megadott feltétel, például: 32, ">32", B4, "alma" vagy "32".
Kritériumtartomány2; kritérium2; …: A további tartományok és az azokhoz társított kritérium. Legfeljebb 127 tartomány-feltétel pár engedélyezett.
A példában:
Összegtartomány: D3:D14, az 1. negyed oszlopa.
Kritériumtartomány1: B3:B14, a termékeket tartalmazó oszlop.
Kritérium1: B17, a lenyílóban kiválasztott termék.
Kritériumtartomány2: C3:C14, a régiókat tartalmazó oszlop.
Kritérium2: C17, a lenyílóban kiválasztott régió.
A függvény az összegtartomány argumentum egyes celláit csak akkor adja össze, ha az adott cellára az összes meghatározott kritérium igaz.
Tételezzük fel, hogy a képlet két kritériumtartomány argumentumot tartalmaz. Ha a kritériumtartomány1 argumentum megfelel a kritérium1 argumentumnak,
a kritériumtartomány2 argumentum pedig a kritérium2 argumentumnak, a program hozzáadja az összeghez az összegtartomány argumentum első celláját, és ugyanígy tesz a megadott tartományok fennmaradó celláival is.
A függvény az összegtartomány attribútum IGAZ logikai értéket tartalmazó celláit 1, az összegtartomány HAMIS értéket tartalmazó celláit pedig 0 (nulla) értékkel veszi figyelembe.
A =SZUMHA() függvény tartomány- és kritériumargumentumától eltérően a =SZUMHATÖBB() függvény esetében minden kritériumtartománynak az összegtartománnyal megegyező méretűnek és alakúnak kell lennie .
Akkor vissza a megoldáshoz.
=SZUMHATÖBB($D$3:$D$14;$B$3:$B$14;B17;$C$3:$C$14;C17)
=SZUMHATÖBB($D$3:$D$14;$B$3:$B$14;"Termék 1";$C$3:$C$14;C17)
=SZUMHATÖBB($D$3:$D$14;$B$3:$B$14;"Termék 1">;$C$3:$C$14;"Észak")
10
Ezzel megkaptuk a Termék 1 "Észak" régióbeli eredményét az 1. negyedévben, azaz a D3 és D11 cella értékeinek összegét.
A további negyedéveket értelemszerűen a képlet módosításával kapjuk meg:
2. negyed: =SZUMHATÖBB($E$3:$E$14;$B$3:$B$14;B17;$C$3:$C$14;C17)
3. negyed: =SZUMHATÖBB($F$3:$F$14;$B$3:$B$14;B17;$C$3:$C$14;C17)
4. negyed: =SZUMHATÖBB($G$3:$G$14;$B$3:$B$14;B17;$C$3:$C$14;C17)
A másik megoldás, ha adatainkat az Excel táblázataként formázzuk.

Elnevezzük a B3:G14 tartományt (tbl_reg, s innen már mindent az Excel intéz.
A megoldás látványos. Sorban a negyedévek:
=SZUMHATÖBB(tbl_reg[1. negyed];tbl_reg[Termék];B17;tbl_reg[Régió];C17)
=SZUMHATÖBB(tbl_reg[2. negyed];tbl_reg[Termék];B17;tbl_reg[Régió];C17)
=SZUMHATÖBB(tbl_reg[3. negyed];tbl_reg[Termék];B17;tbl_reg[Régió];C17)
=SZUMHATÖBB(tbl_reg[4. negyed];tbl_reg[Termék];B17;tbl_reg[Régió];C17)

Kritériumok és eredmények
2019. január 21.

Verzió: Excel 2013, 2010, 2007

Olykor szükség lehet arra, hogy csoportokba sorolt, sorolható értékekkel bizonyos kritériumok alapján műveleteket végezzünk. Nagyon egyszerűen, most a =DARABTELI() függvény segítségével két példa az alkalmazhatóságra.

Vegyünk egy egyszerű példát. Van három vagy több termékcsoportunk (A, B, C), különböző értékekkel. Szeretnénk, ha tetszés szerinti párokban kapnánk adatokat, például az átlagokat.
Valahogy így:

Az ID most nem játszik.
Szeretnénk az A-B párosítás átlagát megkapni, azaz több kritériumunk van.
A táblában színesen jelzem a cellák értékeit: ezek a cellák: D3, D4, D6, D7, D9 és D10; összegük 3600, átlaguk pedig600. (Kissé munkás lenne minden egyes alkalommal kiszámolni az eredményt.)
A megoldás:
A B14 és B15 cella tartalmazza a kiválasztott párosítást, a C14 pedig az eredményt, azoknak a celláknak ez átlagát, melyek az A vagy a B csoportba tartoznak.

A képlet:
{=ÁTLAG(HA(DARABTELI(B14:B16;C3:C11);D3:D11;""))}
Látható, hogy tömbképletről van szó.
A =DARABTELI() tömböt ad eredményül:
ÁTLAG(HA({1;1;0;1;1;0;1;1;0};D3:D11;""))
Ezzel jelzi, hol van A, ill. B.
Így:

A =HA() függvénnyel szűrhetünk a =DARABTELI() eredménye alapján:
HA({1;1;0;1;1;0;1;1;0};D3:D11;""),
az eredmény pedig:
{300;700;""600;900;""400;700;""}.
Az =ÁTLAG() eredménye az értékek átlaga, az üres cellák figyelmen kívül hagyásával: 600.
Ha megváltoztatjuk a csoport összetételét, az A-B helyett a A-C kombinációra vagyunk kíváncsiak, az eredmény:

Azaz D3, D5, D6, D8 és D11, összesen 2100, osztva 5-tel = 420.
Mi a helyzet, ha tovább "bonyolítjuk" kritériumainkat? Vessünk be logikai operátorokat, ha azt akarjuk megtudni, mennyi az átlaga az A csoport 107-nél kisebb és a B csoport 100-nál nagyobb ID-jű tételeinek.

A képlet:
{=ÁTLAG(HA(DARABTELI(B14:B15;C3:C11)*(B3:B11<107)*(D3:D11>100);D3:D11;""))}
Levezetve:
ÁTLAG(HA(DARABTELI(B14:B15;C3:C11)*(B3:B11<107)*(D3:D11>100);D3:D11;""))
ÁTLAG(HA({1;1;0;1;1;0;1;1;0}*(B3:B11<107)*(D3:D11>100);D3:D11;""))
ÁTLAG(HA({1;1;0;1;1;0;1;1;0}*({IGAZ;IGAZ;IGAZ;IGAZ;IGAZ;IGAZ;HAMIS;HAMIS;HAMIS})*(D3:D11>100);D3:D11;""))
ÁTLAG(HA({1;1;0;1;1;0;1;1;0}*({IGAZ;IGAZ;IGAZ;IGAZ;IGAZ;IGAZ;HAMIS;HAMIS;HAMIS}*(D3:D11>100);D3:D11;""))
ÁTLAG(HA({1;1;0;1;1;0;0;0;0}*(D3:D11>100);D3:D11;""))
Itt is elvégzi a műveletet, majd:
ÁTLAG(HA({1;1;0;1;1;0;0;0;0};D3:D11;""))
Így:
ÁTLAG({300;700;"";600;900;"";"";"";""})
625

Rögzített DARABTELI megoldások 2.
2019. január 14.

Verzió: Excel 2013, 2010, 2007

Keresőkulcs alkalmazása
Folytatom a múlt heti anyagot (itt olvasható).

Táblázatunk négy termék(csoport> árát tartalmazza, a Rögzített DARABTELI oszlop a termékek ár szerinti sorrendjét mutatja.
Ha képletekkel szeretnénk adatokat nyerni a táblázatból (mondjuk a top 3 termék azonosítása), egy kereső fogalmat kell létrehoznunk.
Menete
Hozzunk létre az ár alapján csökkenő sorrendbe rendezett listát
Majd vonjuk össze a rögzített =DARABTELI oszlopot a Termékkel.
A Keresőkulcs> oszlop tartalmazza az eredményt. Használhattam volna az =ÖSSZEFŰZ() függvény is.

A képlet azE3 cellában:
=$D$3&" "&$B3
Ezzel minden termék(csoport) számára egyedi értéket hoztunk létre, az érték alapján sorrendbe állítva, egy önálló oszlopban.
Most már csak a keresőtáblát kell létrehoznunk.
A tábla első oszlopában a rangsor szerepel, majd a négy termék neve.

A képlet (C20):
=INDEX($C$3:$C$17;HOL.VAN($B20&" "&C$19;$E$3:$E$17;0))
A táblázatot kitöltve megkapjuk a termékek első három árát.
És már itt is vagyunk a jól ismert INDEX/HOL.VAN kombónál.
Hogyan működik?
Hagyjuk ki az első lépéseket (az 1 Termék A megtalálását, lássuk az eredményt:
INDEX($C$3:$C$17;HOL.VAN("1 Termék A";$E$3:$E$17;0))
Megkapjuk a cella címét:
INDEX($C$3:$C$17;1)
Az eredmény: 6300
A függvényekről
A képlet lényege az INDEX/HOL.VAN kombináció.
Az INDEX/HOL.VAN kombináció is függőleges keresésre szolgál, amit az FKERES függvény végez.
Az INDEX függvény (röviden)
Táblázatban vagy tartományban található érték hivatkozását vagy értékét adja vissza.
A függvénynek két alakja van:
a tömbös forma, amely adott cella vagy cellatömb értékét adja eredményül és
a hivatkozásos forma, amely adott cellák hivatkozását adja eredményül.
Szintaxis: =INDEX(tömb;sor_szám;oszlop_szám)
A tömb: $C$3:$C$17
A sor_szám argumentum pedig a HOL.VAN($B20&" "&C$19;$E$3:$E$17;0) függvény.
Leegyszerűsítve a keresőkulcsot:
HOL.VAN("1 Termék A";$E$3:$E$17;0)
A HOL.VAN függvény
A függvény a keresési_érték tömbben elfoglalt relatív pozícióját adja vissza.
Szintaxis: =HOL.VAN(keresési_érték;tábla;egyezés_típus)
A függvény alkalmazásához szükségünk van a keresési_értékre és a táblára.
(Az egyezés_típus paraméter "0" [azaz HAMIS] -- ezzel jelezve, hogy pontos értékre van szükségünk.)

Rögzített DARABTELI megoldások
2019. január 7.

Verzió: Excel 2013, 2010, 2007

A =DARABTELI() igen hasznos függvény. Ha a most következő megoldással alkalmazzuk, érdekes és meglepően hasznos megoldásokat kapunk. Egyéb kereső függvényekkel kombinálva jelentősen megkönnyíti munkánkat.

A következő egyszerű példával bemutatom a rögzített =DARABTELI() lényegét.

A táblázat a termék alapján rendezett, így könnyen látható, mit is jelent a rögzítés, és hogyan működik.
Lássuk e képletet ez első sorban (D3):
=DARABTELI($B$3:B3;B3),
és a 13. sorban (D13)
=DARABTELI($B$3:B13;B13).
Látható, hogy minden termék egyedi, növekvő sorrendbe rendezett sorszámot kapott, és ha új termék következik, a számozás előröl kezdődik.
A következő képen ugyanez a megoldás látható, csakhogy a táblázat az Ár alapján rendezett.

A képlet (D3):
=DARABTELI($B$3:B3;B3)
Nehezebb észrevenni a megoldást, de az eredmény ugyanaz: egyedi sorszámokat kaptunk, növekvő sorrendben, a táblázatban szereplő termékek ára alapján.
A példa továbbá azt is bemutatja, hogy mi a rögzített =DARABTELI() lényege: akkor is működik, ha újrarendezzük táblázatunkat!
Fontos megjegyezni, hogy miközben a rögzített =DARABTELI() ellátja elsődleges feladatát (növekvő sorrendbe rendezett sorszámozás), az előfordulások száma, melyek egy-egy adathoz tartoznak, a táblázat újrarendezése során megváltozhatnak.
Mikor használjuk?
Ha csak a fentieket látjuk, még nem sokat tudhatunk meg a rögzített =DARABTELI() valódi értékéről.
Ha leírtuk a képletet, négy lehetőségünk bvan maximalizálni a rögzített =DARABTELI() erejét:
bármelyik adat legtöbb (max) előfordulásának azonosítása,
bármelyik adat első előfordulásának azonosítása,
bármelyik adat legnagyobb agy legkisebb értékének azonosítása (rendezésre van szükség),
egy adat első, max vagy min értékének keresése.
Lássuk előbb a =DARABTELI() függvényt:
A függvény (nagyon egyszerű): egy tartományban összeszámolja azokat a cellákat, amelyek eleget tesznek a megadott kritériumnak.
Szintaxis: =DARABTELI(tartomány;kritériumok)
Tartomány: egy vagy több összeszámolandó cella; tartalmazhat számokat, neveket, tömböket vagy számokat tartalmazó hivatkozásokat.
A függvény figyelmen kívül hagyja a szövegértéket és az üres cellát.
Kritériumok: az összeszámolandó cellákat meghatározó, számként, kifejezésként, cellahivatkozásként vagy szövegként megadott feltétel.
A kritérium lehet:
szám, így pl. =DARABTELI(A1:A5;100),
szöveg idézőjelben, így pl. =DARABTELI(A1:A5;"The Beatles"),
operátor idézőjelben, így pl. =DARABTELI(A1:A5;">100").
A kritériumok argumentumban használhatók a helyettesítő karakterek.
A kritériumokban nincs különbségtétel kis- és nagybetű között; a "The Rolling Stones" és a "The rolling StonEs" karakterlánc például ugyanazokat a cellákat fogja megtalálni.
Az eredmény szám, megegyezik az adott tartomány találatainak számával.
Alapértelmezésben a DARABTELI() függvény csak a pontos találatokat jeleníti meg, ezeket lehet finomítani az operátorokkal és helyettesítő karakterekkel.
A példában a tartomány a B oszlopban lévő cella, ám nem adjuk meg a teljes cellatartományt, mint a hagyományos =DARABTELI() képletben (B3:B17), hanem csak az adott cellát jelöljük ki, mégpedig úgy, hogy a kezdő cellát abszolút hivatkozással rögzítjük és a kritérium ugyanez a cella:
=DARABTELI($B$3:B3;B3)
Ez a megoldás lényege. A képlet lefelé húzásával vagy kitöltőnégyzettel a képlet egyszerűen másolható (táblázat esetén automatikus).
Tehát a lényeg, hogy a tartományt rögzítjük a legelső cellában, mondhatnánk, képletünk horgonyt vetett.
Ezzel érjük el, hogy az Excel megszámolja, hányszor fordul elő a hivatkozott érték.
Az első ábra a termékeket számolja
D3: =DARABTELI($B$3:B3;B3), az eredmény 1,
D4: =DARABTELI($B$3:B4;B4), az eredmény 2,
D5: =DARABTELI($B$3:B5;B5), az eredmény 3,
D6: =DARABTELI($B$3:B6;B6), az eredmény 1, új érték.
(Folyt. köv.)

Tisztelgés Boole előtt
2018. december 30.

Verzió: Excel 2013, 2010, 2007

A már szokásos fejtörő az év utolsó napjára.

A versenyző egy kérdésnyire van a fődíjtól. Helyes válasz esetén 1 milliót nyer (euróban).
A játékvezető:
"Itt van előttünk hét egyforma boríték, melyeket 1-től 7-ig megszámoztunk. Az egyik tartalmazza a díjat érő csekket. A borítékokat tilos megérinteni vagy bármilyen más módon megvizsgálni. "
Az egyetlen segítség, amit a versenyző kapott, egy kártya, melyen öt állítás szerepel. Hogy ne legyen ilyen egyszerű, az állítások közül kettő hamis.
Íme az állítások:
1. A díj egy páratlan számmal jelölt borítékban van.
2. A díj a követező borítékok egyikében van: 2, 3, 6 vagy 7.
3. A díj olyan borítékban van, melynek száma nagyobb, mint 3.
4. Ha az 1. állítás hamis, a 3. igaz.
5. A 2. és a 4. állítás igaz.
Egy kis gondolkodás után a versenyző így válaszolt:
"Az ötös sorszámú borítékot választom."
Persze igaza volt, és elnyerte az egy milliót.
A kérdés, hogy jött rá?

Figyelem, innen a megoldás következik.
A versenyző először az utolsó két állítást vizsgálta meg.
Nézzük először az utolsó, az 5. állítást.
Ha ez ("A 2. és a 4. állítás igaz.") IGAZ, akkor a 2. és a 4. állítás is igaz: ("2. A díj a követező borítékok egyikében van: 2, 3, 6 vagy 7., ill. 4. Ha az 1. állítás hamis, a 3. igaz.")
Ha az 5. állítás IGAZ lenne, akkor a 2.-nak és a 4.-nek is IGAZ-nak kell lennie.
Így ábrázolható:

Mivel csak három állítás IGAZ, ez azt jelentené, hogy az 1. és 3. állításnak is HAMIS-nak kell lennie.

Ez ellentmond a 4. állításnak, mely szerint "ha az 1. állítás HAMIS, a 3. IGAZ."

Ez viszont ellentmondás, így az 5. állításnak HAMIS-nak kell lennie.
Azaz

Így aztán, mivel az 5. állítás HAMIS, a 2. és a 4. állítás legalább egyikének HAMIS-nak kell lennie.
Viszont tudja, egyáltalán nem szükségszerű, hogy mindkét állítás (a 2. és a 4.) HAMIS legyen.
Egyetlen hamisság is HAMIS-sá teszi az 5. állítást.
Versenyzőnk feltételezi, ha a 4. állítás HAMIS, ez azt jelentené, hogy az 1. és a 3. állítás HAMIS.

Ez viszont a szabályok értelmében kizárt, hiszen csak két állítás HAMIS.
Így a 4. állítás nem lehet HAMIS, viszont a 2. igen.

És ebben a pillanatban világos, hogy az 5. állítás HAMIS, a 4. IGAZ, és a 2. HAMIS.
Mivel három állításnak kell IGAZ-nak lennie, így az 1.-nek és a 3.-nak is IGAZ-nak kell lennie.

Ebből már tudta versenyzőnk, hogy
1. A díj egy páratlan számmal jelölt borítékban van. (1. állítás)
2. A díj olyan borítékban van, melynek száma nagyobb, mint 3. (3. állítás)
3. A díj NEM a 2., 3., 6. vagy 7. borítékban van. (2. állítás)
Így a logika diktált: a díjnak az 5. számú borítékban kell lennie.

Ennyi!
Főhajtás George Boole előtt.
(Forrás: a cikk itt olvasható angolul, a kép innen való.
Boldog új esztendőt!

Karácsonyi rejtvény
2018. december 23.

Verzió: Excel 2013, 2010, 2007

Békés karácsonyt kívánva egy rövid rejtvény.

Hogyan egyszerűsíthető a következő művelet?

Ha feltételezzük, hogy a sorozat megszakítás nélküli, elérkezünk az a x-x művelethez, ennek eredménye 0.
Ez vezet a triviális megoldáshoz: az egész látszólag bonyolult szorzat eredménye nulla.
Köszönet Rob Eastaway-nek.
(Forrás: itt.)

Nem mentett munkafüzet helyreállítása
2018. december 17.

Verzió: Excel 2013, 2010, 2007

Előfordulhat, hogy az automatikusan mentett munkafüzetet nem mentettük. Nagy baj lehet, de van egyszerű megoldás a helyreállításra.
Ahhoz, hogy ezt megtehessük, a következőkre kell figyelnünk. Nézzük meg beállításainkat. (A következő screenshotok az Excel 2013 verziójából készültek, de a szöveges rész az összes változatra érvényes.)
FÁJL > Beállítások > Mentés.

A bekeretezett beállítások jelölőnégyzetei legyenek bejelölve.
Most kezdődik az igazi munka:
1. FÁJL > Információ

2. Kattintsunk: Verziók

3. Válasszuk: Nem mentett munkafüzetek helyreállítása

4. Az (esetleges) listából válasszuk ki a megfelelő fájlt és kattintás: Megnyitás.

Megnyílik a munkafüzet, és nem veszítettük el a fájlt, munkafüzetet, munkát.

Adatok csoportosítása
2018. december 10.

Verzió: Excel 2013, 2010, 2007

Már volt róla szó, hogyan rejtünk el egy (vagy több) oszlopot vagy sort. Több módszer kínálkozik erre. Most egy ritkábban alkalmazott megoldás következik: Csoportosítás.

A sorok vagy oszlopok elrejtésének leggyakoribb megoldása a sor vagy oszlop kijelölése után a menüből vagy jobb egérgombbal történő paranccsal az Elrejtés.
Egy másik általánosan elterjedt gyakorlat a sormagasság vagy oszlopszélesség 0 (nulla) értékre állítása.
Van azonban néhány gond ezekkel a módszerekkel:
a) nehéz észrevenni őket. Hiszen nem figyelünk az oszlopok fejléceire, a sorok számozására;
b) a módszerek (pláne ha több sorról vagy oszlopról van szó) időigényesek lehetnek.
Most lássunk egy szokatlan módszert a probléma megoldására.
Ez a menüszalag ADATOK > Tagolás csoportjának Csoportosítás lehetősége.
Jó, a funkciónak nem ez az elsődleges célja, de éppen ez az érdekes: vizuálisan jelzi, hogy egy sor vagy oszlop el van-e rejtve.
Használata roppant egyszerű.
1. Jelöljük ki a sor(oka)t vagy oszlop(oka)t, melyeket el szeretnénk rejteni.
(Itt most egy roppant egyszerű példában egy adatbázis három oszlopáról lenne szó [C:E].)

Kattintsunk: Adatok > Tagolás > Csoportosítás.

A kiválasztott (itt) oszlopokat csoportosítottuk:

Innentől könnyű a dolgunk, a szimbólumokra (+/- jel) az (itt) 1, 2 számozásra kattintva elrejthetjük vagy felfedhetjük az oszlopokat.

Íme egy ritkán alkalmazott módszer a sorok/oszlopok elrejtésére/felfedésére.
Természetesen sorok esetében a módszer ugyanez.
(Persze a Tagolás funkció ennél többre képes.)

A legkevesebbszer előforduló érték keresése
2018. december 3.

Verzió: Excel 2013, 2010, 2007

Előfordulhat, hogy egy listában a legkevesebbszer előforduló értékre vagyunk kíváncsiak. A megoldás számok vagy szöveg keresésére alkalmas.

A példában a lista nevekből áll, a válasz, azaz a legkevesebbszer előforduló név a C3 cellában látható.

A képlet:
{=INDEX(B3:B18;HOL.VAN(MIN(DARABTELI(B3:B18;B3:B18));DARABTELI(B3:B18;B3:B18);0))}
Látjuk, tömbképletről van szó, így a bevitel: Ctrl + Shift + Enter!
A képletben szereplő függvények: =INDEX(), =HOL.VAN(), =DARABTELI() és természetesen a =MIN(), hiszen a legkevesebb előfordulásról van szó.
Kezdjük a legkézenfekvőbb függvénnyel: a =DARABTELI() megszámolja, hogy az egyes nevek hányszor fordulnak elő.
Az eredmény:
INDEX($B$3:$B$18;HOL.VAN(MIN({2;2;3;3;3;2;2;3;3;3;2;2;3;3;3;1});
DARABTELI(B3:B18;B3:B18);0))

Kibontva ez azt jelenti, hogy a tartomány első cellája (B3: Albert) kétszer, a B4 Béla is kétszer, a B5 Pál háromszor fordul elő, és így tovább.
A =MIN() függvény eredménye a legkisebb érték ebben a tömbben: ez itt 1.
Következik a =HOL.VAN()
INDEX($B$3:$B$18;HOL.VAN(1;DARABTELI(B3:B18;B3:B18);0))
A függvény feladata, hogy megtalálja az 1 előfordulásának első pozícióját. (Itt csak egyszer szerepel, erre még visszatérek.)
INDEX($B$3:$B$18;HOL.VAN1;{2;2;3;3;3;2;2;3;3;3;2;2;3;3;3;1};0))
Az eredmény: 16, mert az 1 a B3:B18 tartomány a 16. pozícióban (B18) fordul elő.
INDEX($B$3:$B$18;16)
Az =INDEX() eredménye a B18 cella értéke, Pali.
(Visszatérve: a megoldás csak abban az esetben működik, ha a legkevesebb előfordulás csak egyszer adódik a listában, ill. több esetén az első előfordulást jeleníti meg.)
Természetesen, ha a =MIN() függvény helyett a =MAX() függvényt használjuk a képletben, a legtöbbször előforduló érték az eredmény.

Tartomány védelme
2018. november 26.

Verzió: Excel 2013, 2010, 2007

Előfordulhat, hogy csak néhány cellát (tartományt) kell zárolnunk (avatatlan kezek közbenyúlása vagy egyéb okok miatt).
A Lapvédelem megvéd a véletlen vagy szándékos változtatásoktól.
Alapbeállításban az Excel Lapvédelme minden cellát zárol, így egyikük sem szerkeszthető.
Ahhoz hogy engedélyezzük néhány cella szerkesztését (miközben a többi zárolt marad), az összes cella zárolását fel kell oldanunk. (Amikor szerkesztésről van szó, mindenre gondolunk: módosítás, formázás, mozgatás, törlés stb.)
Egyes cellákat vagy tartományokat a Lapvédelem aktiválása előtt kell zárolnunk, egyben bizonyos esetekben engedélyezhetjük speciális felhasználóknak a hozzáférést.
Lássuk:
Egyes cellák és tartományok zárolása védett munkalapon.
Lépések:
1. Ha védett a munkalap:
a) Véleményezés > Változások csoport > Lapvédelem.

Ha a munkalap védett, kattintsunk a védelem feloldásához.
b) Ha jelszóval védett, a jelszó beírásával oldjuk fel a védelmet.
2. Jelöljük ki a teljes munkalapot (Ctrl + A vagy a bal felső sarokban lévő háromszögre kattintással.
3. Kezdőlap > Betűtípus: a párbeszédablakban a Védelem fülön kattintással töröljük a Zárolt jelölőnégyzet jelölését.

Ezzel a munkalap védelme során az összes cellát "felszabadítottuk". Most választhatjuk ki, melyeket akarjuk zárolni.

4. Jelöljük ki a zárolandó cellákat.
5. Ha megtörtént, ismételjük meg a 3. lépést, csak most jelöljük be a Zárolt jelölőnégyzetet.
6. Véleményezés > Változások csoport > Lapvédelem
7. Kattintsunk: Lapvédelem.
8. A Minden felhasználónak engedélyezve listában jelöljük ki azokat az elemeket, melyeket a felhasználó szerkeszthet.
Jelölőnégyzet, amelyből töröljük a jelölést Megakadályozandó felhasználói művelet
Zárolt cellák kijelölése Az egérmutató elhelyezése azokra a cellákra, amelyeknél be van jelölve a Cellák formázása párbeszédpanel Védelem lapján a Zárolt jelölőnégyzetet. Alapértelmezés szerint a zárolt cellák kijelölése engedélyezve van a felhasználók számára.
Nem zárolt cellák kijelölése Az egérmutató elhelyezése azokra a cellákra, amelyeknél nincs bejelölve a Cellák formázása párbeszédpanel Védelem lapján a Zárolt jelölőnégyzet. Alapértelmezés szerint a nem zárolt cellák kijelölése engedélyezve van a felhasználók számára, és a felhasználók mozoghatnak a TAB billentyűvel a védett munkalap nem zárolt cellái között.
Cellák formázása A Cellák formázása és a Feltételes formázás párbeszédpanelen található beállítások módosítása. Ha alkalmazott feltételes formázást a munkalap védetté tételét megelőzően, az ennek megfelelő változások továbbra is létrejönnek, ha egy felhasználó egy eltérő feltételt kielégítő értéket ad meg.
Oszlopok formázása Az oszlopok formázására vonatkozó parancsok használata, beleértve az oszlopszélesség módosítását és az oszlopok elrejtését is (Kezdőlap lap, Cellák csoport, Formátum gomb).
Sorok formázása A sorok formázására vonatkozó parancsok használata, beleértve a sormagasság módosítását és a sorok elrejtését is (Kezdőlap lap, Cellák csoport, Formátum gomb).
Oszlopok beszúrása Oszlopok beszúrása.
Sorok beszúrása Sorok beszúrása.
Hivatkozások beszúrása Új hivatkozások beszúrása; a nem zárolt cellákba történő beszúrás is.
Oszlopok törlése Oszlopok törlése:
Ha az Oszlopok törlése védelem alatt áll, ugyanakkor az Oszlopok beszúrása nem, a felhasználók beszúrhatnak oszlopokat, amelyeket nem tudnak törölni.
Sorok törlése Sorok törlése:
Ha a Sorok törlése védelem alatt áll, ugyanakkor a Sorok beszúrása nem, a felhasználók beszúrhatnak sorokat, amelyeket nem tudnak törölni.
Rendezés Az adatok rendezését szolgáló parancsok (Adatok lap, Rendezés és szűrés csoport).
A felhasználók ettől a beállítástól függetlenül nem rendezhetnek zárolt cellákat tartalmazó tartományokat a védett munkalapokon.
AutoSzűrő használata A legördülő lista használata a tartományszűrés módosításához, ha az AutoSzűrő aktív.
Védett munkalapon a felhasználók ettől a beállítástól függetlenül nem alkalmazhatnak, illetve nem távolíthatnak el AutoSzűrőt.
Kimutatások használata Kimutatások formázása, elrendezésük módosítása, kimutatások frissítése vagy egyéb módosítása, illetve új kimutatások létrehozása.
Objektumok szerkesztése A következő műveletek:
Módosítások elvégzése azokon a grafikus objektumokon (beleértve a térképeket, beágyazott diagramokat, alakzatokat, szövegdobozokat és vezérlőelemeket), amelyeknek a zárolását nem oldotta fel a munkalap védetté tétele előtt. Ha például van egy makrót futtató gomb egy munkalapon, a felhasználók rákattinthatnak a gombra, és futtathatják a makrót, nem törölhetik azonban a gombot.
Beágyazott diagram módosítása, például formázása. A diagram továbbra is frissül a forrásadatok módosítása esetén.
Megjegyzések írása vagy módosítása.
Esetek szerkesztése Az elrejtett esetek megtekintése, azoknak az eseteknek a módosítása, amelyekre ezt letiltotta, és ezen esetek törlése. A felhasználók módosíthatják a változó cellák értékét, ha a cellák nincsenek zárolva, és megadhatnak új eseteket.
Diagramelemek
Bejelölendő jelölőnégyzet Felhasználók számára letiltott művelet
Tartalom A diagram részét képező elemek módosítása – ilyenek például az adatsorok, a tengelyek és a jelmagyarázatok. A diagram továbbra is megjeleníti a forrásadatok módosításait.
Objektumok A grafikus objektumok megváltoztatása (például alakzatok, szövegdobozok és vezérlőelemek), amennyiben a diagramlap védelme előtt a zárolás alól nem oldotta fel az objektumokat.
9. A Jelszó a lapvédelem feloldásához írjunk be egy jelszót, majd OK, írjuk be újra a jelszót. Ez a lépés opcionális, ám ha kihagyjuk, bárki feloldhatja védelmet és megváltoztathatja az elemeket.

Abszolút értékek kiszámítása
2018. november 19.

Verzió: Excel 2013, 2010, 2007

Előfordulhat, hogy (főleg nagyobb adatmennyiség esetén) szükség lehet a számok abszolút értékének összegzésére. Mivel az Excelben nincs =SZUMABS() függvény, valamilyen egyszerű megoldást kell találni.
De legelőször, idézzük föl az általános iskolát. Mi is az abszolút érték?
A szám abszolút értéke a szám nullától való távolsága a számegyenesen.
Jele: két függőleges vonal, közte a szám -+20-
Ábrázolva:

Nézzünk egy példát!

Látható, hogy az B2:B8 tartomány összege -60, ám ha az abszolút értékeket, azaz a számokat mínusz előjel nélkül adnánk össze, az eredmény 180 lenne.
Részletesen:
= 10 + -10 + 20 + -20 + 30 + -40 + -50 = -60
= 10 + 10 + 20 + 20 + 30 + 40 + 50 = 180
Megoldások
1. Segédoszlop beszúrása
Az egyik legegyszerűbb megoldás. Írjuk a C2 cellába: =ABS(B2), majd húzzuk le C8-ig.
(Ha táblázatként formáztuk, ABS értékek fejléccel, elegendő a B2 cellára kattintani, az oszlop "kitöltődik": =ABS([@Értékek])
Az =ABS() függvény eredménye a szám abszolút értéke.
Ha a kurzor a táblázatban van, Táblázateszközök > Tervezés, majd jelöljük be: Összegsor.

Ezt kapjuk:

Volna egy másik lehetőség is:
Ez a =RÉSZÖSSZEG() függvény.
A =RÉSZÖSSZEG(109;[ABS értékek]) eredménye ugyanez lenne (a számok összege), de nem venné figyelembe a rejtett sorokat, ha netán elrejtettünk volna néhányat, vagy pedig szűrnénk.
Végeredményben a segédoszlop, ha van elég hely, jó megoldás lehet.
2. A =SZORZATÖSSZEG() függvénnyel vagy =SZUM() tömbképletként

A megoldások:
D4:
=SZORZATÖSSZEG(ABS(Táblázat1[Értékek]))
D6:
{=SZUM(ABS(Táblázat1[Értékek]))}
Tömbképlet!
A megoldás tömbképlet, annak minden előnyével éshátrányával. Kisebb adatmennyiség esetén jó lehet.
3. A =SZUMHA() függvénnyel
Cifrább megoldások:

D4:
=SZUMHA(Táblázat1[Értékek];">0")-SZUMHA(Táblázat[Értékek];"<0")
Vagy táblázat nélkül a tartományokkal:
=SZUMHA(B2:B8;">0")-SZUMHA(B2:B8;"<0")
A képlet lényege:
Először összeadja a pozitív értékeket, majd kivonja belőlük a megatív értékeket.
Így
=SZUMHA(Táblázat245[Értékek];">0")-SZUMHA(Táblázat245[Értékek];"<0")
=60 - -120
180
D6:
=(SZUM(SZUMHA(Táblázat1[Értékek];{">0";"<0"})*{1;-1}))
Vagy táblázat nélkül a tartományokkal:
=(SZUM(SZUMHA(B2:B8;{">0";"<0"})*{1;-1}))
Nézzük a levezetést:
A =(SZUM(SZUMHA(B2:B8;{">0";"<0"})*{1;-1}))
eredménye
=SZUM({60;-120}*{1;-1}))
Elvégezve a műveletet:
=SZUM({60;120})
=180
Választék van.

Érték kiszámítása két keresési táblából
2018. november 12.

Verzió: Excel 2013, 2010, 2007

Értékesítés utáni jutalékot kell kiszámítani két keresési táblázatból. A megoldást a =HA() függvény segíti.

A példában a munkatársak jutalékát két tényező alapján számítjuk:
1. Az elért eredmény alapján megállapított sávos jutalékkulcs, amit
2. a munkában eltöltött évek száma is alakít.
A kulcsokat a jut_1 és jut_2 táblázat tartalmazza, a G1:H8, ill. J1:K8 cellatartományban a 3 évnél rövidebb és a 3 évnél hosszabb időtartamú szerződések alapján különböztetjük meg az összegeket.

A D1 cellában a képlet:
=FKERES(C2;HA(B2<3;jut_1;jut_2);2)
A megoldás menete:
=FKERES(C2;HA(B2<3;jut_1;jut_2);2)
A keresési_érték:
=FKERES(610000;HA(B2<3;jut_1;jut_2);2)
Az FKERES() második argumentuma a =HA() függvény, mely a B oszlopban álló értéket (az eltöltött évek száma) alkalmazza, hogy megállapíthassa, melyik táblát használja.
=FKERES(610000;HA(2<3;jut_1;jut_2);2)
Megtalálta az értéket, az eredmény logikai érték:
=FKERES(610000;HA(IGAZ;jut_1;jut_2);2)
Az IGAZ érték az 1. táblázat:
=FKERES(610000;HA($G$3:$H$8;jut_2);2)
Az eredmény 1. táblázat (jut_1) tartománya, benne a 2. oszlop. Innen már egyszerű:
=FKERES(610000;$G$3:$H$8;2)
4,00%
A jutalék összegének kiszámítása (E2) egyszerű szorzás:
C2*D2.

Kétdimenziós keresés két táblázatban
2018. november 5.

Verzió: Excel 2013, 2010, 2007

Előfordulhat, hogy a keresett adatok valamilyen okból két táblázatban szerepelnek. Ennek megfelelően két táblázatban kell keresnünk egyetlen képlettel.

Képzeljünk el két összehasonlításra szolgáló táblázatot, melyekben a példa kedvéért a sorokat számokkal, az oszlopokat az ábécé betűivel jelöljük. Ám két táblázatunk van
Az ábrán az 1. táblázatot a páratlan, a másodikat a páros fejlécek jelzik.
Keressük a koordináták metszéspontjában lévő értéket.

A képlet a D20 cellában:
=HAHIBA(INDEX(C4:G8;HOL.VAN(C19;B4:B8;0);HOL.VAN(C18;C3:G3;0));INDEX(C12:G16;HOL.VAN(C19;B12:B16;0);HOL.VAN(C18;C11:G11;0)))

A megoldás menete:
1. Az Y érték pozíciójának keresése az 1. táblázatban:
A HOL.VAN() először a 8 (a C19 cella értéke) értéket keresi a függőleges B4:B8 tartományban:
HOL.VAN(C19;B4:B8;0),
eredménye:
HOL.VAN(8;;0),
eredménye:
#HIÁNYZIK, nincs találat.
2. Az X érték pozíciójának keresése az 1. táblázatban:
A második =HOL.VAN() függvény az F értéket keresi a C3:G3 vízszintes tartományban:
HOL.VAN(C18;C3:G3;0)
Eredménye:
HOL.VAN("F";{"A;"C";"E";"G";"I"};0)
eredménye:
#HIÁNYZIK, nincs találat.
3. Az értékek kinyerése az 1. táblázat koordinátái alapján:
INDEX(C4:G8;HOL.VAN(C19;B4:B8;0);HOL.VAN(C18;C3:G3;0))
Eredménye:
INDEX(C4:G8;#HIÁNYZIK;#HIÁNYZIK);
eredménye:
#HIÁNYZIK, az érték nincs az 1. táblázatban.
4. HA hiba van, folytassa a 2. táblázatban, megismételve a lépéseket:
=HAHIBA(INDEX(C4:G8;HOL.VAN(C19;B4:B8;0);HOL.VAN(C18;C3:G3;0));INDEX(C12:G16;HOL.VAN(C19;B12:B16;0);HOL.VAN(C18;C11:G11;0)))
eredménye:
=HAHIBA(#HIÁNYZIK;INDEX(C12:G16;HOL.VAN(C19;B12:B16;0);HOL.VAN(C18;C11:G11;0)))
Ebből:
=HAHIBA(#HIÁNYZIK;INDEX(C12:G16;4;3))
Ebből:
=HAHIBA(#HIÁNYZIK;669)
Ezt kapjuk a D20 cellában eredményként.
Most nézzük meg a találat helyét megmutató képletet a D21 cellában. Azt ellenőrzi, hogy a keresett érték hol (melyik táblázatban) található.

=VÁLASZT(HA(HIBÁS(HOL.VAN(C18;C3:G3;0));2;1);"1. tábl."; "2. tábl.")
A felhasznált függvények:
=VÁLASZT(), =HA(), =HIBÁS(), =HOL.VAN()
Mindegyikkel foglalkoztam már, röviden a lényeg:
A =HOL.VAN() először a C3:G3 tartományban keresi az "F" értéket.
Mivel nem találja, a következőt kapjuk:
VÁLASZT(HA(HIBÁS(#HIÁNYZIK);2;1);"1. tábl."; "2. tábl.")
Az =VÁLASZT() függvény az érték argumentumok közül az index sorszámút adja vissza.
A =VÁLASZT() argumentumai:
=VÁLASZT(index;érték1;érték2;…)
Az index a kiválasztott argumentumot határozza meg.
Esetünkben ez a képlet
=VÁLASZT(HA(HIBÁS(HOL.VAN(C18;C3:G3;0));2;1) része.
Az érték1;érték2;… értéke 1 és 254 közötti egész szám, képlet vagy egy 1 és 254 közötti számot tartalmazó cellára utaló hivatkozás lehet.
Az argumentumok lehetnek számok, cellahivatkozások, nevek, képletek, függvények vagy szövegek.
Esetünkben ez a két táblázat szöveges értéke.
Itt kell megemlíteni a ritkábban alkalmazott =HIBÁS() függvényt.
A =HIBÁS() típusellenőrző függvény. Eredménye IGAZ, ha az érték valamelyik hibaértékre hivatkozik (kbd>#HIÁNYZIK, #ÉRTÉK!, #HIV!, #ZÉRÓOSZTÓ!, #SZÁM!, #NÉV? #NULLA!).
Szintaxis: =HIBÁS(érték)
Érték: a vizsgálni kívánt érték. Lehet üres cella, hibaérték, logikai érték, szöveg, szám, illetve ezek bármelyikére mutató hivatkozás vagy név.
Az ellenőrző függvényekkel információt kaphatunk egy értékről, mielőtt számítást vagy más műveletet végeznénk vele.
Így:
VÁLASZT(HA(IGAZ;2;1);"1. tábl."; "2. tábl.")
Ebből:
VÁLASZT(HA(2;"1. tábl."; "2. tábl.")
Az eredmény a D21 cellában:
2. tábl.
Abban az esetben, ha az X tengely értéke például "A", a megoldás főbb lépései:
=VÁLASZT(HA(HIBÁS(HOL.VAN(A;C3:G3;0));2;1);"1. tábl."; "2. tábl.")
Ebből:
=VÁLASZT(HA(HIBÁS(1);2;1);"1. tábl."; "2. tábl.")
Majd:
=VÁLASZT(HA(HAMIS;2;1);"1. tábl."; "2. tábl.")
Végül:
=VÁLASZT(1;"1. tábl."; "2. tábl.")
És az eredmény:
1. tábl.

Rejtett cellák megtekintése
2018. október 29.

Verzió: Excel 2013, 2010, 2007

Ha azt hittük, hogy az elrejtett cellákat senki nem láthatja, tévedtünk.

A roppant egyszerű példában elrejtettük a D oszlopot. Íme az eredeti:

Rejtsük el a D oszlopot!

Ugyanakkor munka közben olykor szükségünk lehet rá, hogy megnézzük, mi áll pl. a D3 cellában.
Gyorsan, egyszerűen.
A megoldás:
1. lépés
A Ctrl + G billentyűkombinációval vagy az F5 lenyomásával nyissuk meg az Ugrás párbeszédablakot.
2. lépés
Írjuk be: D3, majd OK.

A kurzor az elrejtett D3 cellára ugrik, tartalmát a szerkesztőlécen láthatjuk.

A LeNyíl segítségével az egész oszlopot végigpásztázhatjuk.
A megoldás a Lapvédelem aktiválása után is működik.
Egy újabb használható billentyűkombináció!

Értékek újrarendezése
2018. október 22.

Verzió: Excel 2013, 2010, 2007

Előfordulhat, hogy adatain egy oszlopba rendezettek (letöltés, átvétel stb. okok miatt). Így aztán kellemetlen meglepetések érhetnek bennünket, ha valós értékelésekre kerül sor.

Nézzük a következő ábrát!

Látható, hogy az adatok egyetlen (B) oszlopba rendezettek.(Gyakori, ha HTML fájlokkal van dolgunk.)
És ezt szeretnénk kapni:

Hogyan kapjuk meg ezt az elrendezést?
A felhasznált függvény az =INDEX(). Segítségével könnyedén átrendezhetjük az értékeket, esetünkben négyes csoportokra: cégnév, termék, ár, mennyiség.
A képlet a D2 cellában:
=INDEX($B$2:$B$17;OSZLOPOK($A$1:A1)+SOROK($A$1:A1)*4-4).
A képlet az =INDEX() mellett még két másik függvény használ: =OSZLOPOK() és =OSZLOPOK()
Magyarázat helyett nézzük ezt:

Így a D2 cellában a képlet a következő:
=OSZLOPOK($A$1:A1).
Az eredmény 1.
Látható, hogy az A oszlopban relatív sor számok vannak, ezek "mutatják" meg az =INDEX()-nek, melyik értékre van szüksége, hogy megkapjunk egy értéket a B2:B17 tartományból.
Azt is láthatjuk, hogy a B oszlop értékei ismétlődnek, minden negyedik sor cégnév.
Ezt az információt használjuk fel a képlet megalkotásához: meghatározott szekvenciánként számokat kell kapnunk, attól függően, hol van a lapon.
Csak a bemutató kedvéért:
Felhasználva az információt.

A képlet a D2 cellában:
=SOROK($A$1:A1)*4-4
Az eredmény: 1*4-4 = 0.
A D3 cellában:
2*4-4 =4.
És így tovább.
Az =INDEX() függvényről.
Táblázatban vagy tartományban található érték hivatkozását vagy értékét adja vissza.
A függvénynek két alakja van:
a hivatkozásos forma, amely adott cellák hivatkozását adja eredményül, és
a tömbös forma, amely adott cella vagy cellatömb értékét adja eredményül.
A függvénynek három argumentuma van:
=INDEX(hivatkozás;sor_szám;[oszlop_szám])
A hivatkozás a B2:B17 tartományra vonatkozik.
Ahhoz hogy értéket kapjunk ebből a cellatartományból, tudnunk kell, hol van a cella. Ehhez használja a függvény a sor- és oszlopszámot, hogy meghatározza az érték helyét.
Mivel a tartomány (B2:B17) csak egyetlen oszlopból áll, elegendő csak a sor számát ismernünk.
Visszatérve a megoldáshoz:
A =INDEX($B$2:$B$17;OSZLOPOK($A$1:A1)+SOROK($A$1:A1)*4-4) képletből:
Ha a D2 cellában az =OSZLOPOK($A$1:A1) eredménye 1, a =SOROK($A$1:A1)*4-4-é 0 (zéró), akkor az eredmény 1 + 0 =1. Az INDEX az első értéket adja eredményül, ez a Cég.
Az E2 cellában az eredmény 2 + 0 = 2, INDEX eredménye 2, azaz a Termék.
A D3 cellában az =OSZLOPOK($A$1:A1) eredménye 1, a =SOROK($A$1:A1)*4-4-é 4, 1 + 4 = 5, ez az 5. érték: X Bt.
És megvan a helyes táblázat.

FKERES, és nem tudjuk, melyik oszlopban keressünk
2018. október 15.

Verzió: Excel 2013, 2010, 2007

Adódhat olyan helyzet, Ha keressünk, a legtöbb esetben tudjuk, melyik oszlopból akarjuk megkapni az adatot. Azonban adódhatnak helyzetek, melyekben az adatok helye változó.
(Az információt különböző helyekről szerezzük be, így előfordulhat, hogy a városok nem mindig ugyanabban az oszlopban vannak.)

Nézzük a leegyszerűsített példát

Szeretnénk Pécs májusi eredményét megkapni. (Kiemeltem.)
Elég egy egyszerű =FKERES(), ha feltételezzük, hogy május mindig a 7. sorban és Pécs mindig a C oszlopban van.
=FKERES("május";A:E;3;HAMIS)
Mi történik? Keresi a május hónapot az A oszlopban, majd "átmegy" a 3. oszlopba (ez a C oszlop), és ebből kapjuk meg az eredményt.
Mi a helyzet akkor, ha beszúrunk egy oszlopot, és Pécs átkerül a D oszlopba?
Már több alkalommal foglalkoztunk a dinamikus kereséssel, most is ez történik, tegyük interaktívvá keresésünket, keressük meg a várost.
Erre jó a =HOL.VAN() függvény.
Így példánkban:
=HOL.VAN("pécs";A2:E2)
Mivel Pécs a 3. oszlopban van, az eredmény 3.
Ha átkerülne az E oszlopba, az eredmény 5 lenne.
Így az interaktív megoldás:

=FKERES("május";A:E;HOL.VAN("pécs";A2:E2);HAMIS)
Az aláhúzott rész helyettesíti az oszlopszámot.
Ilyen egyszerű.

Cellák "túlcsordulásának" megakadályozása
2018. október 8.

Verzió: Excel 2013, 2010, 2007

Ha üres egy cella, a bal oldali cella tartalma átfolyik az üres cellába. És ez bizony zavarokhoz vezethet az adatok értelmezése során. (Nem szólok most a már sokszor kárhoztatott egyesített cellákról.) Hogyan tudjuk ezt a túlcsordulást elkerülni? Nagyon egyszerűen.

Vegyünk egy példát.

Eléggé kusza a kép.
A megoldás:
1. Jelöljük ki a tartományt.
2. Ctrl + G vagy F5 vagy Kezdőlap > Szerkesztés csoport > Keresés és kijelölés > Ugrás
3. Kattintsunk az Irányított gombra.
4. Válasszuk az Üres cellák opciót.

5. A kiválasztott tartomány összes üres celláját kijelöltük.

6. Nyomjuk le a Szóköz (Spacebar) billentyűt. A tartomány első cellájába kerültünk.

7. NE NYOMJUNK Enter-t! Hagyjuk békén a kijelölést.
8. Ctrl + Enter.
9. Ennyi. A túlcsorduló elemeket "megcsonkítottuk".

És látjuk, a szóköz karakternek számít.
Átlátható, értelmezhető, szerkeszthető táblázatot kaptunk.

Több érték keresése több oszlopban
2018. október 1.

Verzió: Excel 2013, 2010, 2007

Ha több érték között kell keresnünk, melyek több oszlopban vannak, és egyszerre több eredményt kell kapnunk. Elég bonyolult, ám érthető képletet kell alkalmaznunk.

Nézzük a példát: munkatársak eredményeit látjuk, időrendben, felsorolva az értékesítet termékeket/termékcsoportokat. Egy rövid kivonat:

A táblázatban az A oszlopban a dátumokat, a B-ben a munkatársak nevét, a C-ben az értékesített terméket látjuk. Arra vagyunk kíváncsiak, hogy egy adott időszak alatt (tól-ig) egy kiválasztott munkatárs mely termékeket értékesített. A választásokat természetesen megkönnyíti, ha a B13-B15 cellákba Érvényesítéssel visszük be az adatokat.
A képlet a B18-B19 cellában:
=INDEX($C$2:$C$11;KICSI(HA(($B$15=$B$2:$B$11)*($A$2:$A$11<=$B$14)
*($A$2:$A$11>=$B$13);HOL.VAN(SOR($A$2:$A$11);SOR($A$2:$A$11));"");SOR(A1)))
.
Látjuk, tömbképlet.
A képletben 5 képletet használunk: =INDEX(), =HOL.VAN(), =SOR(), =HA(), KICSI()
Nézzük a megoldás menetét:
Egyből feltűnik, hogy a keresést nem az =FKERES() függvénnyel, hanem a jóval hatékonyabb, ám kissé bonyolultabb INDEX/HOL.VAN kombóval oldjuk meg.
Nézzük a megoldás menetét 5 lépésben:
1. A feltétel:
A képletrész kibontva:
HA($B$15=$B$2:$B$11)
"Munkatárs 1"={"Munkatárs 1";"Munkatárs 2";"Munkatárs 3";"Munkatárs 1";"Munkatárs 2";"Munkatárs 3";"Munkatárs 1";"Munkatárs 2";"Munkatárs 3";"Munkatárs 1"}
Ebből létrejönnek az IGAZ és HAMIS logikai értékek, melyek majd a szorzáskor játszanak szerepet.
2. A "-tól-ig" dátumok összehasonlítása
($A$2:$A$11<=$B$14)*($A$2:$A$11>=$B$13)
A dátumok mint sorszámok szerepelnek az Excelben, ezért könnyen visszaalakíthatók logikai értékekké, így a B14 cellában szereplő 2018.01.20. értéke 43122, ez könnyen összevethető a többi számmal.
Ugyanez történik a B13 cellával is.
3. Ha egyezést talál, az eredmény a sor száma:
(HA(($B$15=$B$2:$B$11)*($A$2:$A$11<=$B$14)*($A$2:$A$11>=$B$13);
HOL.VAN(SOR($A$2:$A$11);SOR($A$2:$A$11));"");SOR(A1)))

Ezt kapjuk:
INDEX($C$2:$C$11;KICSI(HA({1;0;0;1;0;0;0;0;0;0};HOL.VAN(SOR($A$2:$A$11);
SOR($A$2:$A$11));"");SOR(A1)))
.
INDEX($C$2:$C$11;KICSI(HA({1;0;0;1;0;0;0;0;0;0};
HOL.VAN({2;3;4;5;6 ;7;8;9;10;11};SOR($A$2:$A$11));"");SOR(A1)))
.
Majd:
4. Az eredmény a k-adik legkisebb érték:
INDEX($C$2:$C$11;KICSI(HA({1;0;0;1;0;0;0;0;0;0};HOL.VAN({2;3;4;5;6 ;7;8;9;10;11};
{2;3;4;5;6 ;7;8;9;10;11});"");SOR(A1)))
.
Elvégezve a műveleteket, néhány sort kihagyva, ezt kapjuk:
INDEX($C$2:$C$11;KICSI({1;"";"";4;"";"";"";"";"";"";""};SOR(A1)).
Ebből:
INDEX($C$2:$C$11;KICSI({1;"";"";4;"";"";"";"";"";"";""};1)).
5. Adott sor és oszlop metszéspontjában lévő cella értéke:
INDEX($C$2:$C$11;1).
Termék A
A képletet addig húzzuk, míg eredményt kapunk.

ELTOLÁS helyett INDEX
2018. szeptember 23.

Verzió: Excel 2013, 2010, 2007

Az =ELTOLÁS() függvény már többször szerepelt. Igen hasznos, rugalmas függvény. Van azonban egy nagy hátránya, volatilis, ha bármilyen változás történik a munkalapon, az összes ELTOLÁS függvénnyel számolt cella "újraszámolódik". Még azok is, melyekben nem történik változás. És ez bizony nem jó.
Érvényesítéssel kiválaszthatjuk a negyedévet, így látjuk a kumulált eredmény átlagát.

A képlet (az F2 cellában):
Most csak az =ELTOLÁS-t nézzük.
=ÁTLAG(ELTOLÁS(B2;0;0;1;$H$1))
A függvény egy megadott magasságú és szélességű hivatkozást ad eredményül, egy másik hivatkozástól számított megadott számú sornyi és oszlopnyi távolságra.
Az eredményként visszaadott hivatkozás hivatkozhat egyetlen cellára vagy egy cellatartományra.
A függvénynek akár öt argumentuma is lehet.
=ELTOLÁS(hivatkozás;sorok;oszlopok;[magasság];[szélesség])
Hivatkozás: az a hivatkozás, amelyhez képest az eredmény hivatkozás helyzetét az argumentumok meghatározzák. (Itt: B2.)
A hivatkozásnak egyetlen cellára vagy egy cellatartományra kell vonatkoznia, ellenkező esetben az ELTOLÁS az #ÉRTÉK! hibaértéket adja eredményül.
Sorok: az eredmény bal felső cellája és a hivatkozás közötti függőleges távolság a sorok számában kifejezve.
Ha például az argumentum értéke 3, akkor az eredményül kapott hivatkozásban a bal felső cella 3 sorral lesz a hivatkozás alatt.
A sorok értéke lehet pozitív (a kezdőhivatkozás alatt) vagy negatív (a kezdőhivatkozás felett).
Oszlopok: az eredmény bal felső cellája és a hivatkozás közötti vízszintes távolság az oszlopok számában kifejezve.
Ha például az argumentum értéke 3, akkor az eredményül kapott hivatkozásban a bal felső cella a bal felső cella 3 oszloppal jobbra lesz a hivatkozás mellett.
Az oszlopok értéke lehet pozitív (a kezdőhivatkozástól jobbra) vagy negatív (a kezdőhivatkozástól balra).
Ha a sorok és az oszlopok által megadott mértékben eltolt hivatkozás túllóg a munkalap szélén, akkor az =ELTOLÁS() a #HIV! hibaértéket adja eredményül.
Magasság: az eredmény hivatkozás magassága a sorok számában mérve. A magasság csak pozitív szám lehet.
Szélesség: az eredmény hivatkozás szélessége az oszlopok számában mérve. A szélesség csak pozitív szám lehet.
Ha a magasság vagy a szélesség argumentumot nem adjuk meg, akkor a program a hivatkozás magasságát és szélességét használja.
Megjegyzés:
Az =ELTOLÁS() valójában nem tol el egyetlen cellát sem és nem módosítja a kijelölést sem, hanem csak egy hivatkozást ad vissza. Az =ELTOLÁS() függvényt minden olyan függvénnyel használhatjuk, amely hivatkozást vár argumentumként.
Mint jeleztem, a függvény minden esetben, így a negyedévek kiválasztásakor, újraszámolja az értékeket.
Van gyorsabb megoldás?
Nézzük a következő ábrát.

A képlet (az F2 cellában):
=ÁTLAG(B2:INDEX(B2:E2;$H$1))
Mi a lényeg?
A kettőspont!
Normális esetben az =INDEX() eredménye a D2 cella (1403) lenne, mert
az =INDEX(B2:E2;$H$1) ezt eredményezi (3. oszlop).
Az =INDEX() szintaxisa:
Táblázatban vagy tartományban található érték hivatkozását vagy értékét adja vissza.
Két alakja van:
a tömbös forma, amely adott cella vagy cellatömb értékét adja eredményül, valamint
a hivatkozásos forma, amely adott cellák hivatkozását adja eredményül.
Azért elég érdekes, ha egy függvény vagy egy cella értékét (tömbös változat), vagy cellák hivatkozását (hivatkozásos forma) adja eredményként.
Szintaxisa:=INDEX(hivatkozás;sor_szám;[oszlop_szám];[terület_szám])
Hivatkozás: egy vagy több cellatartományra való hivatkozás.
Sor_szám: a hivatkozásban annak a sornak a száma, amelyikből az eredményhivatkozást meg szeretnénk kapni.
Oszlop_szám: a hivatkozásban annak az oszlopnak a száma, amelyikből az eredményhivatkozást meg szeretnénk kapni.
Terület_szám: a hivatkozásnak azt a tartományát jelöli ki, amelyből a sor_szám és oszlop_szám által meghatározott eredményhivatkozást meg szeretnénk kapni.
Az első kijelölt vagy megadott terület az 1-es számú, a következő a 2-es számú stb.
Ha a terület_szám argumentumot nem adjuk meg, akkor az INDEX az 1-es számú területet veszi figyelembe.
Ezzel az első argumentumunk dinamikus, ezt az =INDEX() biztosítja, mivel cellatartományt ad eredményként.
És az =INDEX() nem volatilis, hiszen a cella címét (hivatkozását) és nem az értékét adja meg.

Hét tipp
2018. szeptember 17.

Verzió: Excel 2013, 2010, 2007

Talán kevésbé ismert tippek a munka meggyorsítására.

1. Összeg (SZUM) megállapítása képlet nélkül
Előfordulhat, hogy szükségünk van az értékek gyors összeadására, de nem akarunk külön cellát felhasználni képlet vagy AutoSzum alkalmazására. Egyszerű a megoldás: jelöljük ki az összeadandó cellákat, majd az állapotsoron (igen, ott lent az a zöld sáv) láthatjuk az eredményt. (Más eredményeket is.) Jobb egérgombbal történő kattintással testre szabhatjuk.

2. Jobb egérgombbal kattintás billentyűzetről
Az egér-billentyű harcának kevésbé ismert ütközete:
Shift + F10
3. Gyors Mentés másként
Még egy:
Alt + F2
4. Szabaduljunk meg a rácsvonalaktól!
Sokan szeretnek "tiszta lapon" dolgozni. A leggyakoribb alkalmazás a fehér kitöltőszín. Van jobb:
Nézet > Vegyük ki a pipát a Rácsvonalak jelölőnégyzetből.

5. Aktuális oszlop elrejtése
Jelöljük ki az oszlopot:
Ctrl + 8 (a billentyűzeten!
6. Aktuális sor elrejtése
Jelöljük ki az oszlopot:
Ctrl + 9 (a billentyűzeten!
7. Teljes lap kijelölése
Két lehetőség:
a) Ctrl + A,
b) Kattintás a bal felső sarokban az A és az 1 közötti boxra.

DARABTELI – három megoldás
2018. szeptember 10.

Verzió: Excel 2013, 2010, 2007

A DARABTELI nagyszerű függvény. Egy tartományban összeszámolja azokat a cellákat, amelyek eleget tesznek a megadott feltételnek. Ezért alkalmazzuk elemzésekben, beszámolókban. Most 3 nem hagyományos megoldást mutatok be.

Nézzük a példákat:
1. Egyedi (egyszer előforduló) értékek egy listában
Az Excelben nincs függvény arra, hogy megszámoljuk az egyszer vagy többször előforduló értékeket. Ha azonban a DARABTELI függvény kombináljuk a kiváló SZORZATÖSSZEG-gel, megkaphatjuk a kívánt eredményt.
Nézzünk egy listát.

Hogyan működik?
=SZORZATÖSSZEG(1/DARABTELI(B2:B9;B2:B9))
DARABTELI eredménye:
=SZORZATÖSSZEG(1/{1;1;2;1;1;2;2;2})
Mert a Rita, Zsolt egyszer, Éva kétszer és így tovább szerepel, azaz azt számolja meg, hányszor fordulnak elő a listában.
Elvégezzük az osztást:
=SZORZATÖSSZEG(1;1;0,5;1;1;0,5;0;5;0,5})
Összeadjuk az értékeket:
5
2. Két lista összehasonlítása
Gyakori feladat, rengeteg megoldás. Ám itt a DARABTELI függvényről van szó.
A példában arra vagyunk kíváncsiak, a második listából mely nevek nem szerepelnek az első listában

A képlet (E2):
=DARABTELI($B$2:$B$7;D2)
Eredménye 0, ha a név nincs az első listában. A megoldást szűrhetjük, kimutatásokban használhatjuk, feltételes formázással "látványossá" tehetjük.
3. Ismétlődések megelőzése egy listában
Az ismétlődések (duplikátumok) előfordulása mindig gondot okoz. Van ugyan egyszerű (beépített) megoldás, egyetlen hátránya, nem tudjuk, mit töröltünk.
Ha a DARABTELI függvényt és az Érvényesítés megoldást együtt alkalmazzuk, elkerülhető a baj, preventív módon kezeljük.
A megoldás menete:
1. Jelöljük ki a tartományt, melyre az Érvényesítés vonatkozik (Forrás), legyen ez itt a B2:B10.
2. Adatok > Érvényesítés.
3. A megjelenő párbeszédablakban: Érvényességi feltétel > Megengedve listából jelöljük ki Egyéni
4. A Képlet dobozba írjuk be képletünket:
=DARABTELI($B$2:$B2;$B2)=1

A képlet ellenőrzi, hogy a bevitt érték szerepel-e a listában (egyenlő 1-gyel), s ha igen, az Érvényesítés nem engedi bevinni az értéket.
Figyeljük meg, hogy a hivatkozásokban az abszolút hivatkozás rögzíti a hivatkozás kezdetét, a sorhivatkozás (relatív) ellenőrzi a bevitt adatokat.
Ha mégis beírnánk egy meglévő értéket, ezt az üzenetet kapjuk:

Három ritkán alkalmazott lehetőség a DARABTELI függvénnyel.

Csoportokból (halmazokból) sorozatok
2018. szeptember 3.

Verzió: Excel 2013, 2010, 2007

Olykor előfordulhat, hogy a valamilyen módon csoportot alkotó értékekből egész számok sorozatát hozzuk létre.
Miről van itt szó? Tételezzük, hogy egy oszlopban rendszeresen előforduló, meglévő vagy új értékek szerepelnek, és ezeket egy másik oszlopban szeretnénk sorozattá alakítani.

Valahogy így:

Ha egy érték már szerepel (itt a B) oszlopban, egyszerűen megkapjuk a sorozat elemét, ha nem, újat kell kapnunk.
A felhasznált függvények: =FKERES(), =SZUM(),=MAX() és a =HAHIBA().
Nézzük a példát.
Az egyszerűség kedvéért egyszerű számokkal dolgozom: a B oszlop értékei valamilyen módon halmazok (árucikkek kódjai, ársávok, jutaléksávok stb.), a C oszlopban generálom a sorozatot.
A képlet:
=HAHIBA(FKERES(B5;$B$1:C4;2;HAMIS);SZUM(MAX($C$1:C4);1))
A példa a C5 cellában indul.
1. Az =FKERES()
FKERES(B5;$B$1:C4;2;HAMIS)
A képlet eme része az értéket az egész oszlopban keresi és megpróbálja azonosítani a megfelelő értéket a következő, a C oszlopban, azaz ez az oszlop meggyorsítja és megkönnyíti a keresést.
2. A =SZUM(MAX) rész
SZUM(MAX($C$1:C4);1))
Ez a rész hozza létre a sorozat következő elemét.
3. A HAHIBA(FKERES();SZUM()) rész
Ez a komplexum gondoskodik a sorozat meglévő elemének kiválasztásáról, vagy éppen az új hozzáadásáról az adott érték alapján.

Levezetve:
1. =HAHIBA(FKERES(B5;$B$1:C4;2;HAMIS);SZUM(MAX($C$1:C4);1))
2. =HAHIBA(FKERES(B5;$B$1:C4;2;HAMIS);SZUM(MAX($C$1:C4);1))
3. =HAHIBA(1;SZUM(MAX($C$1:C4);1))
4. 1
Egyszerű megoldás: gyors, könnyen rendezhetjük sorba adatainkat.

Örökzöld tippek
2018. augusztus 27.

Verzió: Excel 2013, 2010, 2007

Van néhány olyan, a produktivitást javító fogás, melyet nem árt időnként feleleveníteni. Most, a nyár végén eljött ennek az ideje.

Lássunk néhányat!
1) Munkalapok beszúrása, egyszerűen
A billentyűkombináció: Shift + F11.
2) Munkalapok automatikus számozása
Olykor jól jöhet, ha munkalapjaink sorszámozottak (pl. Adat 1, Adat 2).
A megoldás:
1. Nevezzük el a lapot, a trükk, hogy a számokat tegyük zárójelbe: Adatok (1).
2. Tartsuk lenyomva a Ctrl billentyűt és húzzuk jobbra a fület.
3. Amint elengedjük az egeret, a munkalap másolódik, a számok növekvő sorrendben.

3) Mozgás a munkalapok között
Ctrl + PgDown: következő munkalap.
Ctrl + PgUp: előző munkalap.
4) Definiált nevek listája
Ha egy sor cellát/tartomány elnevezünk, nagy esélyünk van arra, hogy el is felejtsük ezeket a neveket. Jó, ha egyszerűen megtekinthetjük őket.
1. Kattintsunk: F3.
2. Egyet kiválasztva rákattintunk, és már használhatjuk is.
5) Utolsó művelet megismétlése
Egyik kedvencem.
Bármelyik utolsó műveletet megismételhetjük az F4 billentyű lenyomásával.
6) Teljes sor törlése
1. Teljes sor(ok) kijelölése: Shift + Szóköz/spacebar.
2. Teljes sor(ok) törlése: Ctrl - (mínuszjel).
7) Teljes oszlop törlése
1. Teljes oszlop(ok) kijelölése: Ctrl + Szóköz/spacebar.
2. Teljes oszlop(ok) törlése: Ctrl - (mínuszjel).
8) Adatok bevitele előre kijelölt cellák segítségével
Kevésbé ismert nagyon jó trükk.
1. Jelöljük ki azokat a cellákat, melyekbe írni akarunk.
2. Kezdjük beírni az adatokat, a hagyományos módon Enterrel zárjuk a bevitelt.
3. Látni fogjuk a megoldás előnyét: teljes figyelmünket a tartalomnak szentelhetjük.

(A megoldás csak egy oszlop vagy egy sor esetén működik.)

Sorok/oszlopok (véletlen) törlésének megakadályozása
2018. augusztus 20.

Verzió: Excel 2013, 2010, 2007

Gyakori eset, hogy nem szeretnénk, ha egy felhasználó véletlenül törölné egy beszámoló vagy dashboard egyik sorát vagy oszlopát. Egy nagyon egyszerű megoldás következik.

Ha a felhasználó törölné a sort vagy az oszlopot, figyelmeztető üzenetet kap. Lássuk!
Tételezzük, adataink a B2:B10 tartományban vannak, ezeket a sorokat akarjuk védeni.

A megoldás
1) Egy használaton kívüli oszlopban (itt a D) jelöljünk ki egy azonos méretű tartományt (itt D2:D10)
2) Írjuk be: =1.
3) A bevitelhez nyomjuk: Ctrl + Shift + Enter. Tömbképlet!
Ezt kapjuk:

Egy tömböt hoztunk létre a D2:D10 tartományban. Ha most ebben a tartományban akarunk egy sort törölni, nem megy.
A gyanútlan felhasználó ezt az üzenetet kapja:

(Természetesen a B oszlopban az adatok [a cellák tartalma] módosítható, a D oszlopban lévő tömbképlet azonban nem.)
Egyszerű megoldás a véletlen hiba kiküszöbölésére, de mit tehetünk, ha mégis törölni akarjuk a sorokat?
Az Excel azt a tartományt, melybe beírtuk a tömbképletet, egységnek tekinti. Ez többnyire akkor vehető észre, ha a tartomány egyik celláját akarjuk szerkeszteni.
Az Excel ezt nem engedi, mondván: "Tömbrész nem módosítható". Sok bosszúságtól kíméljük meg magunkat, ha a következőket bevéssük
A több cellába beírt tömbképletet csak egészében lehet szerkeszteni. Így ki kell jelölnünk a teljes tartományt (a legjobb a Ctrl + / billentyűkombináció), elvégezzük a változtatást, és ismét megnyomjuk a billentyűkombinációt, vagy töröljük a tömbképletet.
Esetünkben az összes sort (2:10) kell törölnünk.
Oszlopok esetében az eljárás ugyanez, beíráskor az oszlopok egyik használaton kívüli sorába visszük be a tömbképletet.

Numerikus értékek keresése
2018. augusztus 13.

Verzió: Excel 2013, 2010, 2007

Az Excel végeredményben a számokról szól. Így aztán természetes, ha a számok kezelése, így keresése fontos.
Öt módszerrel/függvénnyel lehet numerikus értékeket keresni. (És most felejtsük az =FKERES() vagy =VKERES() függvényeket, ők máshová tartoznak. Ez az öt: =SZORZATÖSSZEG(), =SZUMHA(), =ÖSSZESÍT(), =KERES() és az =INDEX()/HOL.VAN() kombinációja. Róluk lesz szó.

Ezek a függvények hasznosak, ha
• egy adott időszak (nap, hét, hónap, év) eredményeire,
• egy vevő egyenlegére,
• egy termék árára,
• egy adott időszakban történt termelésre
stb.
vagyunk kíváncsiak.
Amíg az eredmények numerikus értékek, ezek a függvények működnek.
Vegyünk egy példát: az augusztusi eredményekre vagyunk kíváncsiak.

A hónapokat az A2:A13 tartomány, az eredményeket a B2:B13 tartalmazza.
A kiválasztáshoz az Érvényesítés megoldást választottuk:

1) A =SZORZATÖSSZEG() függvénnyel
A képlet a D2 Cellában:
=SZORZATÖSSZEG((A2:A13=C2)*(B2:B13))
Hogyan működik?
A függvényről:
A felhasznált függvény a =SZORZATÖSSZEG(), megadott tömbök megfelelő elemeit szorozza össze, majd kiszámolja a szorzatok összegét.
Az első tömb (oszlop) értékeit megszorozzuk a megfelelő (azonos sorban lévő) második oszlop értékével. Az összes érték összege adja az eredményt.
Szintaxis:=SZORZATÖSSZEG(tömb1;tömb2;tömb3;…)
Tömb1: Az első tömbargumentum, amelynek a szorzatösszegét ki szeretnénk számítani.
Tömb2, tömb3,…: A 2-255. tömbargumentum, amelynek a szorzatösszegét ki szeretnénk számítani.
Elég elvontnak látszik, de nem az. Látjuk, hogy két tömbünk van.
Az (A2:A13=C2) IGAZ/HAMIS értékek tömbjét adja eredményül, ezt a =SZORZATÖSSZEG() 1/0 értékekké konvertálja.
A (B2:B13) az értékek tömbje.
A két tömb szorzatának eredménye a keresett hónap (augusztus) értéke:

2) A =SZUMHA() függvénnyel
A képlet a D2 Cellában:
=SZUMHA(A2:A13;C2;B2:B13)
Hogyan működik?
A függvényről:
A megadott feltételeknek eleget tevő cellákban található értékeket adja össze.
=SZUMHA(tartomány;feltételek;[összeg_tartomány])
Tartomány: a feltételek alapján kiértékelendő cellatartomány. Itt: A2:A13.
Az egyes tartományok cellái számok, számokat tartalmazó tömbök vagy számokra mutató nevek, illetve hivatkozások lehetnek.
Az üres és a szöveges értékeket a függvény figyelmen kívül hagyja.
Kritérium: az összeadandó cellákat meghatározó, számként, kifejezésként, cellahivatkozásként, szövegként vagy függvényként megadott feltétel,
Esetünkben az a C2 cellahivatkozás.
Fontos: bármely szöveges feltételt vagy bármely olyan feltételt, amely logikai vagy matematikai szimbólumokat tartalmaz, dupla idézőjelbe (") kell tenni. Ha a feltétel numerikus, nem szükséges a dupla idézőjel.
Összeg_tartomány: A ténylegesen összeadandó cellák, ha a tartományargumentumban megadottaktól eltérő cellákat szeretnénk összeadni.
Ha az összeg_tartomány argumentumot elhagyjuk, az Excel a tartomány argumentumban megadott cellákat adja össze (ugyanazokat, amelyekre a feltételeket alkalmazza).
3) Az =ÖSSZESÍT() függvénnyel
A képlet a D2 Cellában:
=ÖSSESÍT(14;7;B2:B13/(A2:A13=C2);1)
Az =ÖSSZESÍT() függvényről:
Lista vagy adatbázis összesítését adja eredményül.
Szintaxis, két formája van:
Hivatkozásos forma
=ÖSSZESÍT(függv_szám; beállítások; hiv1; [hiv2]; …)
Tömbös forma
ÖSSZESÍT(függv_szám; beállítások; tömb; [k])
Függv_szám: 1 és 19 közötti szám, amely megadja, hogy a program melyik függvényt használja.

Függv_számFüggvény
1ÁTLAG
2DARAB
3DARAB2
4MAX
5MIN
6SZORZAT
7SZÓR.M
8SZÓR.S
9SZUM
10VAR.M
11VAR.S
12MEDIÁN
13MÓDUSZ.EGY
14NAGY
15KICSI
16PERCENTILIS.TARTALMAZ
17KVARTILIS.TARTALMAZ
18PERCENTILIS.KIZÁR
19KVARTILIS.KIZÁR
Beállítások: numerikus érték, amely meghatározza, hogy a függvény kiértékelési tartományában milyen értékek legyenek mellőzve.
BeállításViselkedés
0 vagy hiányzikA beágyazott RÉSZÖSSZEG és ÖSSZESÍT függvények mellőzése
1Rejtett sorok, beágyazott RÉSZÖSSZEG és ÖSSZESÍT függvények mellőzése
2Hibaértékek, beágyazott RÉSZÖSSZEG és ÖSSZESÍT függvények mellőzése
3Rejtett sorok, hibaértékek, beágyazott RÉSZÖSSZEG és ÖSSZESÍT függvények mellőzése
4Nincs mellőzés
5Rejtett sorok mellőzése
6Hibaértékek mellőzése
7Rejtett sorok és hibaértékek mellőzése
Tömbfüggvényt alkalmazunk (14 -NAGY, továbbá a 7 Beállítást, mely mellőzi a rejtett sorokat és a hibaértékeket.
A B2:B13 eredménye az értékesítés tömbje.
Az (A2:A13=C2) IGAZ/HAMIS értékek tömbjét adja eredményül, ezt az =ÖSSZESÍT() 1/0 értékekké konvertálja.
Ha az értékesítés tömbjét (B2:B13) elosztjuk az 1/0 tömbbel, egy újabb tömböt kapunk:
{#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;904525;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!}
Mivel a 7 Beállítást választottuk, mely ignorálja a rejtett sorokat és a hibaértékeket, a =NAGY() függvény eredménye az érték.
4) A =KERES() függvénnyel
A képlet a D2 Cellában:
=KERES(1;1/(A2:A13=C2);B2:B13)
A =KERES() függvényről:
Egy sorból vagy egy oszlopból álló tartományban vagy tömbben lévő értéket keres meg.
A =KERES() függvénynek két formája van: a tömbös és a vektoros.
A függvény tömbös formája egy adott tömb első sorában vagy első oszlopában keres egy megadott értéket, majd a megtalált érték oszlopának vagy sorának utolsó elemével tér vissza.
Szintaxis
=KERES(keresési_érték;tömb)
Keresési_érték: az az érték, amelyet a függvény a tömbben keres.
Tömb: olyan szövegeket, számokat vagy logikai értékeket tartalmazó cellatartomány, amelyeket a keresési_értékkel össze kell hasonlítani.
Szintaxis (vektoros)
=KERES(keresési_érték;keresési_vektor;[eredmény_vektor])
Keresési érték: az az érték, amelyet a függvény az első vektorban keres.
A keresési_érték lehet szám, szöveg, logikai érték, illetve ezek valamelyikére vonatkozó név vagy hivatkozás.
Keresési_vektor: egyetlen sorból vagy egyetlen oszlopból álló tartomány.
A keresési_vektor értékei szöveg, számok vagy logikai értékek lehetnek.
A keresési_vektor értékeinek emelkedő sorrendben kell elhelyezkedniük.
Eredmény_vektor: egyetlen sorból vagy egyetlen oszlopból álló tartomány.
Méretének meg kell egyeznie a keresési_vektor méretével.
Ha a függvény nem találja a keresési_értéket, akkor a keresési_vektor legnagyobb olyan értékére áll, amely a keresési_értéknél kisebb.
Hogyan működik?
=KERES(1;1/(A2:A13=C2);B2:B13)
Az (A2:A13=C2) eredménye egy IGAZ/HAMIS értékekből álló tömb, ezeket konvertálja a =KERES() 1/0 értékekké.
Az 1/(A2:A13=C2) eredménye hibaérték (#ZÉRÓOSZTÓ!, ha az osztó 0, és 1, ha az osztó 1.
{#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;1;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!}
A =KERES() megtalálja az 1 pozícióját, és ezt használja az érték visszaadására.
5) Az =INDEX/HOL.VAN() függvényekkel
Az =INDEX()áblázatban vagy tartományban található érték hivatkozását vagy értékét adja vissza.
A függvénynek két alakja van:
a tömbös forma, amely adott cella vagy cellatömb értékét adja eredményül.
a hivatkozásos forma, amely adott cellák hivatkozását adja eredményül, és
Szintaxis 1
=INDEX(tömb;sor_szám;[oszlop_szám])
Szintaxis 2
=INDEX(hivatkozás;sor_szám;[oszlop_szám];[terület_szám])
Tömb: cellatartomány vagy tömbállandó.
Sor_szám: a tömbben annak a sornak a száma, amelyikből az értéket meg szeretnénk kapni.
Oszlop_szám: a tömbben annak az oszlopnak a száma, amelyikből az értéket meg szeretnénk kapni.
A =HOL.VAN() függvény egy olyan elem tömbben elfoglalt relatív pozícióját adja vissza, amely megadott értékkel megadott módon egyezik. Kereshetünk számot, szöveget vagy logikai értéket, hivatkozást ilyen értékre. A megtalált elem helyét adja meg, és nem magát az elemet.
Szintaxis
=HOL.VAN(keresési_érték;tábla;[egyezés_típus])
Keresési_érték: az az érték, amelynek segítségével a táblázatban a keresett érték megtalálható.
Tábla: azon értékeket tartalmazó összefüggő cellatartomány, amelyek között a függvény a keresési_értéket keresi.
Egyezés_típus: értéke -1, 0 vagy 1. (Az alapérték 1.)
Ha az egyezés_típus: 1, azt a legnagyobb értéket keresi meg, amely egyenlő vagy kisebb, mint a keresési_érték.
Ha nincs egyezés vagy kisebb érték, akkor a #HIÁNYZIK hibaértéket adja eredményül.
A táblának emelkedő sorrendbe rendezettnek kell lennie.
Ha az egyezés_típus: -1, azt a legkisebb értéket keresi meg, amely egyenlő vagy nagyobb, mint a keresési_érték.
Ha nincs egyezés vagy nagyobb érték, akkor a #HIÁNYZIK hibaértéket adja eredményül.
A táblának csökkenő sorrendben rendezettnek kell lennie
Ha az egyezés_típus értéke 0, az első olyan értéket keresi meg, amely pontosan egyenlő a keresési_értékkel.
A táblának nem kell rendezettnek lennie.
Hogyan működik:
=INDEX(B2:B13;HOL.VAN(C2;A2:A13;0))
A HOL.VAN(C2;A2:A13;0) megadja az augusztus relatív pozícióját a Hónapoktömbben.
Az INDEX(B2:B13 megadja azt az értékesítési eredményt, melyet a =SOR() függvény sor_szám argumentuma határozott meg.

Összegzések (SZUM), sorok
2018. augusztus 6.

Verzió: Excel 2013, 2010, 2007

A legutóbbi bejegyzésben néhány összegzési megoldást mutattam be: minden második, harmadik stb. sor összegzése, és hasonlókat. Szintén előfordulhat, hogy összegezni szeretnénk adatokat, mégpedig valamilyen kritérium alapján, mondjuk, hetek, hónapok, 5 vagy 10 napos periódusok vagy hasonlók alapján.
Ha ezt nagyobb adatbázisban tesszük, meghatározzuk a kezdő és a befelező pontokat, ám ha ebben nem vagyunk biztosak, marad az ismétlődő megoldás. Ezt is lehet egyszerűvé tenni.

Az ismétlődés itt azt jelenti, hogy minden periódusnak meg kell határoznunk a kezdetét és végét: hetek, hónapok, vagy egyéb időtartamok.
A példában meg akarjuk kapni minden 3., 5. és 7. nap összegét (mondjuk a hét első három, első 5, majd a teljes hét forgalmát. Ábrázolva:

Az egyszerűség kedvéért a periódusokat az Érvényesítés megoldással vittük be a G1 cellába. Itt tudjuk kiválasztani, melyik időtartamokra van szükségünk.
Az egyszerűség kedvéért összesen 30 napot vizsgálunk és a szemléltetés kedvéért minden nap ugyanazzal az értékkel (10) szerepel.
Így a 3 napos periódusokból 10 eredményünk, az 5 naposokéból 6, végül az egy hetes időszakok négy egyforma (70) és a maradék 20 eredményét adják.
A megoldás:
A =SZUM() és az =ELTOLÁS() függvény kombinációjával megkapjuk a megfelelő adattartományt, melyet összegzünk.
A képlet a G2 cellában:
=SZUM(ELTOLÁS(B$2;$G$1*(SOR(A1)-1);0;$G$1;1))
Hogyan működik?
A példában a 7-7 cellák összegét mutatom be (G2). A képlet először a hivatkozást alakítja értékké:
=SZUM(ELTOLÁS(B$2;7*(SOR(A1)-1);0;$G$1;1))
Majd a =SOR() értékelése következik:
=SZUM(ELTOLÁS(B$2;7*(1-1);0;$G$1;1))
Elvégzi a zárójelben lévő műveletet:
=SZUM(ELTOLÁS(B$2;7*(0);0;$G$1;1))
Tovább:
=SZUM(ELTOLÁS(B$2;7*0;0;$G$1;1))
Elvégzi a szorzást, feloldja a hivatkozást:
=SZUM(ELTOLÁS(B$2;0;0;7;1))
Az =ELTOLÁS():
=SZUM($B$2:$B$8)
70
Ez az első 7 sor összege. Hogy világosabb legyen, nézzük a lényeget: amikor lehúzzuk a képletet, a =SOR() a következő tömböt hozza létre:
A (SOR(A1)-1 eredménye 0;
a (SOR(A2)-1 eredménye 1;
a (SOR(A3)-1 eredménye 2;
a (SOR(A4)-1 eredménye 3;
és így tovább.
Ezt a tömböt (0, 1, 2, 3, … n) szorozzuk az összeadandó sorok számával, példánkban 7-tel.
Ennek eredménye újab tömb (0, 7, 14, 21, … 7n), mind a 7 szorzata.
Az =ELTOLÁS():
A függvény egy megadott magasságú és szélességű hivatkozást ad eredményül, egy másik hivatkozástól számított megadott számú sornyi és oszlopnyi távolságra.
Az eredményként visszaadott hivatkozás hivatkozhat egyetlen cellára vagy egy cellatartományra.
Megadhatjuk a sorok és az oszlopok számát.
Szintaxis
=ELTOLÁS(hivatkozás;sorok;oszlopok;[magasság];[szélesség])
Hivatkozás: az a hivatkozás, amelyhez képest az eredmény hivatkozás helyzetét az argumentumok meghatározzák.
A hivatkozásnak egyetlen cellára vagy egy cellatartományra kell vonatkoznia, ellenkező esetben a függvény az #ÉRTÉK! hibaértéket adja eredményül.
Sorok: az eredmény bal felső cellája és a hivatkozás közötti függőleges távolság a sorok számában kifejezve.
Ha például az argumentum értéke 3, akkor az eredményül kapott hivatkozásban a bal felső cella 3 sorral lesz a hivatkozás alatt.
Oszlopok: az eredmény bal felső cellája és a hivatkozás közötti vízszintes távolság az oszlopok számában kifejezve.
Ha például az argumentum értéke 3, akkor az eredményül kapott hivatkozásban a bal felső cella a bal felső cella 3 oszloppal jobbra lesz a hivatkozás mellett.
Magasság: az eredmény hivatkozás magassága a sorok számában mérve. A magasság csak pozitív szám lehet.
Szélesség: az eredmény hivatkozás szélessége az oszlopok számában mérve. A szélesség csak pozitív szám lehet.
Ha a magasság vagy a szélesség argumentumot nem adjuk meg, akkor a program a hivatkozás magasságát és szélességét használja.
Az 5 argumentum ebben a képletben (az egyszerűség kedvéért most hármasával):

Látható, hogy néhány argumentum változik, ha lehúzzuk a képletet, néhány pedig változatlan marad.
Ezzel jön létre az új tömb, melyet a megfelelő módon összeadunk:

Ennyi!

Összegzések (SZUM), néhány megoldás
2018. július 30.

Verzió: Excel 2013, 2010, 2007

Nem ritka feladat, hogy adatokat valamilyen kritérium alapján szeretnénk összegezni.
Ha nagyobb adatmennyiséggel van dolgunk, meg kell határoznunk a kezdő és az utolsó cellát, az összeadandó értékek ismétlődő távolságát (intervallumát, netán hosszát.)
Néhány összegzési megoldás.

1. Minden páratlan sor értékeinek összeadása
Ebben az esetben az 1., 3., 5., 7. stb. sorok (színezve) értékeinek összegére vagyunk kíváncsiak. Beírásuk elég macerás, a megoldás:

A képlet:
=SZORZATÖSSZEG((A1:A20)*(MARADÉK(SOR(A1:A20)-SOR(A1)+1;2)<>0))
Hogyan működik?
=SZORZATÖSSZEG((A1:A20)*(MARADÉK(SOR(A1:A20)-SOR(A1)+1;2)<>0))
A tartomány értékei:
SZORZATÖSSZEG({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20})*(MARADÉK(SOR(A1:A20)-SOR(A1)+1;2)<>0))
A =SOR() kibontva:
SZORZATÖSSZEG({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20})*(MARADÉK({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20}-SOR(A1)+1;2)<>0))
Az A1 sor értéke:
SZORZATÖSSZEG({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20})*(MARADÉK({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20}-{1}+1;2)<>0))
Most indul a =MARADÉK() függvény:
SZORZATÖSSZEG({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20})*(MARADÉK({0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19}-{1}+1;2)<>0))
Plusz 1
SZORZATÖSSZEG({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20})*(MARADÉK({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20}2)<>0))
A maradékok:
SZORZATÖSSZEG({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20})*({1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0}<>0))
Értékek:
SZORZATÖSSZEG({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20})*({IGAZ;HAMIS;IGAZ;HAMIS;IGAZ;HAMIS;IGAZ;HAMIS;IGAZ;HAMIS;IGAZ;HAMIS;IGAZ;
HAMIS;IGAZ;HAMIS;IGAZ;HAMIS;IGAZ;HAMIS}<>0))

Logikai operátor:
SZORZATÖSSZEG({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20})*({IGAZ;HAMIS;IGAZ;HAMIS;IGAZ;HAMIS;IGAZ;HAMIS;IGAZ;HAMIS;IGAZ;HAMIS;IGAZ;HAMIS;
IGAZ;HAMIS;IGAZ;HAMIS;IGAZ;HAMIS})

A =SZORZATÖSSZEG()
SZORZATÖSSZEG({1;0;3;0;5;0;7;0;9;0;11;0;13;0;15;0;17;0;19;0})
Az eredmény:
100
Persze ez egy általános megoldás, ha a tartomány B5:B200, a képlet:
=SZORZATÖSSZEG((B5:B200)*(MARADÉK(SOR(B5:B200)-SOR(B5)+1;2)<>0))
2. Minden páros sor értékeinek összeadása
Ha minden páros sor értékeinek összegét akarjuk megkapni, a megoldás hasonló:

A képlet:
=SZORZATÖSSZEG((A1:A20)*(MARADÉK(SOR(A1:A20)-SOR(A1)+0;2)<>0))
Látható, hogy a megoldás teljesen megegyezik az előzővel, csak a PÁROS-PÁRATLAN megoldást választottuk a sor megadásakor.
Persze itt is általános megoldásról van szó, ha a tartomány B5:B200, a képlet:
=SZORZATÖSSZEG((B5:B200)*(MARADÉK(SOR(B5:B200)-SOR(B5)+0;2)<>0))
3. Minden n-edik sor értékeinek összeadása
A tartomány ugyanaz, tételezzük, minden 5. sor értékeinek összegére vagyunk kíváncsiak:

Azért látható, hogy ez nagyon hasonlít az előzőkre, itt mi határozzunk meg az összeadandó értékek távolságát.
Két megoldást is mutatok, kényegében a függvények sorrendje a különbség.
Nézzük az egyszerűbbet (A23):
=SZORZATÖSSZEG((MARADÉK(SOR(A1:A20);5)=0)*(A1:A20))
=SOR(): ez a függvény adja meg a sor számát, melyet a képlet ellenőriz. Ha elhagyjuk, az 1. sorral (itt A1) kezdünk.
(Ha a tartomány a B3:B20 lenne, a beírandó érték -2, hiszen a 3. sorból indul a számítás.
Ez biztosítja, hogy az első esetben az 5., 10., 15. és 20. sor helyett "nem írunk be semmit", míg a második esetben a 7., 12. és 17. sor beírása helyett elég a -2.
=MARADÉK(): ez a függvény adja meg a maradékot, ha a számot elosztjuk az osztóval. A képletben arra használjuk, hogy ellenőrizze, hogy a sor valóban (itt) az ötödik-e.
Ha igen, a sor számát 5-tel osztva az eredmény 0.
Így a tömb esetünkben:
{0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;}
=SZORZATÖSSZEG(): ez a függvény végzi az összeadást.
Az 1.tömb a sorokat ellenőrzi, ezt kapjuk:
{0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;1;}
Az eredmény 1, ha a feltétel IGAZ.
Ezt szorozzuk az értékek tömbjével, majd összeadva megkapjuk az eredményt.
Sorjában:
=SZORZATÖSSZEG((MARADÉK(SOR(A1:A20);5)=0)*(A1:A20))
=SZORZATÖSSZEG((MARADÉK({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20});5)=0)*(A1:A20))
=SZORZATÖSSZEG(({1;2;3;4;0;1;2;3;4;0;1;2;3;4;0;1;2;3;4;0});5)=0)*(A1:A20))
=SZORZATÖSSZEG(({HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ});5)=IGAZ)*(A1:A20))
=SZORZATÖSSZEG(({HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ});5)=IGAZ)*{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20})
=SZORZATÖSSZEG({0;0;0;0;5;0;0;0;0;10;0;0;0;0;15;0;0;0;0;20})
=50
A képlet az A21 cellában:
=SZORZATÖSSZEG((A1:A20)*(MARADÉK(SOR(A1:A20)-SOR(A1)+1;5)=0))
Látható, hogy csak a =MARADÉK() függvény elhelyezése a küönbség.
Nézzünk egy flexibilis megoldást:
Ha azt szeretnénk, hogy az összeadandó cellák intervalluma rugalmas legyen, hozzunk létre erre egy cellát. (Névvel is definiálhatnánk.) Itt most ez az E4 cella, az érték 4, azaz minden negyedik cella értékének összegét akarjuk megkapni.

A képlet:
=SZORZATÖSSZEG(A1:A20*(MARADÉK(A1:A20;E1)=0))
Mi történik itt?
A =SZORZATÖSSZEG() egyszerűen összeadja a soroknak megfelelő számokat, melyek pontosan (maradék nélkül) oszthatók az E4 cellában megadott értékkel (esetünkben ez 4).
Így:
=SZORZATÖSSZEG(A1:A20*(MARADÉK(A1:A20;E1)=0))
=SZORZATÖSSZEG({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20}*({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20};4)=0))
=SZORZATÖSSZEG({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20}*({1;2;3;0;1;2;3;0;1;2;3;0;1;2;3;0;1;2;3;0;}=0))
=SZORZATÖSSZEG({1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20}*({HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;IGAZ}))
=SZORZATÖSSZEG({0;0;0;4;0;0;0;8;0;0;0;12;0;0;0;16;0;0;0;20})
60
Az E1 cella értéke bármikor változtatható
4. A top n érték összege egy tartományban
Hasonló feladat az előzőkhöz, egy kis csavarral, a legnagyobb (top) n érték összegét akarjuk megkapni, esetünkben a top 5-öt.
Annyi a megszorítás, figyelmen kell hagynunk a 0 értékeket és az üres cellákat, így kihagytuk a 18-at.

A képlet: tömbképlet:
{=SZORZATÖSSZEG(NAGY(HA(A1:A20<>0;A1:A20);SOR(1:5)))}
Meg tudjuk oldani tömbképlet nélkül is:
=SZORZATÖSSZEG(ÖSSZESÍT(14;6;A1:A20;SOR(1:5)))
Levezetve:
=SZORZATÖSSZEG(ÖSSZESÍT(14;6;A1:A20;SOR(1:5)))
A =SOR():
=SZORZATÖSSZEG(ÖSSZESÍT(14;6;A1:A20;{1;2;3;4;5}))
Az =ÖSSZESÍT() függvény:
=SZORZATÖSSZEG({20;19;17;16;15})
87
Néhány szó az =ÖSSZESÍT() függvényről:
Lista vagy adatbázis összesítését adja eredményül.
Szintaxis, két formája van:
Hivatkozásos forma
=ÖSSZESÍT(függv_szám; beállítások; hiv1; [hiv2]; …)
Tömbös forma
ÖSSZESÍT(függv_szám; beállítások; tömb; [k])
Függv_szám: 1 és 19 közötti szám, amely megadja, hogy a program melyik függvényt használja.

Függv_számFüggvény
1ÁTLAG
2DARAB
3DARAB2
4MAX
5MIN
6SZORZAT
7SZÓR.M
8SZÓR.S
9SZUM
10VAR.M
11VAR.S
12MEDIÁN
13MÓDUSZ.EGY
14NAGY
15KICSI
16PERCENTILIS.TARTALMAZ
17KVARTILIS.TARTALMAZ
18PERCENTILIS.KIZÁR
19KVARTILIS.KIZÁR
Beállítások: numerikus érték, amely meghatározza, hogy a függvény kiértékelési tartományában milyen értékek legyenek mellőzve.
BeállításViselkedés
0 vagy hiányzikA beágyazott RÉSZÖSSZEG és ÖSSZESÍT függvények mellőzése
1Rejtett sorok, beágyazott RÉSZÖSSZEG és ÖSSZESÍT függvények mellőzése
2Hibaértékek, beágyazott RÉSZÖSSZEG és ÖSSZESÍT függvények mellőzése
3Rejtett sorok, hibaértékek, beágyazott RÉSZÖSSZEG és ÖSSZESÍT függvények mellőzése
4Nincs mellőzés
5Rejtett sorok mellőzése
6Hibaértékek mellőzése
7Rejtett sorok és hibaértékek mellőzése
Példánkban a 14;6 szerepel, azaz a =NAGY() a hibaértékek mellőzésével.
A képlet csak akkor működik, ha van legalább annyi szám a tartományban, amennyi a "top" értéke (itt 5), különben hibaértéket (#SZÁM! kapunk.
Ha ezt a korlátot ki akarjuk kerülni, a megoldás:

A képlet: tömbképlet:
{=SZUM(HAHIBA(NAGY(A1:A20;SOR(1:5));0))}
Tömbképlet nélkül az első változat:
=SZORZATÖSSZEG(ÖSSZESÍT(14;6;A1:A20;SOR(1:5)))
Az alsó, legkisebb (bottom) n érték összege egy tartományban
Ugyanígy működik a legkisebb értékek összegzése, természetesen a =KICS() függvény alkalmazásával.

{=SZORZATÖSSZEG(KICSI(A1:A20;SOR(1:5)))>
=SZORZATÖSSZEG(ÖSSZESÍT(15;6;A1:A20;SOR(1:5)))
Hasonlóan a "top" megoldáshoz, itt is van megoldás kevés érték esetén.

A képlet (A21):
{=SZUM(HAHIBA(KICSI(HA(A1:A20<>0;A1:A20);SOR(1:5));0))}
A23:
{=SZUM(HAHIBA(KICSI(A1:A20;SOR(1:5));0))}
Természetesen tömbképletek.

Irányított beillesztés (5 trükk)
2018. július 23.

Verzió: Excel 2013, 2010, 2007

A Másolás és Beillesztés napi gyakorlat. Van azonban néhány Irányított beillesztés (Paste Special) megoldás, mellyel meghatározhatjuk, a másolt elemek mely részeit szeretnénk beilleszteni. 5 trükk.

1. Pozitív számok átalakítása negatívokká
Ha adatokat másolunk vagy importálunk, előfordulhat, hogy a negatív számok nem jelennek meg helyesen.
A megoldás:
1. Írjuk az egyik cellába: -1.
2. Másoljuk ezt a cellát.
3. Jelöljük ki a kívánt tartományt, kattintsunk jobb egérgombbal > Irányított beillesztés > Értékek > (Művelet: Szorzás).

2. Szövegből szám
A helyzet hasonló: letöltések, más forrásból importálás után az adatokat meg kell tisztítani. Gyakori eset, hogy a számok szövegként "tárolódnak". Az Irányított beillesztés kiváló megoldás, a lényeg megegyezik az előzővel, csak most egyszerűen 1-gyel szorzunk. Még ábrára sincs szükség.
A megoldás:
1. Írjuk az egyik cellába: 1.
2. Másoljuk ezt a cellát.
3. Jelöljük ki a kívánt tartományt, kattintsunk jobb egérgombbal > Irányított beillesztés > Értékek > (Művelet: Szorzás).
3. Szám átalakítása százalékká
Ha van egy sor értékünk, melyeket százalékká akarunk konvertálni, az Irányított beillesztés a megoldás.
Lépések:
1. Írjuk az egyik cellába: 100.
2. Másoljuk ezt a cellát.
3. Jelöljük ki a kívánt tartományt, kattintsunk jobb egérgombbal > Irányított beillesztés > Értékek > (Művelet: Osztás).

4. Az így kapott értékeket formázzuk.

4. Oszlopszélesség beállításának megismétlése
Viszonylag kevésbé ismert megoldás. A beállított oszlopszélességet gyorsan és hatékonyan alkalmazhatjuk több oszlopra.
A megoldás:
1. Másoljunk le egy cellát abból az oszlopból, melynek szélességét több oszlopra szeretnénk alkalmazni.
2. Jelöljük ki a kívánt oszlopokat.
3. Jobb egérgomb: Irányított beillesztés > Oszlopszélességet

Az eredmény:

5. Üres cellák átugrása egy tartományban
Ha ameglévő tartományt felülírjuk, azaz új értékeket illesztünk be, előfordulhat, hogy ez a tartomány üres cellákat is tartalmaz.
És egyáltalán nem szeretnénk, ha ezek az üres cellák felülírnák a régi tartományt, ahogy ez a hagyományos Ctrl + C > Ctrl +V megoldásnál történik.
A megoldás:
1. Másoljuk ki az új tartományt.
2. Jelöljük ki az eredetit.
3. Jobb egérgomb > Irányított beillesztés > Értékek > Üresek átugrása.

És az eredmény:

Időnként hasznosak lehetnek.

DARABTELI nem összefüggő cellatartományban
2018. július 16.

Verzió: Excel 2013, 2010, 2007

Mindenki szereti a =DARABTELI() függvényt. Egyszerű, könnyen kezelhető. Elegendő megadni a tartományt és a kritériumot (mondjuk B2:B1000 és >7, és máris megkapjuk azoknak a celláknak a számát, melyekben az érték nagyobb, mint 7.

De mi a helyzet, ha bennünket csak a B10, B20, B30, B40, és így tovább cellák érdekelnek?
Próbáljuk meg a következő képletet!

A képlet:
=DARABTELI((B10;B20;B30;B40);">7")
És megkaptuk az #ÉRTÉK! hibaértéket.
Szóba jöhetne a
=(B10>5)+(B20>5)+(B30>5)+(B40>5) képlet.
Ám egy kicsit munkás (és értelmetlen!) lenne a
=(B10>5)+(B20>5)+(B30>5)+(B40>5)+(B50>5)+(B60>5)+(B70>5)+(B80>5) képlet.
A megoldás?

A képlet:
=SZUM(DARABTELI(INDIREKT({"B10";"B20";"B30";"B40"});">7"))
Hogyan működik?
1. =SZUM(DARABTELI(INDIREKT({"B10";"B20";"B30";"B40"});">7"))
2. =SZUM(DARABTELI({#ÉRTÉK!;#ÉRTÉK!;#ÉRTÉK!;#ÉRTÉK!});">7"))
3. =SZUM({1;0;1;1})
4. 3
A fontosabb függvények a képletben:
INDIREKT
A függvény eredménye a szövegként megadott hivatkozás. A hivatkozásokat az Excel azonnal kiértékeli és megjeleníti tartalmukat.
Ez történt a 2. és 3. lépésben leírtakban: van 4 értékünk.
A következő a =DARABTELI().
A függvény egy tartományban összeszámolja azokat a cellákat, amelyek eleget tesznek a megadott feltételnek.
Esetünkben a feltétel, az érték nagyobb, mint 7.
Szintaxis: =DARABTELI(tartomány;feltételek)
Tartomány: egy vagy több összeszámolandó cella; tartalmazhat számokat, neveket, tömböket vagy számokat tartalmazó hivatkozásokat.
A függvény figyelmen kívül hagyja a szövegértéket és az üres cellát.
Feltételek: az összeszámolandó cellákat meghatározó, számként, kifejezésként, cellahivatkozásként vagy szövegként megadott feltétel.
A feltétel lehet:
szám, így pl. =DARABTELI(B2:B500;7)
szöveg idézőjelben, így pl. =DARABTELI(A1:A5;"Szia")
operátor idézőjelben, így pl. =DARABTELI(B2:B500;">7"), mint példánkban.
A példában a tartományt tömbállandókként adtuk meg, ezek azok a cellák, melyek érdekelnek bennünket, ezeket kapcsos zárójelbe tettük. (Megjegyzendő, hogy egyes cellák helyet tartományok is szerepelhetnének, így pl. B22:B26.
A =SZUM() végzi a dolgát, összeadja az IGAZ, azaz 1 értékeket.
A megoldással sok hibaüzenettől mentesülünk.

Szabaduljunk meg a szörnyű formázásoktól!
2018. július 9.

Verzió: Excel 2013, 2010, 2007

Nyilván találkoztunk már agyoncicomázott ("csicsás") beszámolókkal, táblázatokkal, melyektől elsírja magát az ember. Két trükk, hogyan "tisztítsuk" meg adatainkat a fölösleges cifraságoktól.

Lássuk, miről is beszélek. Az egyszerűség kedvéért a különböző számokat, képleteket, szövegeket Ez itt adat szöveggel jelzem.
Két megoldás létezik, az elsővel egyszerre megoldódik minden gondunk:
1. Formátum törlése
Lépések:
1) Jelöljük ki a "tisztázandó" tartományt.
2) Kezdőlap > Szerkesztés csoport > Törlés > Formátum törlése.

És az eredmény:

Előfordulhat, hogy néhány formázás meg akarunk tartani, így egy lépés helyett bonyolultabb megoldásra van szükségünk.
Ez a Ctrl + H billentyűkombinációval előhívható Keresés és csere.
2. Keresés és csere
A menüből is megoldhatjuk:

Maradjunk az egyszerűbb Ctrl + H billentyűkombinációnál:
1. Kattintsunk az Egyebek gombra.
2. A Keresett szöveg sorban kattintsunk a Formátum gombra.
3. Az új ablakban válasszuk a Formátum választása cellából opciót és jelöljük ki a visszaállítandó cellát.

4. Most kattintsunk a Csere erre sorban a Formátum gombra.
5. Válasszuk a Formátum választása cellából opciót és jelöljük ki azt a cellát, melynek formátumát alkalmazni szeretnénk.
Tipp! Ha nincs ilyen cellánk, egyszerűen kattintsunk egy üres cellára: az Excel az alapbeállítást fogja alkalmazni.
6. Kattintsunk: Az összes cseréje.

Ennyi.

Az oszlop_szám trükk
2018. július 2.

Verzió: Excel 2013, 2010, 2007

Az =FKERES() egyik nagy hátránya, ha egy oszlopot szúrunk be a tábla cellatartományba, az oszlop_szám argumentum nem változik. Így aztán rossz eredményt kapunk. Található egyszerű megoldás?

Vegyünk egy egyszerű példát. Adott egy lista munkatársak azonosítójával, vezeték- és keresztnevével, részlegének megnevezésével, e-mail címével. Valahogy így:

Így a 33020 azonosítószámmal rendelkező munkatárs részlegének a nevét ezzel a képlettel kapjuk meg:
=FKERES(33020;$B:$G;5;0),
és az eredmény: PR.
Ha most törlünk egy oszlopot (itt az E oszlopot), az eredmény:

kiss.sandor@gmail.com, mert az oszlop_szám argumentum továbbra is 5.
Ha hozzáadunk (beszúrunk) egy oszlopot, szintén rossz eredményt kapunk.
Látható, hogy a gond az oszlop_szám argumentummal van.
Lássuk a függvényt!
A függvény egy tömb bal szélső oszlopában keres egy megadott értéket.
Az így kapott sorból veszi az oszlop_szám argumentummal kijelölt cellát, és ennek tartalmát adja eredményül.
Szintaxis
=FKERES(keresési_érték;tábla;oszlop_szám;[tartományban_keres])
Keresési_érték: a tömb első oszlopában megkeresendő érték. Ez lehet érték, hivatkozás vagy karaktersorozat.
Esetünkben ez a munkatárs azonosítója
Tábla: az adatokat tartalmazó cellatartomány.
Lehet tartományhivatkozás vagy egy tartomány neve idézőjelek között.
Itt az egyszerűség kedvéért az oszlopokat adtam meg, de lehetne a konkrét cellatartomány.
Oszlop_szám: a tábla azon oszlopának a táblán belüli sorszáma, amelyből az eredmény meg kívánjuk kapni.
Itt az 5. oszlop tartalmazza a kereset értéket.
Tartományban_keres: logikai érték, amellyel az =FKERES() függvény pontos vagy közelítő keresését adhatjuk meg.
Ha értéke IGAZ vagy hiányzik, akkor a visszaadott érték közelítő lehet, azaz ha pontos egyezést nem talált a függvény, akkor a következő legnagyobb, de a keresési_érték argumentumnál kisebb értéket adja vissza.
Ha az argumentum értéke HAMIS, akkor a függvény pontos egyezést keres, és ha ilyen nincs, akkor a #HIÁNYZIK hibaértéket adja eredményül.
Ha a tartományban_keres értéke IGAZ vagy hiányzik, a tábla első oszlopában lévő értékeknek növekvő sorrendben kell elhelyezkedniük, különben a függvény hibás eredményt adhat.
Akkor a megoldás:
=FKERES(33020;$B:$G;OSZLOPOK($B:F);0),

Az oszlop_szám argumentumot kicseréltük az OSZLOPOK($B:F) függvényre,
melynek eredménye 5.
Az =OSZLOPOK() függvény egy hivatkozásban vagy egy tömbben lévő oszlopok számát adja eredményül.
Ezzel "kicseleztük" az oszlop_szám korlátozott alkalmazhatóságát.

A legnagyobb (a nullától legtávolabbi) érték megkeresése
2018. június 25.

Verzió: Excel 2013, 2010, 2007

A legutóbbi bejegyzésben egy lista legkisebb értékét kerestük meg. Most nézzük, mi a helyzet, ha a legnagyobbra, azaz a nullától legtávolibbra vagyunk kíváncsiak.
Természetesen itt sem a legegyszerűbb megoldás az érdekes, a listában pozitív és negatív előjelű értékek szerepelnek.

Két tényt kell figyelembe vennünk:
1. Felejtsük el az egyszerű =MAX() vagy =MIN() függvényeket,
2. Eldönthetjük, hogyan jelenjen meg a szám:
a) pozitív vagy negatív előjelű értékként, az eredeti listának megfelelően, vagy
b) abszolút értékként, függetlenül attól, mi áll a listában.
Nézzünk egy képzelt adatsort:

(Nagyon hideg hely.)
A képlet:
{=INDEX($C$10:$C$21;HOL.VAN(MAX(ABS($C$10:$C$21)-0);ABS($C$10:$C$21);0);1)}
A megoldás megegyezik az előző bejegyzésben alkalmazottal (itt, csak most a =MAX() függvényt alkalmazzuk.
A képletben először a =HOL.VAN() függvény "dolgozik":
INDEX($C$10:$C$21;HOL.VAN(MAX({8;11;4;2;4;6;9;10;9;8;1;4});ABS($C$10:$C$21);0);1)
Abszolút értékek a tömbben.
Majd "megtalálja" a legnagyobb értéket:
INDEX($C$10:$C$21;HOL.VAN(11;ABS($C$10:$C$21);0);1)
"Kibontja a tömböt":
INDEX($C$10:$C$21;HOL.VAN(11;{8;11;4;2;4;6;9;10;9;8;1;4};0);1)
Innen már egyszerű: "átadja" az =INDEX() függvénynek:
INDEX($C$10:$C$21;2;1)
Az eredmény:
-11
Az abszolút értékek egyszerűen a =MAX() és az =ABS() tömbképletben alkalmazásával találjuk meg:
{=MAX(ABS(C10:C21))}
A cella címét is az előzőkben leírt módszerrel keressük meg.

A legkisebb (a nullához legközelebbi) érték megkeresése
2018. június 18.

Verzió: Excel 2013, 2010, 2007

Ha olyan listánk van, melyben szerepel a nulla érték, egyszerű: =FKERES(). Ám mi a helyzet, ha nincs a listában zéró?

Hogy a példa ne legyen annyira elvont: gondoljunk a sportágakban alkalmazott (belépési, selejtező) szintidőkre, méterekre; az iskolai teszteredményekre, a normákra stb.
A példában két megközelítés található, az első az értékét, a második az értéket tartalmazó cella címét adja meg.

Látható, nagyon egyszerű pontozásról van szó.
A legkisebb érték:
{=INDEX(D9:D20;HOL.VAN(MIN(ABS(D9:D20));ABS(D9:D20);0))}
Látható tömbképletet alkalmaztunk!
A képlet eredmény a Versenyző 4 által elért pontszám (347), ez éppen 3-mal kevesebb a szükségesnél.
A képletben 4 függvény szerepel: =INDEX(), =HOL.VAN(), =MIN() és az =ABS().
Mindegyik elégszer szerepelt már itt, talán az =ABS() ritkán, de nem egy bonyolult függvény.
Egy szám abszolút értékét adja eredményül. Az abszolút értéke maga a szám, előjel nélkül.
Hogyan működik a képlet?
{=INDEX(D9:D20;HOL.VAN(MIN(ABS(D9:D20));ABS(D9:D20);0))}
Először a =MIN() megkeresi a legkisebb értéket:
INDEX($D$9:$D$20;HOL.VAN(MIN(14;21;40;3;9;7;5;12;12;23;18;4});ABS(D9:D20);0))}
Látjuk, abszolút értékek szerepelnek. Az eredmény:
INDEX($D$9:$D$20;HOL.VAN(3;ABS(D9:D20);0))}
"Megtalálta" a 3 értéket.
INDEX($D$9:$D$20;HOL.VAN(3;{14;21;40;3;9;7;5;12;12;23;18;4};0))
Ebből következik:
INDEX($D$9:$D$20;4)
És az eredmény:
-3.
De hol van ez az eredmény?

A képlet:
{=CÍM(HOL.VAN(MIN(ABS(D9:D20));ABS(D9:D20);0)+SOR(D9)-1;3)}
Látjuk, majdnem megegyezik ez előzővel, új függvény a =CÍM() és a =SOR().
A =CÍM() a megadott sor- és oszlopszám alapján szövegállandóként állítja elő a megfelelő cellacímet.
Szintaxis: =CÍM(sor_száma;oszlop_száma;[típus];[A1];[munkalapnév])
Sor_szám: a cellahivatkozásban ezt kell a sor számaként megadni.
Oszlop_szám: a cellahivatkozásban ezt kell az oszlop számaként megadni.
Típus: az eredményül kapott hivatkozás típusát határozza meg.
A típus lehet: 1, 2, 3 vagy 4.
1 vagy hiányzik: abszolút $A$1
2: abszolút sor-, relatív oszlophivatkozás A$1
3: relatív sor-, abszolút oszlophivatkozás A$1
4: relatív
A1: a hivatkozás típusát (A1 vagy S1O1) meghatározó logikai érték.
Az A1 stílus esetében az oszlopok betűkkel, a sorok pedig számokkal vannak elnevezve; S1O1 hivatkozási stílusnál az oszlopok és a sorok egyaránt számozva vannak.
Ha az A1 argumentum értéke IGAZ vagy nincs megadva, akkor a =CÍM() függvény eredménye A1 típusú hivatkozás lesz.
Ha az A1 értéke HAMIS, akkor a =CÍM() függvény eredménye S1O1 típusú hivatkozás lesz.
Munkalapnév: a munkalapnak a külső hivatkozásként használandó nevét meghatározó szöveges érték.
Például a =CÍM(1;1;;;"Munkalap2") függvény a Munkalap2!$A$1 értéket adja eredményül.
A munkalapnév argumentum elhagyása esetén a függvény nem használ munkalapnevet, és az általa eredményül adott cím az aktuális munkalap egy cellájára fog hivatkozni.
A =SOR()függvény egy hivatkozás sorának számát adja meg. Itt a hivatkozás a lista első sora: D9.
Hogyan működik a megoldás:
A képlet eleje megegyezik az előzőével, majd a =CÍM() ezt kapja:
CÍM(4+SOR(D9)-1;3)
(A lista 4. helyén áll a -3.)
CÍM(4+9-1;3)
Hozzáadja a sor számát:
CÍM(13-1;3)
Elvégezve a számítás:
CÍM(12;3)
Az eredmény:
$C$12

Leggyakrabban, legkevesebbszer előforduló értékek
2018. június 11.

Verzió: Excel 2013, 2010, 2007

Olykor előfordulhat, hogy egy listában megkeressük a legtöbbször, ill. a legkevesebbszer előforduló értéket.
A bemutatott megoldás mind szöveges értékek, mind számok esetében működik.

A móka kedvéért szöveges értékek.

A listában Albert fordul elő legtöbbször.
A képlet:
{=INDEX(B3:B18;HOL.VAN(MAX(DARABTELI(B3:B18;B3:B18));DARABTELI(B3:B18;B3:B18);0))}
Látható, hogy a megoldást tömbképlet adja, tehát Ctrl + Shift + Enter!
A képletben a =DARABTELI() függvény adja meg, hányszor szerepel egy név, valahogy így:
{4;3;2;3;3;4;3;4;3;3;4;2;3;3;1}
Ez azt jelenti, hogy a lista első cellájában (B3) álló név (Albert) négyszer, a második (Béla) háromszor fordul elő, és így tovább.
A =MAX() függvény eredmény a legnagyobb szám, esetünkben ez 4.
A =HOL.VAN() függvény feladata, hogy megkeresse a 4 érték (a legnagyobb érték!) pozícióját.
Esetünkben ez 1, mert a 4 első előfordulása az első a tartományban (B3:B18).
Az =INDEX() ennek a cellának az értékét adja meg, esetünkben ez Albert.
Az egész:
INDEX(B3:B18;HOL.VAN(MAX(DARABTELI(B3:B18;B3:B18));DARABTELI(B3:B18;B3:B18);0))
INDEX($B$3:$B$18;HOL.VAN(4;DARABTELI(B3:B18;B3:B18);0))
INDEX($B$3:$B$18;HOL.VAN(4;{4;3;2;3;3;4;3;4;3;3;4;2;3;3;1};0))
INDEX($B$3:$B$18;1)
Albert

A legkevesebbszer előforduló érték az egyszer szereplő Pali.
A képletben a =MAX() helyett értelemszerűen a =MIN() szerepel:
{=INDEX(B3:B18;HOL.VAN(MIN(DARABTELI(B3:B18;B3:B18));DARABTELI(B3:B18;B3:B18);0))}
Még egyszer: a megoldás számokkal és szöveges értékekkel működik.

Összegek egy adott oszlopig
2018. június 4.

Verzió: Excel 2013, 2010, 2007

Induljunk ki abból, hogy egy táblázatban nyomon követjük az értékesítések eredményeit. Az első oszlopban a termékek neve, majd a következőkben az egyes időszakok (napok, hetek, hónapok stb.) állnak. Az utolsó oszlopban akarjuk meghatározni, mennyi a kiválasztott időszak összege.

Azaz olyan képletre van szükségünk, mely a kiválasztott dátumtól függően csak azokat az oszlopokat összegzi, melyek a kezdő időszaktól addig terjednek.

(Az ábra miatt csak egy félév szerepel a 2. sorban (C2:H2).)
Az I2 cellába az Érvényesítés megoldással vigyük be a hónapok neveit.
A képletnek az I oszlopban azoknak a tartományoknak az összegeit kell soronként megadnia, melyek az első oszloptól (az első időszaktól) a kiválasztott hónapig tart, azaz a lenyíló hónap nevéig bezárólag.
Ezt a nevet az =INDEX() függvény segítségével határozzuk meg.
A függvényről már nagyon sokszor volt szó, legutóbb itt.
A meghatározás szerint az =INDEX() táblázatban vagy tartományban található érték hivatkozását vagy értékét adja eredményként.
Magyarul: akkor használjuk, ha ismerjük (vagy ki tudjuk számítani) egy elem pozícióját egy tartományban és meg akarjuk kapni az elem tényleges (aktuális) értékét.
Elsőre ez nagyon egyszerűnek látszik, de ha rákapunk és megérezzük a valódi lehetőségeit, számításainkban, adataink elemzésében és prezentálásában jelentős változásokat érhetünk el.
A függvénynek két alakja van:
a tömbös forma, amely adott cella vagy cellatömb értékét adja eredményül,
a hivatkozásos forma, amely adott cellák hivatkozását adja eredményül.
Tömbös forma
=INDEX(tömb;sor_szám;[oszlop_szám])
Tömb: cellatartomány vagy tömbállandó.
Sor_szám: a tömbben annak a sornak a száma, amelyikből az értéket meg szeretnénk kapni.
Ha a sor_szám hiányzik, akkor az oszlop_szám argumentum megadása kötelező.
Oszlop_szám: a tömbben annak az oszlopnak a száma, amelyikből az értéket meg szeretnénk kapni.
Ha az oszlop_szám hiányzik, akkor a sor_szám argumentum megadása kötelező.
A következő felhasznált függvény a =HOL.VAN(). Ezt a függvényt sem kell nagyon bemutatni, rengeteg alkalommal írtam róla.
A függvény egy olyan elem tömbben elfoglalt relatív pozícióját adja vissza, amely megadott értékkel megadott módon egyezik. Kereshetünk számot, szöveget vagy logikai értéket, hivatkozást ilyen értékre. A megtalált elem helyét adja meg, és nem magát az elemet.
Szintaxis: =HOL.VAN(keresési_érték;tábla;[egyezés_típus])
Keresési_érték: az az érték, amelynek segítségével a táblázatban a keresett érték megtalálható.
Tábla: azon értékeket tartalmazó összefüggő cellatartomány, amelyek között a függvény a keresési_értéket keresi.
Egyezés_típus: értéke -1, 0 vagy 1.
Ha az egyezés_típus: 1, azt a legnagyobb értéket keresi meg, amely egyenlő vagy kisebb, mint a keresési_érték.
Ha nincs egyezés vagy kisebb érték, akkor a #HIÁNYZIK hibaértéket adja eredményül.
A táblának emelkedő sorrendbe rendezettnek kell lennie.
Ha az egyezés_típus: -1, azt a legkisebb értéket keresi meg, amely egyenlő vagy nagyobb, mint a keresési_érték.
Ha nincs egyezés vagy nagyobb érték, akkor a #HIÁNYZIK hibaértéket adja eredményül.
A táblának csökkenő sorrendben rendezettnek kell lennie
Ha az egyezés_típus értéke 0, az első olyan értéket keresi meg, amely pontosan egyenlő a keresési_értékkel.
A táblának nem kell rendezettnek lennie.
Esetünkben a fejlécek (C2:H2) tartományban keresi az I2 cellában megadott kritériumot (keresési_értéket), eredménye az oszlophivatkozás. (Nem az oszlop száma.)
Az =INDEX() ennek alapján adja meg a hivatkozást.
Végül a =SZUM() összeadja az így meghatározott tartomány értékeit.
A példa az áprilisig tartó időszak eredményeit mutatja.

A képlet a Termék 1 esetében:
=SZUM(C3:INDEX(C3:H3;;HOL.VAN($I$2;$C$2:$H$2;0)))
Részleteiben:
=SZUM(C3:INDEX(C3:H3;;HOL.VAN($I$2;$C$2:$H$2;0)))
Ebből:
=SZUM($C$3:INDEX(C3:H3;;HOL.VAN("Április";$C$2:$H$2;0)))
Ebből:
=SZUM($C$3:INDEX($C$3:$H$3;;4))
Ebből:
=SZUM($C$3:$F$3)
225 000

Dinamikus laphivatkozások képletekben
2018. május 28.

Verzió: Excel 2013, 2010, 2007

Ha bizonyos adatok elemzéséhez, értékeléséhez önálló munkalapokat alkalmaznunk, gyakran használunk ilyen képleteket: Okt!$B$5:$B$40.
Így megtaláljuk, a kiválasztott (itt) októberi adatokat. Azonban a munkafüzet több, azonosan szerkesztett lapból áll, melyeket hasonlóan akarunk kiértékelni. Lássuk!

Mivel a lapok struktúrája azonos, elvileg a képletekben ugyanazokat a hivatkozásokat használhatjuk. Csak az a kellemetlen, hogy a hivatkozásokat minden esetben a Csere funkcióval az aktuális munkalapra kell frissíteni.
Így pl. a fenti példával: az Okt!$B$5:$B$40 Nov!$B$5:$B$40 lesz.
Ez elég körülményes, lassú és fárasztó. Mit lehetne tenni?
Az =INDIREKT() függvény kiváló megoldást jelent.
A függvénnyel itt itt foglalkoztam részletesen.
Maga a függvény az Excel egyik kereső függvénye: eredménye a szövegként megadott hivatkozás. Ez különösen akkor hasznos, ha információkat (értékeket) fűzünk össze, és így hivatkozásokat hozunk létre.
A hivatkozásokat az Excel azonnal kiértékeli és megjeleníti tartalmukat. A függvény hivatkozásának címe lehet ugyanazon vagy egy másik munkalapon.
Szintaxis:
=INDIREKT(hiv_szöveg;[A1])
Hiv_szöveg: hivatkozás olyan cellára, amely A1 vagy S1O1 típusú hivatkozást, hivatkozásként definiált nevet, vagy szöveges cellahivatkozást tartalmaz.
A1: a hiv_szöveg argumentummal hivatkozott cella hivatkozási típusát meghatározó logikai érték.
Így aztán, ha van egy munkafüzetünk, mely 13 lapból áll (Jan, Febr, Márc és így végig az év, plusz egy kiértékelő lap [Össz]), és ezen a lapon akarjuk a hónapok lapjainak B5:B40 tartományának eredményét kiszámítani (pl. összegét).
Ezért a képlet (Okt) ez lesz:
=SZUM(Okt!$B$5:$B$40). Azonban a lapokat az összesítőben (Össz) dinamikusan akarjuk kezelni.
Ehhez az kell, hogy ezen az összesítőn - mondjuk - az A1 cellában megjelenjen az éppen elemzendő munkalap neve. (Érvényesítéssel bevihetjük a hónapok neveit.)
A kiértékelendő cellába írjuk be a következő képletet:
=SZUM(INDIREKT("'"&$A$1&"'!$B$5:$B$40")).
Láthatjuk, hogy a lap nevét az INDIREKT("'"&$A$1&"'!" helyettesíti.
Az =INDIREKT() függvény az A1 cellából veszi a munkalap nevét, és egyből elérhetővé teszi az összesítő függvény (=SZUM() számára.
A képlet a több szóból (szóközökkel elválasztott) lapnevek esetében is működik, ezért az aposztróf.
A megoldás hátrányaként lehetne tartani, hogy az =INDIREKT() csak szöveges értékkel működik. (Másoláskor a szöveges érték [argumentum] nem változik.)

Melyik a szebb és olvashatóbb?
2018. május 21.

Verzió: Excel 2013, 2010, 2007

Az Excel egyre inkább beszámolók, bemutató eszköze. Nagy és fölösleges cifrázások helyett elég néhány egyszerű megoldás.
Gondolnánk, hogy van könyvelési aláhúzás? S mindjárt kétféle?

Gyakran láthatjuk (itt is), hogy adataink fejlécét aláhúzással jelenítjük meg, hogy áttekinthetőbb táblázatot kapjunk.
Valahogy így:

Nem szebb így?

Az oszlopok közötti fehér hézag olvashatóbbá teszi adatainkat.
A megoldás (csak az aláhúzásra vonatkoztatva):
A sima táblázat címsorát jelöljük ki.
Jobb egérgomb: Cellaformázás > Betűtípus > Aláhúzás.
Válasszuk: Egyszeres, könyvelési.

A többi formázásnak csak a képzelet, no meg az ízlés szab határt.

FKERES: több feltétel két oszlopban
2018. május 14.

Verzió: Excel 2013, 2010, 2007

Ha egy táblázatban keresünk egy értéket, általában az =FKERES() függvény alkalmazzuk. Ha azonban a keresett érték két feltételtől függ, segédoszlopot kell használnunk, hogy keresésünk mindkét kritériumunknak megfeleljen.
Ez azonban fölösleges és zavaró is lehet. De van megoldás!

Nézzünk egy egyszerű példát.
(Itt most nem lesz szakszerű magyarázat a költséghelyekről, elég annyi, hogy költségeinket és bevételeinket csoportosíthatjuk aszerint, hogy melyik szervezeti egység (üzem, gyár, üzletág, osztály, igazgatóság stb.) miatt merültek föl. A lényeg a megoldás.)

(Most szándékosan könyvelési számformátumot használok.)
Sejthető a feladat: egy adott költséghely/Számla kombináció eredményét akarjuk megkapni.
Ha az =FKERES() függvényt a =VÁLASZT() függvénnyel kombinálva tömbképletként visszük be, segédoszlop nélkül is megkapjuk a kívánt eredményt.
Keressük a következő kombinációt:
Költséghely: 1110-2003,
Számla: 3510.

A képlet a C 11 cellában:
{=FKERES(A11&B11;VÁLASZT({1\2};A2:A7&B2:B7;C2:C7);2;0)}
Az érdekesség persze a =VÁLASZT() függvény alkalmazása.
Lássuk a függvény lényegét!
A függvény az érték argumentumok közül az index sorszámút adja vissza.
Szintaxis: =VÁLASZT(index;érték1;érték2; …)
Index: a kiválasztott argumentumot határozza meg.
Érték1;érték2; …: az érték1 kötelező, további értékek megadása választható.
Értéke 1 és 254 közötti egész szám, képlet vagy egy 1 és 254 közötti számot tartalmazó cellára utaló hivatkozás lehet.
Az argumentumok lehetnek számok, cellahivatkozások, nevek, képletek, függvények vagy szövegek.
Akkor lássuk!

1. A =VÁLASZT() függvény: mivel tömbképletet használunk, több értéket választhatunk. A kapcsos zárójeleket kézzel írjuk be, csak a teljes képletet zárjuk a Ctrl + Shift + Enter billentyűkombinációval.
2. A két kritériumot (oszlopot) összekapcsoljuk. A tömbképlet "jóvoltából" az Excel egy oszlopként értelmezi, mintha az =ÖSSZEFŰZ() függvényt használtuk volna. Így az első sort (=A2 & B2) "1110-20001001"-ként.
3. Itt kapjuk meg az eredményt.
Levezetve:
=FKERES(A11&B11;VÁLASZT({1\2};A2:A7&B2:B7;C2:C7);2;0)ű
Megkeresi az A11 cella értékét:
=FKERES("1110-2003"&B11;VÁLASZT({1\2};A2:A7&B2:B7;C2:C7);2;0)
Megkeresi az B11 cella értékét:
=FKERES("1110-2003"&3510;VÁLASZT({1\2};A2:A7&B2:B7;C2:C7);2;0)
Összefűzi a két értéket:
=FKERES("1110-20033510";VÁLASZT({1\2};A2:A7&B2:B7;C2:C7);2;0)
A =VÁLASZT() első értékei:
=FKERES("1110-20033510";VÁLASZT({1\2};"1110-20001001";"1110-20002003";"1110-20003490";"1110-20033500";"1110-20033510";"1110-20033520";C2:C7);2;0)
A =VÁLASZT() első és második értékei:
=FKERES("1110-20033510";{"1110-20001001"\13423;"1110-20002003"\34343;"1110-20003490"\88888;"1110-20033500"\99999;"1110-20033510"\75365;"1110-20033520"\93564};2;0)
Az eredmény:
75 365,00 Ft
Sok fáradságtól kíméljük meg magunkat ezzel a trükkel.

Csatolt =FKERES() megoldás
2018. május 7.

Verzió: Excel 2013, 2010, 2007

Előfordulhat, hogy több keresést kell végeznünk egymás után. Lehet, hogy a korábbi keresések eredményesek vagy éppen eredménytelenek voltak, a rendelkezésre álló adatok nem felelnek meg egy hagyományos keresés "követelményeinek", vagy más okok miatt kell összekapcsolni több =FKERES() függvényt a =HAHIBA függvénnyel együtt.

Vegyünk egy egyszerű példát: adataink három táblázatban vannak:

A három táblázatban az egyszerűség kedvéért 5-5 termék szerepel azonosítóval (B3:C7, E3:F7, H3:I7).
A keresett termék azonosítója a B11 cellában van, az eredményt a C11 cellában várjuk.
A képlet:
=HAHIBA(FKERES(B11;B3:C7;2;0);HAHIBA(FKERES(B11;E3:F7;2;0);
FKERES(B11;H3:I7;2;0)))

Hogyan működik?
A =HAHIBA() megadott értéket ad eredményül, ha egy képlet hibát ad; ellenkező esetben a képlet eredményét kapjuk.
Segítségével megtalálhatjuk és kezelhetjük a képletekben lévő hibákat.
Az =FKERES() függvény #HIÁNYZIK hibaértéket adna, ha nem találná meg a keresett értéket.
Ha a =HAHIBA() függvénybe több =FKERES() függvényt ágyazunk be, egymást követő keresésekre nyílik lehetőség.
Mielőtt továbbmennénk, a =HAHIBA() szintaxisáról.
HAHIBA(érték; érték_ha_hiba)
Érték: argumentum, amelyet a függvény ellenőriz, hogy hibát eredményez-e.
Érték_ha_hiba: a függvény ezt az értéket adja eredményül, ha a képlet hibát eredményez.
A függvény a következő hibatípusok esetén alkalmazza ezt az értéket: #HIÁNYZIK, #ÉRTÉK!, #HIV!, #ZÉRÓOSZTÓ!, #SZÁM!, #NÉV? és #NULLA!.
Vissza a képlethez.
Ha az első =FKERES() eredménytelen (mint ebben az esetben), a =HAHIBA() észleli, és indul a második =FKERES(). Ha ez is sikertelen, megismétlődik a dolog, és így megy végig.
Levezetve:
=HAHIBA(FKERES(B11;B3:C7;2;0);HAHIBA(FKERES(B11;E3:F7;2;0);FKERES(B11;H3:I7;2;0)))
=HAHIBA(FKERES(10;B3:C7;2;0);HAHIBA(FKERES(B11;E3:F7;2;0);FKERES(B11;H3:I7;2;0)))
=HAHIBA(#HIÁNYZIK;HAHIBA(FKERES(B11;E3:F7;2;0);FKERES(B11;H3:I7;2;0)))
=HAHIBA(#HIÁNYZIK;HAHIBA(FKERES(10;E3:F7;2;0);FKERES(B11;H3:I7;2;0)))
=HAHIBA(#HIÁNYZIK;HAHIBA("T_10";FKERES(B11;H3:I7;2;0)))
=HAHIBA(#HIÁNYZIK;"T_10")
T_10

FKERES két díjtétellel
2018. április 30.

Verzió: Excel 2013, 2010, 2007

Adódhat olyan helyzet, amikor egy adatbázisban két (vagy több) azonos kalkulációt kell végeznünk, és most nem különböző árú termékek értékesítési eredményeiről van szó. Egyszerűen: =FKERES() két (vagy több) oszlopban.

Vegyük a következő helyzetet: adott egy cég, mely ügyfeleinek különböző áron (óradíjakkal) számol, ráadásul kétféle szolgáltatást végez: helyben és a vidéki kirendeltségeken, természetesen kétféle áron.

A havi kimutatás tartalmazza a végzett munkaidőt.

Keressük azt a megoldást, mellyel egyszerűen kiszámíthatjuk a partnereknek számlázandó összeget.
Kétféle díjszabásunk van (B3:D7), nevezzük el őket: díjak.
A képlet (E11 cella, Partner 1-nek számlázandó):
=FKERES(B11;díjak;2;0)*C11+FKERES(B11;díjak;3;0)*D11
Ezt húzzuk végig a tartományon (itt E15-ig)

Hogyan működik?
Minden partner esetében két =FKERES() függvény alkalmazunk, melyekben:
1. a keresési_érték a Partner (B11);
2. a tábla a díjak definiált nevű tartomány (B3:D7);
3. az oszlop_szám: 2 (a helyben végzett munkák, C oszlop);
majd az eredményt megszorozzuk a Partner számára végzett helyi munkaórák számával (C oszlop, most C11).
A második rész (=FKERES(B11;díjak;3;0)*D11) hasonló, csak itt a 3. oszlopot vettük figyelembe.
Az összeadás eredménye a számlázandó összeg.
=(5*15000)+(8*25000)
=275000

Irányított beillesztés: profi megoldások
2018. április 23.

Verzió: Excel 2013, 2010, 2007

A Másolás és Beillesztés a leggyakrabban használt Excel-feladatok egyike. Az irányított beillesztés lehetőségével meghatározható, hogy meghatározzuk, a másolt tartalom mely elemeit akarjuk beilleszteni egy adott helyre. Értékekkel és más elemekkel hajthatunk végre műveleteket. 5 tipp, melyet minden profinak illik ismernie.

Az irányított beillesztés már több bejegyzésben (mint a megoldások része) előfordult, most itt együtt olvashatók a lehetőségek.
1. Pozitív számokból negatív értékek
Ha adatokat másolunk vagy importálunk Excelbe, a negatív értékek nem mindig jelennek meg helyesen. Ha gyorsan szeretnénk a pozitív számokat negatív értékekké alakítani, a megoldás: az egyik cellába írjuk be: -1. Másoljuk le, majd jelöljük ki azt a cellatartományt, melyet konvertálni szeretnénk. Kattintsunk jobb egérgombbal, majd: Irányított beillesztés > Értékek > Szorzás.

2. Adattartomány transzponálása
Az Excel sorokból és oszlopokból áll, általában az oszlopoknak fejlécei vannak (fejléc- vagy címsor) és az adatok az alatta levő sorokba rendezettek. Ez a fajta elrendezés megkönnyíti az életet az Excelben. Ám előfordul, nem ilyen elrendezésben kapjuk az anyagot, hanem sorokba rendezve:

Az irányított beillesztés erre is talál megoldást. Jelöljük ki a tartományt, melyben a sorokból oszlopokat (vagy fordítva) szeretnénk látni. Másoljuk le: Ctrl + C.
Kattintsunk jobb egérgombbal oda, ahová el szeretnénk helyezni a transzponált adatokat. Az előző trükkben leírt módon válasszuk az irányított beillesztés lehetőséget, majd a beillesztési opciókból:

Így is lehet: Kezdőlap > Beillesztés > :
Kattintsunk az ikonra.

3. Képlet eltávolítása az eredmény törlése nélkül
Ha kiszámítottuk a cella értékét, előfordulhat, hogy nincs többé szükségünk a képletre. (Általában akkor hasznos, ha a munkalapot "idegen kezekbe" fogjuk juttatni, mondjuk egy vevőnek. Így nem láthatja a számítás mikéntjét. Persze erre vannak jobb megoldások is.)
Azért tegyük hozzá, ha csökkentjük a számítások mennyiségét, felgyorsul a munkalap (több ezernyi számításról beszélek).
Tehát ha úgy döntöttünk, nem lesz szükség a képlet(ek)re, hajrá irányított beillesztés!
Megoldás:
Másoljuk le a képleteket tartalmazó cellatartományt. Jobb egérgomb:

(Meg kell jegyezni, ezt a módszert gyakrabban használjuk fordítva: képletek, formázások helyett csak az eredményt akarjuk megkapni.)
4. Oszlopszélesség beállításának megismétlése
Kevésbé ismert megoldás. Ha a munkalap formázásakor eszünkbe jut, hogy másoljuk egyik oszlopunk szélességét, a leggyorsabb megoldás:
Jelöljünk ki egy cellát a másolandó oszlopból, másoljuk (Ctrl + C).
Jelöljük ki a megváltoztatni kívánt oszlopot:

5. Szövegből szám
Ha (letöltésekből, importból) kapunk számokat, ezek többnyire szövegek, műveletek elvégzésére nem alkalmasak. A tisztítás különböző módszerei helyett az első trükk egyik változata:
az egyik cellába írjuk be: 1. Másoljuk le, majd jelöljük ki azt a cellatartományt, melyet konvertálni szeretnénk. Kattintsunk jobb egérgombbal, majd: Irányított beillesztés > Értékek > Szorzás.
6.Adjunk pl. 10%-ot egy számhoz!
Az Irányított beillesztés párbeszédablak rengeteg számítási megoldást (műveletet) kínál.
Egyik ilyen lehet, ha egy szám százalékát akarjuk hozzáadni vagy kivonni az eredeti értékhez/értékből. Mondjuk 10%-ot akarunk hozzáadni egy értéksorhoz.
Egy cellába írjuk be: 110%. Másoljuk le, majd jelöljük ki azt a cellatartományt, melyet konvertálni szeretnénk. Kattintsunk jobb egérgombbal, majd: Irányított beillesztés > Értékek > Szorzás.

7.Adjunk értékeket már meglévő értékekhez!
Ez is hasznos megoldás lehet bizonyos esetekben: már létező értékekhez adjuk új értékeket, mondjuk az előző havi eredményeket növeljük meg az tárgyhó eredményeivel.
Jelöljük ki az új adatok tartományát, másoljuk le.
Másoljuk le, majd jelöljük ki azt a cellatartományt (múlt hónap vagy összesítés), kattintsunk jobb egérgombbal, majd: Irányított beillesztés > Értékek > Összeadás.

Az INDIREKT alkalmazása
2018. április 16.

Verzió: Excel 2013, 2010, 2007

Legutóbb az =INDEX() hatékony alkalmazásának néhány példáját mutattam be. Most négy példa a kevésbé használt =INDIREKT() függvénnyel.

Az =INDIREKT() nem olyan ismert, mint az =INDEX(), de nagyon erős megoldás, ha jól alkalmazzuk.
A példák előtt azonban némi ismertető a függvényről.
A függvény az Excel egyik kereső függvénye: eredménye a szövegként megadott hivatkozás. Ez különösen akkor hasznos, ha információkat (értékeket) fűzünk össze, és így hivatkozásokat hozunk létre.
A hivatkozásokat az Excel azonnal kiértékeli és megjeleníti tartalmukat.
A függvény hivatkozásának címe lehet ugyanazon vagy egy másik munkalapon.
Szintaxis:
=INDIREKT(hiv_szöveg;[A1])
Hiv_szöveg: hivatkozás olyan cellára, amely A1 vagy S1O1 típusú hivatkozást, hivatkozásként definiált nevet, vagy szöveges cellahivatkozást tartalmaz.
A1: a hiv_szöveg argumentummal hivatkozott cella hivatkozási típusát meghatározó logikai érték.
Ha az a1értéke IGAZ vagy nincs megadva, akkor a hiv_szöveg A1 típusú hivatkozásként értelmezett.
Ha az a1 értéke HAMIS, akkor a hiv_szöveg S1O1 típusú hivatkozásként értelmezett.
1. =INDIREKT() definiált nevekkel
Az =INDIREKT() leghatékonyabb alkalmazása definiált nevekkel történik. A definiált neveknek mint egyszerűsített hivatkozásoknak nagy hasznuk van, ha ki akarjuk aknázni a függvény lehetőségeit.
A példában a már szokásos régiók szerinti eredményeket látjuk.

A C15 tartalmazza a B15 cellában kiválasztott régió eredményeinek összegét.
Hogyan működik?
A képlet:
=SZUM(INDIREKT(B15))
A régiókat elneveztem: a C3:C12 neve Észak, a D3:D12-é Dél, az E3:E12-é Központ.
Az =INDIREKT() függvény a B15 értékét adja eredményként. Ezt az értéket szövegből hivatkozássá konvertálja, így a SZUM() összeadja a definiált névvel meghatározott cellatartomány értékeit.
Az =INDIREKT() nélkül a =SZUM() nem tudná hivatkozásként (a definiált névre!) használni aB15-ben álló értéket.
2. =INDIREKT() munkalapokra dinamikus hivatkozásként
Általában az ún. összesítő lapok esetében jöhet jól. A munkalapokon az összegzendő értékek a B3:B20 tartományban vannak, az összesítőn a definiált nevek lenyílója ugyanúgy B3.
A képlet (C3):
=SZUM(INDIREKT("""&B3&""!B3:B20"))
A képletben az aposztrófokat a munkalapok csatolására használjuk (ha a lapok neve szóközt tartalmaz, pl. Észak régió).
3. Egy sor utolsó értékei
A példával az S1O1 típusú hivatkozást mutatom be.

A képlet (F3):
=INDIREKT("S9O"&DARAB2(9:9);HAMIS)
A G3 cellában az összest bemutató sor (9) utolsó értékét adja meg. Így ha új oszlopokkal bővül a lista (Április, Május) mindig a legfrissebb eredményeket kapjuk. (Az elrendezés most nem lényeges.)
A képlet a G3 cellában: a tradicionális A1 stílus helyett az S1O1 hivatkozással numerikusan tudunk az oszlopra hivatkozni.
A DARAB2 függvénnyel megszámoljuk a nem üres cellákat a 9. sorban, így mindig az utolsó értéket kapjuk eredményként.
4. =INDIREKT() és =FKERES()
Nem lehet kihagyni egy példát az =FKERES()-sel.
Az ábra az első példa bővített változata.

Az =FKERES() a C5 cellában megkeresi Név 5 eredményét Kelet régióban.
A képlet:
=FKERES(C2;INDIREKT(C3);2;HAMIS)
A táblázatokat ismét elneveztem:
Az E3:F12 neve Kelet, a H3:I12-é Nyugat, a K3:L12-é Centrál.
A megoldás ugyanaz, mint az első példában: az =INDIREKT() átalakítja a C13 értékét hivatkozássá.
A megoldás menete:
=FKERES(C2;INDIREKT(C3);2;HAMIS)
Ez:
=FKERES("Név 5";INDIREKT(C3);2;HAMIS)
Ebből:
=FKERES("Név 5";INDIREKT("Kelet");2;HAMIS)
Megtalálja a cellatartományt:
=FKERES("Név 5";$E$3:$F$12;2;HAMIS)
A 2. oszlop:
164191

Az INDEX leghatékonyabb alkalmazásai 2.
2018. április 9.

Verzió: Excel 2013, 2010, 2007

Az Excel függvényei között vannak "agyonsztároltak" és "alulértékeltek". Az egyik ilyen méltatlanul kezelt függvény az =INDEX(), persze ehhez kellett ez a jellegtelen név is.
Folytatom a múlt heti anyagot.

Képlet: dinamikus tartomány és lenyíló lista =INDEX() függvénnyel
Gyakran előfordul, amikor elkezdjük "rendbe tenni" adatainkat, még nem tudjuk, hány adatunk is lesz.
Azaz ha egy adott oszlopban változhat a tételek száma, mondjuk A1-ről An-re, létre kell hoznunk egy definiált tartományt, melybe minden adat beletartozik.
Ilyenkor a tartomány automatikusan igazodik az oszlop celláinak megváltozott számához, ha hozzáadunk vagy elveszünk az eredetiből.
Például, van 10 elemünk (A1:A10 - ez a definiált névvel ellátott tartomány), ha most hozzáadunk egy új elemet, a tartomány automatikusan bővül: (A1:A11), ám ha meggondoljuk magunkat és töröljük az új elemet, a tartomány automatikusan visszaáll A1:A10-re.
Ennek a megközelítésnek az a nagy előnye, hogy képleteinket nem kell állandóan frissíteni, hogy a helyes tartományra hivatkozzanak.
A dinamikus tartomány létrehozásának egyik lehetősége az =ELTOLÁS() függvény használata.
Az alapmegoldás:
=ELTOLÁS(Munkalap_neve!$A$1;0;0;DARAB2(Munkalap_neve!$A:$A);1)
A képletben:
A1: a lista első elemének a cellája.
Az =ELTOLÁS() a kezdő cellától indulva meghatározott számú sort és/vagy oszlopot halad.
A =DARAB2() kiszámítja a nem üres cellák számát az oszlopban, és biztosítja, hogy csak az adatokat tartalmazó cellák kerüljenek be a definiált tartományba.
Egy másik lehetőség, ha az =INDEX() függvény használjuk a =DARAB2() függvénnyel együtt. (Hiszen erről szól a bejegyzés.)
=Munkalap_neve!$A$1:INDEX(Munkalap_neve!$A:$A;DARAB2(Munkalap_neve!$A:$A))
Az =INDEX() megkeresi adott sor és oszlop metszéspontját.
Amúgy a megoldás többi része azonos.
Nézzük a megoldást!
Az előző péda helyett egy másikat mutatok, nem valószínű, hogy a bolygók száma bővül vagy csökken, de a termékeké biztosan.

A listát elneveztem: termékek.

A hivatkozás képlete:
=Munka2!$B$2:INDEX(Munka2!$B:$B;DARAB2(Munka2!$B:$B))
Viszont a Hivatkozást nem a hagyományos megoldással (tartomány kijelölése) oldottam meg, hanem az előbb ismertetett képletet alkalmaztam. A lenyíló az Érvényesítés megoldással készült, a Forrás a definiált név.

Nem részletezem itt az INDEX/HOL.VAN kombó előnyeit, már rengetegszer volt szó róla.
Végül nézzünk egy új lehetőséget:
Egy lista készítése több listából az =INDEX() alkalmazásával
Két régió forgalmának adatait látjuk. Szinte hihetetlen, de egyetlen képlettel ki lehet számítani bármelyik kiválasztott tartomány értékeinek összegét vagy átlagát.
A megoldás menete
1) Elnevezzük a tartományokat: f_észak ésf_dél

2) Az f_észak az első és a f_dél a második tartomány, továbbá a C13 cellába írjuk a lista sorszámát.
3) A képlet:
=ÁTLAG(INDEX((f_észak; f_dél);;;C13))
Itt az =INDEX() hivatkozásos formájáról van szó, az utolsó argumentum (terület_szám jelzi, melyik tartományt akarjuk. (Ezt adja a cellahivatkozás [C13 = 1, azaz Észak forgalmának átlaga].)
Ha több listával van dolgunk, és meg akarjuk könnyíteni dolgunkat, melyik listához melyik szám tartozik, használhatjuk az Érvényesítést és a =HA() függvényt. A függvényben egyszerű neveket használhatunk, ezeket írhatjuk a listába.

A képlet:
=SZUM(INDEX((f_észak;f_dél);;;HA(C10="Észak";1;HA(C10="Dél";2))))
Ügyeljünk arra, hogy a C10 celllában szerepló név ugyanaz legyen, mint a =HA() függvényben (nincs különbség a kis- és nagybetűk között).
Hogyan működik? (Részletek)
=SZUM(INDEX((f_észak;f_dél);;;HA(C10="Észak";1;HA(C10="Dél";2))))
Ebből:
=SZUM(INDEX(Munka4!$C$4:C$$8;Munka4!$F$4:$F$10);;;HA("Észak"="Észak";1;HA(C10="Dél";2))))
Ebből:
=SZUM(INDEX(Munka4!$C$4:C$$8;Munka4!$F$4:$F$10);;;HA(IGAZ;1;HA(C10="Dél";2))))
Ebből:
=SZUM(INDEX(Munka4!$C$4:C$$8;Munka4!$F$4:$F$10);;;1))
Majd:
=SZUM(Munka4!$C$4:C$$8)
198000
Még hatékonyabban működik, ha az egészet beágyazzuk a =HAHIBA() függvénybe.
=SZUM(INDEX((f_észak;f_dél);;;HA(C10="Észak";1;HA(C10="Dél";2)))); Válassz a listából!")
Ennyit néhány =INDEX() megoldásról.

Az INDEX leghatékonyabb alkalmazásai 1.
2018. április 2.

Verzió: Excel 2013, 2010, 2007

Az Excel függvényei között vannak "agyonsztároltak" és "alulértékeltek". Az egyik ilyen méltatlanul kezelt függvény az =INDEX(), persze ehhez kellett ez a jellegtelen név is. Ugyanakkor a függvény okos megoldás, rugalmas és sokoldalú. Lássuk, miért!

A meghatározás szerint az =INDEX() táblázatban vagy tartományban található érték hivatkozását vagy értékét adja eredményként.
Magyarul: akkor használjuk, ha ismerjük (vagy ki tudjuk számítani) egy elem pozícióját egy tartományban és meg akarjuk kapni az elem tényleges (aktuális) értékét.
Elsőre ez nagyon egyszerűnek látszik, de ha rákapunk és megérezzük a valódi lehetőségeit, számításainkban, adataink elemzésében és prezentálásában jelentős változásokat érhetünk el.
A függvénynek két alakja van:
a tömbös forma, amely adott cella vagy cellatömb értékét adja eredményül,
a hivatkozásos forma, amely adott cellák hivatkozását adja eredményül.
Tömbös forma
=INDEX(tömb;sor_szám;[oszlop_szám])
Tömb: cellatartomány vagy tömbállandó.
Sor_szám: a tömbben annak a sornak a száma, amelyikből az értéket meg szeretnénk kapni.
Ha a sor_szám hiányzik, akkor az oszlop_szám argumentum megadása kötelező.
Oszlop_szám: a tömbben annak az oszlopnak a száma, amelyikből az értéket meg szeretnénk kapni.
Ha az oszlop_szám hiányzik, akkor a sor_szám argumentum megadása kötelező.
Például: az =INDEX(A1:D6;4;3) képlet eredménye az A1:D6 tartományban a 4. sor és a 3. oszlop metszéspontja, ami a C4 cella értéke.
Nézzünk egy működő példát!

A képlet:
=INDEX($C$2:$E$6;H2;H3)
Nem adtuk meg a sor-, illetve oszlop_számot, cellahivatkozásokkal (H2, H3) sokkal egyetemesebb a képlet.
Így az =INDEX() azt az értéket adja eredményként, ami a termék (H2 sor_szám) és a hónap (H3 oszlop_szám) kiválasztásával meghatározott metszéspontban áll (E5).
Látható, hogy a tömböt abszolút hivatkozással ($C$2:$E$6 adtuk meg, így könnyű a képlet másolása. (Ha a tartományt táblázattá alakítjuk, a táblázat nevét használhatjuk.
Tudnivalók
1) Ha a tömb egyetlen sorból vagy oszlopból áll, akkor a megfelelő sor_szám, illetve oszlop_szám argumentum elhagyható.
2) Ha a tömb egynél több sorból és egynél több oszlopból áll, és csak a sor_szám vagy csak az oszlop_szám argumentumot adjuk meg, akkor az =INDEX() függvény eredménye a tömb teljes sorából, illetve oszlopából álló tömb lesz.
3) A sor_szám, illetve oszlop_szám argumentumoknak a tömbön belüli cellára kell hivatkozniuk, ha nem, az =INDEX() a #HIV! hibaüzenetet adja.
Hivatkozásos forma
A hivatkozáson belüli adott sor és oszlop metszéspontjára mutató hivatkozást ad eredményül.
=INDEX(hivatkozás;sor_szám;[oszlop_szám];[terület_szám])
Hivatkozás: egy vagy több cellatartományra való hivatkozás.
Ha nem összefüggő tartományt adunk meg hivatkozásként, akkor a hivatkozást zárójelek közé kell tenni.
Ha a hivatkozás argumentumban szereplő egyes területek csak egyetlen sort vagy oszlopot tartalmaznak, akkor a sor_szám vagy az oszlop_szám argumentum elhagyható.
Ha a hivatkozás például csak egyetlen sorra vonatkozik, akkor elegendő annyit írni: INDEX(hivatkozás;;oszlop_szám).
Sor_szám: a hivatkozásban annak a sornak a száma, amelyikből az eredményhivatkozást meg szeretnénk kapni.
Oszlop_szám: a hivatkozásban annak az oszlopnak a száma, amelyikből az eredményhivatkozást meg szeretnénk kapni.
Terület_szám:a hivatkozásnak azt a tartományát jelöli ki, amelyből a sor_szám és oszlop_szám által meghatározott eredményhivatkozást meg szeretnénk kapni. (Opcionális.)
Az első kijelölt vagy megadott terület az 1-es számú, a következő a 2-es számú stb.
Ha a terület_szám argumentumot nem adjuk meg, akkor az INDEX az 1-es számú területet veszi figyelembe.
Így például az =INDEX((B2:E3;B5:E7);3;4;2) eredménye a E7 cellában álló érték, ami a 3. sor és 4. oszlop metszéspontja a második területen belül (B5:E7).

Tudnivalók
1) Ha a sor_szám vagy az oszlop_szám argumentumnak 0 (nulla) értéket ad, akkor az =INDEX() függvény a teljes oszlop, illetve a teljes sor hivatkozását adja eredményül.
2) Ha sor_szám és az oszlop_szám argumentumot nem adjuk meg, akkor a terület_szám argumentummal megadott hivatkozás lesz az =INDEX() függvény eredménye.
Ellenkező esetben az =INDEX függvény a #HIV! hibaértéket adja eredményül.
3) A sor_szám , az oszlop_szám és a terület_szám értékének a hivatkozás argumentumban szereplő cellát kell meghatároznia.
Ennyit az alapokról.
Most lássunk néhány gyakorlati példát, esetenként egyéb függvényekkel kombinálva.
Adatok
A következő példákban adatainkat táblázatba rendeztük, neve: Táblázat1. Persze táblázat nélkül is megoldható.
1. Az n-edik elem
Ez a legegyszerűbb. Ha azt akarjuk, hogy a lista egy bizonyos sorszámú elemét megkepjuk, a séma: =INDEX(tartomány;n), melyben a tartomány cellák tartománya vagy definiált névvel meghatározott tartomány, az n az elem pozíciójának száma.
Ha Excel táblázattal dolgozunk, egérrel kiválasztjuk az oszlopot, és az Excel "belehúzza" az oszlop nevét a képletbe.

Még egy példa: Keressük meg a 2. legnagyobb bolygót!
Eljárás:
Rendezzük a táblázatot az átmérő szerint, majd írjuk be a képletet:
=INDEX(Táblázat1;2;3)
Magyarázat:
tömb: a táblázat neve, itt Táblázat1.
Sor_szám: 2, mert a 2. legnagyobb bolygót keressük. (Ez a 2. sor a rendezett listában.)
Oszlop_szám: 3, mert a átmérő a 3. oszlop a táblázatban.
Egy sor vagy oszlop összes adata
Az =INDEX() arra is képes, hogy egy teljes sor vagy oszlop adatainak tömbjét adja eredményül.
Ahhoz hogy megkapjuk egy oszlop összes adatát, hagyjuk el a sor_szám argumentumot vagy állítsuk értékét 0-ra. Ugyanígy, ha az egész sorra vagyunk kíváncsiak, adjunk üres értéket vagy 0-t az oszlop_szám argumentumnak.
Ilyen =INDEX() képletet nehéz önmagában alkalmazni, mert az Excel nem képes egyetlen cellában visszaadni a tömb értékeit, helyette az #ÉRTÉK! hibaértéket kapjuk. Azonban ha más függvényekkel kombináljuk (így pl. =SZUM() vagy =ÁTLAG()) szenzációs eredményeket kaphatunk.
Így például számítsuk ki a Naprendszer bolygóinak átlagos sebességét:

A képlet:
=ÁTLAG(INDEX(Táblázat1;;4))
A képletben az oszlop_szám argumentum 4, mert a pályamenti sebesség a táblázat 4. oszlopa. Elhagytuk a sor_szám argumentumot.
Ugyanígy megtalálhatjuk a legnagyobb, ill. a legkisebb sebességet:
=MAX(INDEX(Táblázat1;;4))
=MIN(INDEX(Táblázat1;;4))
És ha ki akarjuk számítani az össztömeget (2. oszlop):
=SZUM(INDEX(Táblázat1;;2))
Gyakorlati szempontból persze ezek teljesen fölöslegesek, pl. elég a =SZUM(tartomány).
Erősebb példák
Az előzőekből úgy tűnhet, hogy az =INDEX() értékeket ad vissza, valójában azonban cellahivatkozásokat, melyek értékeket tartalmaznak.
Mivel az eredmény hivatkozás, így ún. dinamikus tartományokat hozhatunk létre. Lássuk!
Képzeljük el, hogy van egy képletünk, ÁTLAG(A1:A10), melynek eredménye az A1:A10 cellák értékeinek átlaga.
Ha nem akarjuk a tartományt közvetlenül a képletbe írni, akár az A1-et vagy az A10-et vagy mindkettőt helyettesíthetjük az =INDEX() függvénnyel. Így:
=ÁTLAG(A1:INDEX(A1:A50;10))
Mindkét képlet eredmény ugyanaz, hiszen az =INDEX() is az A10 cellára hivatkozik (a sor_szám értéke 10, az oszlop_szám argumentumot elhagytuk).
A különbség csak annyi, hogy az ÁTLAG/INDEX képlet dinamikus: ha változtatunk a sor_szám argumentumon, az =ÁTLAG változik és más eredményt ad.
Lehet hogy bonyolultnak tűnik, de néhány példa:
Kíváncsiak vagyunk az n számú legnagyobb bolygó átmérőjének átlagára:
Átmérő szerint rendezzük (a legnagyobbtól a legkisebbig) az Átmérő oszlopot, majd beírjuk a képletet

=ÁTLAG(D3:INDEX(Táblázat1[Egyenlítői átmérő, km];C13))
Két meghatározott elem közti elemek összege
Ha például ki akarjuk zárni a legnagyobb (legjobb, leggyorsabb stb.) és a legkisebb (legrosszabb, leglassúbb stb.) elemeket, azaz a max-min értékeket az átlagból, összegből, két =INDEX() függvényt kell alkalmaznunk.
A példában maradunk az átmérőnél, megadjuk a tartományt

A képlet:
=SZUM(INDEX(Táblázat1345[Egyenlítői átmérő, km];C13):INDEX(Táblázat1345[Egyenlítői átmérő, km];C14))

Részösszeg – másképp
2018. március 26.

Verzió: Excel 2013, 2010, 2007

Ha közvetlenül egy táblázatban szeretnénk megkapni egy csoport eredményeinek részösszegét, egyszerűen megoldhatjuk. Nincs szükség a =RÉSZÖSSZEG() függvényre, Kmutatásra (Pivot Table), elég a =SZUMHA() függvény, meg egy kis trükk.

Az adataink (egy kis részlet) egy képviselőkből (Név 1. Név 2 stb.) álló, területekre tagolt (Észak, Dél stb.) listában vannak, a nevekhez rendelt pontszámokkal.
Valahogy így:

Azt szeretnénk, ha az időrendben szereplő adatokat az egyes területek szerint (csoportosítva) összesítve kapjuk meg.
A megoldás:
Az adatokat a Régió alapján rendezni kell.
Menete:
1) Jelöljük ki a teljes táblázatot.
A Kezdőlap > Szerkesztés csoportban válasszuk: Rendezés és szűrés.

A párbeszédablak:

Az oszlopok szerinti rendezés során válasszuk a Régió oszlopot, a többi ablak egyértelmű.
Ne feledjük bejelölni Az adatok fejlécet tartalmaznak jelölőnégyzetet.
(Megjegyzés: kisebb táblázatnál elegendő, ha a fejlécek nélkül kijelöljük a teljes tartományt és a Rendezés (A-Z) opciót választjuk.
Megkapjuk a Régiók alapján rendezett adatokat, ám még összegeznünk kell az egyes csoportok pontszámait.
2) Az E3 cellába (az Összesen oszlopban) írjuk be a következő képletet, majd húzzuk a tartomány végéig.
=HA(B3=B2;"";SZUMHA(B:B;B3;D:D))

Megjelentek a részösszegek.
Hogyan működik a képlet?
A dolog lényegét a =HA() adja, mely azt ellenőrzi, hogy a B oszlopban szereplő érték megegyezik-e a "fölötte lévő" (azaz a megelőző) cella értékével. Ha igen, az eredmény üres (("")). Ha az értékek különböznek, a képlet "meghívja" a =SZUMHA() függvényt.
SZUMHA(B:B;B3;D:D)
Azokban a sorokban, melyeket a =HA() "mozgósított", a =SZUMHA() kiszámítja a feltételeknek megfelelő sorok D oszlopában szereplő (D:D) értékeinek összegét.
A =SZUMHA() által használt kritérium a B oszlop aktuális sorának (B3) értéke, ezt vetjük össze az oszlop többi értékével.
(Az egész oszlopos hivatkozás azért jó, mert nem kell azzal foglalkoznunk, hol kezdődik é végződik a tartomány. Viszont ebben az esetben arra kell ügyelni, ne legyenek alatta vagy fölötte adatok, mert zavar keletkezik. Bár az Excelben 1 milliónál több sor van, a tesztek azt mutatják, hogy csak a "használt tartományt" értékeli ki, azaz az A1 cella és az utolsó oszlop és sor metszéspontjában lévő cella közti tartományt.)
A megoldás igen egyszerű, további kimutatások hasznos alapja lehet.

Összegzések, munkanapok szerint
2018. március 19.

Verzió: Excel 2013, 2010, 2007

Ha értékeket szeretnénk összegezni, és a helyzet úgy hozza, hogy csak a munkanapok (így Héfő, Kedd, Szerda stb.) eredményeire vagyunk kíváncsiak (bevételek, látogatók száma stb.), használhatjuk a =SZORZATÖSSZEG() függvényt. Persze a =HÉT.NAPJA() függvénnyel együtt.

Nézzünk egy egyszerű példát:

A képlet a H3 cellában:
=SZORZATÖSSZEG((HÉT.NAPJA(dates;2)=G3)*sums)
Mielőtt belevágnék, rögtön egy kérdés. Miért nem a =SZUMHA() vagy a =SZUMHATÖBB() függvényt alkalmazom, hiszen kézenfekvőnek látszik: a hét napjai szerinti összegekről van szó.
De ne feledjük: mindenképpen szükség lenne egy segédoszlopra, melyben a napokat érték adja meg.
Így maradunk a jól bevált kedvencnél, mely a Ctrl + Shift + Enter nélkül remekül kezeli a tömböket.
(közbevetés: a könnyebb kezelhetőség kedvéért két tartományt névvel határoztunk meg, a dátumokat a B oszlopban, ez a dates és az összegeket a D oszlopban, ez a sums. A C oszlop csak a szemléltetést szolgálja.)
Vissza a képlethez:
A =SZORZATÖSSZEG() függvénynek csak egy argumentuma van, a következő kifejezés:
=(HÉT.NAPJA(dates;2)=G3)*sums)
Az eredménytáblában (F-H) a napok neve szintén csak a szemléltetés kedvéért szerepel. A =HÉT.NAPJA()függvény a nem kötelező2 argumentummal állítottuk be, hogy az 1-7 számokat kapjuk a Hétfő-Vasárnap eredmény elérésére.
A =HÉT.NAPJA()függvényről:
A dátumértéknek megfelelő napot adja eredményül. A visszaadott érték 1 és 7 közötti egész szám.
Szintaxis: =HÉT.NAPJA(dátumérték;eredmény_típusa)
Dátumérték: a keresett naphoz tartozó dátumot megadó érték.
Dátumok bevitele a =DÁTUM() függvénnyel, illetve más képletek vagy függvények eredményeként lehetséges.
Eredmény_típusa:a visszatérési érték típusát meghatározó szám.
Típusok:
1 vagy hiányzik: 1 (vasárnap) és 7 (szombat) közötti számok, a Microsoft Excel korábbi verzióinak megfelelően.
2: 1 (hétfő) és 7 (vasárnap) közötti számok.
3: 0 (hétfő) és 6 (vasárnap) közötti számok.
Az eredmény szám.
Ha a nap nevét szeretnénk megmutatni, Cellaformázás > Egyéni > nnn vagy nnnn.
A példában a függvény kiértékeli a dates definiált névvel meghatározott tartomány minden egyes értékét, az eredmény szám.
A képlet levezetése (rövidítve) a H3 cellában:
=SZORZATÖSSZEG((HÉT.NAPJA(dates;2)=G3)*sums)
A következő lépésben megadja a dátumuk sorszámát:
=SZORZATÖSSZEG((HÉT.NAPJA({43136;43137;43138;stb.};2)=G3)*sums)
Itt vannak, ezeket összeveti a G3 cellában álló értékkel:
=SZORZATÖSSZEG((HÉT.NAPJA({1;2;3;4;5;1;3;4;3;4=1)*sums)
Az eredmény IGAZ/HAMIS értékek tömbje:
=SZORZATÖSSZEG(({IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS})*sums)
Elvégzi a szorzást (a sums tartománnyal):
=SZORZATÖSSZEG(({IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS})*(100;200;300;400;500;600;700;800;900;1000})
Ennek eredménye:
=SZORZATÖSSZEG({100;0;0;0;0;600;0;0;0;0})
A végeredmény:
700
Mindez egyetlen tömbbel, a =SZORZATÖSSZEG() jóvoltából.

Megjegyzés: a megoldás természetesen a hét minden napjára érvényes, nemcsak a munkanapokra. Itt kibővítettem a napok listáját.

Helyettesítő karakterek képletekben
2018. március 12.

Verzió: Excel 2013, 2010, 2007

Ebben a bejegyzésben néhány példa olvasható a helyettesítő karakterek képletekben történő alkalmazásáról, így a keresés, összegzés, számlálás esetében, ha a cellák csak részben azonosak a keresett szöveggel.

Először lássuk a helyettesítő karakterek (wildcard characters) három típusát.
A helyettesítő karakterek szöveges értékek esetében alkalmazhatók.
Így a
? - "kérdőjel" egyetlen karaktert helyettesíthet,
pl. a Német? lehet Németh, Németi;
a * - "csillag" tetszőleges számú karaktert helyettesíthet,
így a Nemes* lehet Nemesházi, Nemesházy, Nemeslaki, Nemeslaky.
A ???? nagyon hasznos lehet: minden egyes kérdőjel egyetlen karakter helyettesít, így a ???? lehet Kiss, Nagy, Kósa, Vágó stb.
Ha a helyettesítő karaktert (? vagy *) keressük, egy "tilde" (~) karaktert kell a helyettesítő karakter elé tenni.
Így a Hol~? eredménye Hol?
Ezért a jó megoldás:
Keresett szöveg: ~?
Csere erre: ~?
Ugyanígy a csillagra is érvényes:
Keresett szöveg: ~*
És ha a tildét keressük, írjuk le kétszer: "~~".
1) Helyettesítő karakterek és az =FKERES()
A függvény az Excel legismertebb függvénye. Helyettesítő karakterekkel könnyen végezhetünk keresést, ha a szöveg közelítő egyezése megfelel céljainknak.
A példában a képletet a C11 cellába írtuk.
Az összefűzés (&) arra szolgál, hogy a B11 cellában kiválasztott helyszint összefűzzük a csillag helyettesítő karakterrel.
A képlet:

=FKERES(B11&"*";$B$2:$C$7;2;HAMIS)
2) Helyettesítő karakterek: =DARABTELI() és =SZUMHA()
A =DARABTELI() és =SZUMHA() is igen gyakran alkalmazott függvény, így szintén hasznos lehet a helyettesítő karakterek alkalmazása.
A példa egy kimutatás, az ID oszlopban az első két betű a munkatárs nevét határozza meg.
Nem érdekel bennünket a kódolás többi része, csupán a munkatársa teljesítményére vagyunk kíváncsiak, azaz HÁNY? akciója volt és MENNYIT? eredményezett.

A képletek:
C11:
=DARABTELI(B2:C7;B11&"*")
A =DARABTELI() függvény megadja a DÉ nevű munkatárs akcióinak számát. Az előző példához hasonlóan az összefűzés (B11 cella értéke + *) adja a kritériumot.
D11:
=SZUMHA(B2:B7;B11&"*";C2:C7)
A munkatárs akciói értékének kiszámításához a =SZUMHA() függvényt alkalmaztuk.
3) Cellák száma, ha egy adott karaktermennyiséget tartalmaznak
A példában képzeljünk el egy olyan listát, melyben az azonosítók hossza 5 karakter. Arra vagyunk kíváncsiak, vajon nincs-e hiba a rendszerben. (Persze nagy mennyiségről van szó.)

Az eredmény azt mutatja, hogy 2 hibás elemünk van, hiszen a =DARABTELI() eredménye 4. (Összesen 6 ID szerepel a listában.)
A képlet:
=DARABTELI(B2:B7;"?????")
De melyik ez a két hibás tétel?
Most jön a feltételes formázás.
A képlet némileg eltér az előzőtől:

=DARABTELI(B2;"<>?????")
Mivel feltételes formázásról van szó, csak egy cellára hivatkozik, ez a B2, a tartomány első cellája.
A "<>" szimbólum a NEM EGYENLő operátor, ezt fűztük össze az öt kérdőjellel.
Vörösre formáztuk azokat a cellákart, melyek nem 5 karaktert tartalmaznak.
Megjegyzés
Természetesen egyből megkapjuk a hibás cellák számát, ha a képlet hasonló a fentihez:

A képlet:
=DARABTELI(B2:B7;"<>?????")

Arány kiszámítása egyszerűen
2018. március 5.

Verzió: Excel 2013, 2010, 2007

Az arány két azonos mértékegységben kifejezett mennyiség közötti viszony, amely alapvetően a mérés útján történő összehasonlításból állapítható meg.
Az arányt hányados alakjában fejezzük ki, az így kapott eredmény elnevezése aránymutató. Például: 10 méter / 6 méter = 5/3. (Forrás: itt.)

Olykor szükség lehet két mennyiség arányának gyors kiszámítására.
Néhány egyszerű módszer:
1) Sima osztás
Akkor használhatjuk, ha a nagyobb mennyiség osztható a kisebbel.
Egyszerű példa: 10:2

A képlet:
=B2/C2&":"&"1"
Hogyan működik?
Egyszerűen a 10-et elosztottuk 2-vel. Ennek az osztásnak az eredménye 5. Így 10 "osztva 2-vel" helyett 5-öt kaptunk, és a 2 helyett 1-et használunk.
Amit érdemes megfigyelni, az ez & jel.
Az és (&) számítási operátor lehetővé teszi, hogy függvény használata nélkül kapcsoljunk össze szöveges elemeket.
Az értékeket idézőjelek között használjuk.
A megoldás előnyei:
1. Egyszerű használat.
2. Könnyen érthető.
A megoldás hátrányai:
1. Csak bizonyos esetekben alkalmazható.
2. Ha a nagyobb összeg nem osztható maradék nélkül, nem használható (az "1" miatt).
2) Az =LKO() függvénnyel
Érdekes, hogy az Excelben nincs olyan függvény, ami az arányt számolná, de itt az =LKO(), ez elég közeli.
Az =LKO() két vagy több egész szám legnagyobb közös osztóját adja meg.
A legnagyobb közös osztó az a legnagyobb egész szám, amellyel szám1, szám2 stb. maradék nélkül osztható.
A megoldás ismét némi" összefűzéssel dolgozik.

A képlet:
=B2/LKO(B2;C2)&":"&C2/LKO(B2;C2)
Hogyan működik?
Elsőre bonyolultnak tűnik, de valójában egyszerű.
Bontsuk két részre:
1. érték:
=B2/LKO(B2;C2)&":"&C2/LKO(B2;C2)
2. érték
=B2/LKO(B2;C2)&":"&C2/LKO(B2;C2)
Mindkét részben nevezőként szerepel az =LKO() függvény, azaz a két érték legkisebb közös osztója.
Így ezt a két értéket osztjuk egymással, és egy kis összefűzéssel már meg is kapjuk az eredményt. (Ismét eljutottunk az 5:1 osztáshoz.)
A megoldás előnyei:
1. Dinamikus képlet.
2. Könnyen alkalmazható.
A megoldás hátrányai:
1. Az =LKO() csak egész számokkal működik (a nem egész számokat a függvény egésszé csonkítja).
3) A =HELYETTE() & =SZÖVEG() függvénnyel
Két függvénnyel "megbolondítva". (Igen, a =SZÖVEG() is alkalmazható az arány kiszámítására.)

A képlet:
=HELYETTE(SZÖVEG(B2/C2;"#####/#####");"/";":")
Hogyan működik?
A szemléltetés miatt változtattam az értékeken, így nem látszik olyan egyértelműnek a dolog. Rögtön feltűnik, hogy a két érték osztás utáni eredmény nem egész szám (70/15=4,666667).
Lássuk:
=HELYETTE(SZÖVEG(B2/C2;"#####/#####");"/";":")
=HELYETTE(SZÖVEG(70/C2;"#####/#####");"/";":")
=HELYETTE(SZÖVEG(70/15;"#####/#####");"/";":")
=HELYETTE(SZÖVEG(4,666666666667;"#####/#####");"/";":")
=HELYETTE(SZÖVEG("14/3";"#####/#####");"/";":")
Egy pillanat, a =SZÖVEG() függvényről:
a függvény értéket alakít át adott számformátumú szöveggé.
Szintaxis
=SZÖVEG(érték;formátum_szöveg)
Érték: számérték vagy számértéket adó képlet, illetve számértéket tartalmazó cella hivatkozása.
Formátum_szöveg: egy numerikus formátum idézőjelbe tett szöveges karakterlánc, például ?éééé.hh.nn? vagy ?# ##0,00?.
Így kaptuk meg a "14/3" eredményt.
Azaz a =SZÖVEG() függvénnyel elosztottuk egymással a két értéket, majd törtté formáztuk. Végül a perjelt kettősponttal helyettesítettük.
A megoldás előnyei:
1. Dinamikus képlet.
2. Könnyen érthető és alkalmazható.
A megoldás hátrányai:
1. Egyszerű értékek esetében nem jó módszer.
4) A =KEREKÍTÉS() függvénnyel
A módszer különösen hasznos tizedes számok arányának pontos kiszámítására.
A példa ugyanaz: a nagyobbik érték nem osztható maradék nélkül, de meg lehet határozni az arányt tizedesekkel.

A képlet:
=KEREKÍTÉS(B2/C2;1)&":"&1
Hogyan működik?
A képletet most is két részre bonthatjuk.
Először az osztáshoz a =KEREKÍTÉS() függvényt alkalmazzuk, egy tizedesjeggyel.
A függvényről:
Egy számot adott számú számjegyre kerekít.
=KEREKÍTÉS(szám;hány_számjegy)
Szintaxis
Szám: a kerekítendő szám.
Hány_számjegy: azt adja meg, hogy hány számjegyre kell a számot kerekíteni.
A második rész a már ismert összefűzés.
Látható a hasonlóság az előző megoldással.
A megoldás előnyei:
1. Hasznos, ha az eredményt tizedesjegyekkel akarjuk megkapni.
2. Pontosabb eredmény.
A megoldás hátrányai:
1. Nem alkalmazható minden esetben.
Az Excelben ugyan nincs függvény az arány kiszámítására, de abban az esetben, ha szükségünk van rá, találunk néhány megoldást.

SZORZATÖSSZEG, HA nélkül
2018. február 26.

Verzió: Excel 2013, 2010, 2007

A =SZORZATÖSSZEG() függvényről már nagyon sokszor volt szó, legutóbb éppen itt.
Közismert, hogy a függvény tömböket tud kezelni, most egy érdekes megoldást mutatok be.

A példában egy vállalkozás készlete látható, melyek különböző raktárakban vannak. A leegyszerűsített táblázat a kötelező adatok (a raktár és a termék kódja) mellett, melyekre most igazából nincs szükségünk, a termékek nevét, mennyiségét és a csomagolási egység súlyát tartalmazza.
A táblázatból szeretnénk megtudni, hány kg van egy adott termékből (mennyiség*csomagolási egység súlya).
Mindezt egy Érvényesítéssel megoldott lenyíló segítségével, mellyel a terméket lehet kiválasztani.
Valahogy így:

A termék nevét a D2 cellában lehet kiválasztani, azaz ha a B minőségű rizst választjuk, meg kell kapnunk a teljes mennyiséget (az egységek szorzata az egységek súlyával).
Látható, hogy a termék neve itt kritériumként/feltételként szerepel.
(Az ábrán jelöltem a megfelelő sorokat.)
A képlet:
=SZORZATÖSSZEG(--(D5:D17=D2);F5:F17;G5:G17)
Így ha kiválasztunk egy terméket, csak azoknak a celláknak az adatait kapjuk meg, melyek megfelelnek a kritériumnak (D2).
Hogyan működik?
A példában három tömb van, így kapjuk meg a szorzatok összegét.

1. A feltétel
Tömböt hoztonk létre, mely elllenőrzi a termék nevét, ellenőrzi a D oszlopban (Termékek) az értékeket és IGAZ értéket ad, ha az egyezik a keresett értékkel, ellenkező esetben az érték HAMIS
Így:
=SZORZATÖSSZEG(--({IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ});F5:F17;G5:G17)
2. a két mínuszjel
A következő lépésben az IGAZ/HAMIS értékeket numerikus értékekké, azaz 1 és 0 értékekké kell alakítanunk. Erre alkalmazzuk a "két mínuszjel trükköt".
Erről is volt már szó, röviden a lényeg:
Közismert (bocsánat!), hogy a mínuszjel használata egy képletben az eredmény előjelének megváltoztatását is eredményezheti, így például a pozitív előjelből negatív lesz.
De milyen eredménnyel jár két mínuszjel?
A két mínusz a képletben az IGAZ értéket "1" értékké, a HAMIS értéket "0" értékké alakítja.

Ebben a kis példában a B2 cellában lévő képlet =(10>5). Mivel a feltétel igaz, az eredmény IGAZ.
A B3 cellában a képlet =--(10>5). Mivel a feltétel továbbra is igaz, az eredmény "1" -- a két mínuszjel "jóvoltából".
(A B5 és B6 cellában a HAMIS bemutatója.)
A képletekben használt két mínuszjel nincs hatással más eredményre, csak az IGAZ vagy HAMIS értékeket módosítja.
Ezt a technikát leggyakoribban a SZORZATÖSSZEG függvénnyel, mellyel több kritérium alapján adunk össze adatokat, együtt szokás alkalmazni. Ezt történt itt is.
=SZORZATÖSSZEG(--({1;0;0;0;0;0;1;0;0;0;0;0;1});F5:F17;G5:G17)
3. A tömbök összeszorzása
Miután elvégeztük az átalakítást, elvégezhető a szorzás. (Még egyszer: a 0-val történő szorzás eredménye 0.)
A lényeg
Ezzel a módszerrel megtakarítható a =HA() függvény alkalmazása, a számítás egyetlen cellában végrehajtható.

SZORZATÖSSZEG, több oszlopban
2018. február 19.

Verzió: Excel 2013, 2010, 2007

A =SZORZATÖSSZEG() legtöbb példája azt mutatja be, hogyan lehet számok listáját valamilyen kritérium szerint kiértékelni. A meghatározás szerint: megadott tömbök megfelelő elemeit szorozza össze, majd kiszámolja a szorzatok összegét..

Lássunk egy rugalmasabb megoldást
Egyetlen példát mutatok, havi értékesítési adatok, a termékeket az Érvényesítés megoldásával lehet kiválasztani a B3 cellában.

Szeretnénk, ha az eredményeket negyedéves összesítésben láthatnánk termékenként.
Előkészítés:
1) A termékeket (itt Termék1, Termék2 stb.) az Érvényesítéssel felvisszük a B3 cellába.
2) Az egyszerűség kedvéért a negyedéveket névvel határozzuk meg, nem kell a cellatartományokkal bíbelődni. Így a C7:E100 tartomány a Január - Március, azaz az 1. negyedév. (A későbbi bővítés kedvéért már most a 100. sorig terjed.) Ennek a neve: _1né. És így tovább, az utolsó (negyedik) negyedév az L7:N100 (Október - December) neve _4né. S hogy teljes legyen a dolog, a teljes év, a C7:N100 tartomány neve _teljes_év
Így az első negyedév a kiválasztott TM1 esetében:

A képen jelölöm a szereplő cellákat.
A képlet a D3 cellában:
=SZORZATÖSSZEG((B7:B100=B3)*_1né).
Mi történik?
Nagyon egyszerű:
A tömbben kiválasztottunk egy elemet, ez szerepel a B3 cellában. A =SZORZATÖSSZEG() megkeresi ezt az értéket a B7:B100 tömbben és megszorozza az azonos sorokban lévő értékek összegével. Valahogy így (a kitöltött cellákra egyszerűsítve a tartományt):
SZORZATÖSSZEG(({"TM1";"TM2";"TM3";"TM1";"TM3";"TM6";"TM1";"TM8";
"TM9";"TM3";"TM1";"TM2";"TM3";"TM4";"TM1"}="TM1")*C7.E21)

(Itt a cellatartományt használom.) Lényeges, a méretek azonosak.
SZORZATÖSSZEG(({IGAZ;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;
IGAZ;HAMIS;HAMIS;HAMIS;IGAZ})*C7.E21)

Az egyezések logikai értéke IGAZ.
SZORZATÖSSZEG(({529\327\862;0\0\0;0\0\0;stb.}))
10432

Ugyanígy járunk el a többi negyedévvel is, valamint az összesítéssel, most a TM3 termékkel:

Ha a függvénynek csak egy argumentuma van, úgy viselkedik, mint a =SZUM(), eredménye az értékek összege. (Az angolban jobban kidomborodik ez [SUMPRODUCT].

Case sensitive keresés: három módszer
2018. február 12.

Verzió: Excel 2013, 2010, 2007

Ha az =FKERES() segítségével keresünk, ismerjük a függvény korlátait, így azt is, hogy nem tesz különbséget a kis- és nagybetű között (nem case sensitive). Azaz a keresés során JÓZSI ugyanaz, mint józsi. Ez olykor gond lehet.

Így mivel nincs különbség JÓZSI és józsi között, az első találatot adja eredményül.
Lássuk!
Az irodalmi ihletésű példában Nemecsek Ernő nevét írtuk különböző módokon. (A keresztnevet elhagytam, csak bonyolítaná a helyzetet.)
A példa illusztrálása a C11:C14 cellákban található.

Két keresést alkalmaztunk: NEMECSEK és Nemecsek
Látjuk, hogy az 1. megoldás mindkét esetben rossz, míg a többi három jó.
Nézzük a képleteket!
Hagyományos (C11):
=FKERES(B9;$B$2:$C$6;2;HAMIS)
Ez a hagyományos =FKERES(), ezt kell kiváltanunk, hiszen mindig az 1. találatot adja.
1. megoldás (C12):
{=INDEX($C$2:$C$6;HOL.VAN(IGAZ;AZONOS(B9;$B$2:$B$6);0))}
Tömbképlet! A megoldás jó.
2. megoldás (C13):
{=FKERES(IGAZ;VÁLASZT({1\2};AZONOS(B9;$B$2:$B$6);$C$2:$C$6);2;HAMIS)}
Tömbképlet! A megoldás jó.
3. megoldás (C14):
=KERES(2;1/AZONOS(B9;$B$2:$B$6);$C$2:$C$6)
A három megoldásban közös elem az =AZONOS() függvény!
De mi is ez az AZONOS függvény?
A függvény a szövegműveletekhez használható függvények egyike, és nagyon MEGkülönBÖzteti a kis- és nagybetűket. (A formázási különbségeket nem veszi figyelembe.)
Két karaktersorozatot hasonlít össze, és IGAZ értéket ad vissza, ha azok teljesen megegyeznek.
Továbbá megkülönbözteti a karaktersorozatban lévő helyet.
Szintaxis
=AZONOS(szöveg1;szöveg2)
Szöveg1: az első karaktersorozat.
Szöveg2: a második karaktersorozat.
Csak két szöveget lehet összehasonlítani.
A példában az =AZONOS(B9;$B$2:$B$7) összehasonlítja a B9 cella tartalmát a B2:B6 cellák tartalmaival.
Ha a B9 cellában az áll, hogy NEMECSEK, akkor az összehasonlítások:
nemecsek vs NEMECSEK = HAMIS
NEMECSEK vs NEMECSEK = IGAZ
nEmEcSeK vs NEMECSEK = HAMIS
Nemecsek vs NEMECSEK = HAMIS és
Boka vs NEMECSEK = HAMIS
A következő tömböt kapjuk:
HAMIS;IGAZ;HAMIS;HAMIS;HAMIS.
Így már van értele a kis- és nagybetűket megkülönböztető keresésnek. Nézzük a megoldásokat!
1. megoldás (C12): INDEX/HOL.VAN, AZONOS
{=INDEX($C$2:$C$6;HOL.VAN(IGAZ;AZONOS(B9;$B$2:$B$6);0))}
Tömbképlet!
Az INDEX/HOL.VAN erejéről már rengetegszer volt szó. Itt a HOL.VAN szerepe az, hogy megtalálja a case sensitive egyezés IGAZ értékének pozícióját:
HOL.VAN(IGAZ;{HAMIS;IGAZ;HAMIS;HAMIS;HAMIS},0) eredménye 2,
Az INDEX eredménye a B2:B6 megfelelő tartalma, ami a tartomány második értéke:NEMECSEK.
2. megoldás (C13): FKERES, VÁLASZT, AZONOS
{=FKERES(IGAZ;VÁLASZT({1\2};AZONOS(B9;$B$2:$B$6);$C$2:$C$6);2;HAMIS)}
Tömbképlet!
A VÁLASZT(1\2};tömb1;tömb2) megoldásról a múl héten esettt szó. Röviden most ennyi:
Létrehozza a tábla tömböt az FKERES számára:
{HAMIS\10;IGAZ\20;HAMIS\30;HAMIS\40;HAMIS\50}
Az FKERES könnyen elbánik vele:
FKERES(IGAZ;{HAMIS\10;IGAZ\20;HAMIS\30;HAMIS\40;HAMIS\50};2;HAMIS)
És az eredmény: 20.
(Figyelem: a keresési_érték argumentum IGAZ és nem B9!)
És ha valakinek nem tetszk a Ctrl + Shift + Enter megoldás, itt a méltatlanul hanyagolt =KERES().
3. megoldás (C13): KERES, AZONOS
=KERES(2;1/AZONOS(B9;$B$2:$B$6);$C$2:$C$6)
A megoldás trükkös része az 1/AZONOS(B9;$B$2:$B$6)!
Egy tömböt hoz létre, mely vagy a #ZÉRÓOSZTÓ! hibaértékből vagy az 1 számból áll.
Ezért a 2 (keresési_értékként) elég nagy, hogy megtalálja az utolsó (és remélhetőleg egyetlen!) értéket a tömbben, azaz a case sensitive egyezést.
Levezetve:
KERES(2;1/AZONOS("NEMECSEK";$B$2:$B$6);$C$2:$C$6)
KERES(2;1/{HAMIS;IGAZ;HAMIS;HAMIS;HAMIS};$C$2:$C$6)
KERES(2;{#ZÉRÓOSZTÓ!;1;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!};$C$2:$C$6)
20

Végül meg kell jegyezni, ha azonos értékek szerepelnek, azaz több találatunk van, a 1. és 2. megoldás minden esetben az első egyezést adja eredményként, a 3. pedig az utolsót.
Azért legyünk óvatosak ezekkel a megoldásokkal, a példák inkább érdekesek, mint napi gyakorlatok.

FKERES, több oszlopban
2018. február 5.

Verzió: Excel 2013, 2010, 2007

Volt már szó arról, hogyan kereshetünk több oszlopban, több feltétel alapján, és hogyan kapunk szöveges értéket eredményként.

Most két módszert mutatok arra, hogyan lehet az =FKERES() függvénnyel adatok oszlopainak tartományából értékeket nyerni.
Az =FKERES() függvénnyel általában egy oszlopban keresünk, a függvény szintaktikája ezt sugallja. Mi a helyzet, ha több oszlop adatait akarjuk megkapni?
Két módszer: az egyik egy igen egyszerű trükkel egy másik függvény =OSZLOP() bevonásával oldja meg a problémát, a másik pedig tömbképlet.
Nézzünk egy egyszerű példát: termékeket látunk, továbbá eladott mennyiségeket öt oszlopban.
A táblázat alatt Érvényesítéssel létrehozott listából szeretnénk az egyes termékeket kiválasztani és a hozzájuk tartozó értékeket megkapni.

Az =FKERES() függvénnyel általában egy oszlopban keresünk, a függvény szintaktikája ezt sugallja. Mi a helyzet, ha több oszlop adatait akarjuk megkapni?
Az Érvényesítéssel kiválasztott termékeket megjelenítő képlet (D15):
=FKERES($C$15;$C$3:$H$12;OSZLOP(B1);0)
1)
És itt a trükk. Emlékeztetőül az =FKERES() szintaktikája:
A függvény egy tömb bal szélső oszlopában keres egy megadott értéket.
Az így kapott sorból veszi az oszlop_szám argumentummal kijelölt cellát, és ennek tartalmát adja eredményül.
Szintaxis:
=FKERES(keresési_érték;tábla;oszlop_szám;[tartományban_keres])
Keresési_érték: a tömb első oszlopában megkeresendő érték. Ez lehet érték, hivatkozás vagy karaktersorozat.
Tábla: az adatokat tartalmazó cellatartomány.
Lehet tartományhivatkozás vagy egy tartomány neve idézőjelek között.
Oszlop_szám: a tábla azon oszlopának a táblán belüli sorszáma, amelyből az eredmény meg kívánjuk kapni.
Tartományban_keres: logikai érték, amellyel a függvény pontos vagy közelítő keresését adhatjuk meg.
Ha értéke IGAZ vagy hiányzik, akkor a visszaadott érték közelítő lehet, azaz ha pontos egyezést nem talált a függvény, akkor a következő legnagyobb, de a keresési_érték argumentumnál kisebb értéket adja vissza.
Ha az argumentum értéke HAMIS, akkor az FKERES pontos egyezést keres, és ha ilyen nincs, akkor a #HIÁNYZIK hibaértéket adja eredményül.
Ha a tartományban_keres értéke IGAZ vagy hiányzik, a tábla első oszlopában lévő értékeknek növekvő sorrendben kell elhelyezkedniük, különben a függvény hibás eredményt adhat.
Mint látszik, a képletben az oszlop_szám argumentumot az =OSZLOP() függvény adja meg, mely nem a tábla része!
Emlékeztetőül a függvény:
A megadott hivatkozás oszlopának számát adja eredményül.
Így pl. az =OSZLOP(B1) képlet eredménye 2, mivel a B a harmadik oszlop.
Így aztán a képlet eredménye az első cellában (D15), melyben a Termék 8 adatait keressük:
FKERES($C$15;$C$3:$H$12;OSZLOP(B1);0), ebből
FKERES("Termék 8";$C$3:$H$12;OSZLOP(B1);0), ebből
FKERES("Termék 8";$C$3:$H$12;2;0), így az eredmény
70.
Azaz az =OSZLOP() eredménye 2, az a tartomány (tábla második oszlopa.
És a lényeg, ha a képletet jobbra húzzuk (másoljuk), az eredmény 3, 4, 5 és 6 a következő oszlopokra.
2)
A megoldás (D20) tömbképlet:
=FKERES($C$19;$C$3:$H$12;{2\3\4\5\6};0)

A képletben az oszlop_szám argumentumot tömbállandóval adtuk meg, itt a kapcsos zárójeleket kézzel írtuk be, az oszlopokat a "\" jellel választjuk el. Ezzel jelezzük az =FKERES() függvénynek, hogy ne egy oszlopot válasszon, hanem az összes felsoroltat illessze be a megfelelő oszlopba (D20:H20).
Így a termék kiválasztásakor ismét megkapjuk a korrekt értékeket. A megoldások további elemzésekhez nyújthatnak segítséget.

Keresés két keresési értékkel: három módszer
2018. január 29.

Verzió: Excel 2013, 2010, 2007

Az =FKERES() hihetetlenül hasznos, sokoldalú függvény, ám ismerjük "fogyatékosságait": csak balról jobbra működik, egyetlen keresési értékkel birkózik meg stb.
Vannak helyzetek, amikor ezeket kell leküzdeni. Erről lesz szó.

Vegyünk egy nagyon egyszerű példát: vannak régióink, havi eredményekkel, valahogy így:

A hónapokat és a régiókat érvényesítéssel adjuk meg, persze nem kapunk eredményt a két keresési_érték miatt.
Megoldás?
Legalább hármat tudok ajánlani:
1) Segédoszlop használata,
2) A =VÁLASZT() függvény alkalmazásával,
3) Az =INDEX(), =HOL.VAN() és az = operátor alkalmazása.
Kezdjük az alapokkal!
1) Segédoszlop használata
A bonyolultabb vagy annak tűnő feladatok megoldásának egyik gyakran alkalmazott módszere a feladatok apró részekre bontása. Esetünkben arról van szó, hogy a hónapokat és a régiókat egy értékké vonjuk össze, hogy létrehozzuk az FKERES() keresési_érték argumentumát. A legalkalmasabb erre az =ÖSSZZEFűZ() függvény.
Már most: az összevonást a tartomány első oszlopában kell végrehajtani, hogy ne legyen gondunk az FKERES() szintaktikájával
Így:

(A segédoszlopot persze majd elrejthetjük.)
A képlet az A 1 cellában:
=ÖSSZEFűZ(B1;C1)
Ezt húztuk le az A10-ig.
Így most már könnyen helyes képletet adhatunk meg:
FKERES(C12&C13;A2:D10;4HAMIS),
melyben
a keresési_érték: C12&C13 - FebruárDél;
a tábla: A2:D10;
az oszlop_szám: 4 - a D oszlop az ereményekkel;
a tartományban_keres: HAMIS - pontos egyezésre van szükségünk.
Segédoszlop nélkül
Előfordulhat, hogy a segédoszoppal történő megoldás nem jöhet szóba.
2) A =VÁLASZT() függvény alkalmazása
Lássuk:

A megoldás trükkös része, hogy úgy kell megalkotni a tábla tömböt, hogy a =VÁLASZT() alkalmas legyen az =FKERES() számára.
A =VÁLASZT({1\2};B2:B10&C2:C10;D2:D10) két dolgot hajt végre:
1. Egy tömbbé alakítja a hónapot és a régiót, így mint JanuárÉszak;FebruárÉszak, és így tovább. Eppenúgy, mint az előző példában az ÖSSZEFűZ() függvény.
2. A két tömböt két oszlopból egyetlen táblává alakítja az =FKERES() számára.
Ha kiértékeljük a képlet VÁLASZT
{"JanuárÉszak"\100000;"FebruárÉszak"\120000;"MárciusÉszak"\140000;"JanuárDél"\160000;"FebruárDél"\180000;"MárciusDél"\200000;"JanuárKelet"\220000;"FebruárKelet"\240000;"MárciusKelet"\260000}
Táblázatként vizualizálva:

Így nyer a képlet értelmet:
=FKERES(C12&C13;VÁLASZT({1\2};B2:B10&C2:C10;D2:D10);2;HAMIS)
FONTOS! A kapcsos zárójelekből látható, ez tömbképlet (Ctrl + Shift + Enter)!
3) Az =INDEX(), =HOL.VAN() és az = operátor

A képlet:
{=INDEX(D2:D10;HOL.VAN(1;(B2:B10=C12)*(C2:C10=C13);0))}
A képletben a két keresési_értéket (C12 és C13) egyenlőségjellel "azonosítottuk be".
Nézzük először a képlet (B2:B10=C12)*(C2:C10=C13) részét.
A B2:B10=C12 kiértékelteti, hogy B2 egyenlő-e C12-vel, és ha az eredmény igen, IGAZ logikai értéket kapunk; ha nem, HAMIS-at. És ez így folytatódik: B3=C12, B4=C12 stb.. Az eredmény egy IGAZ/HAMIS értékekből álló tömb.
A C2:C10=C13 gyakorlatilag ugyanezt végzi, csak más értékekkel (hónapok.
Ha a két tömböt, melyek IGAZ/HAMIS értékekből állnak, összeszorozzuk, csak az IGAZ*IGAZ eredménye 1 (azaz IGAZ.
Vizualizálva:

Így azonosítottuk azt a sort, melyben mindkét keresési_értéket (1=IGAZ, a megfelelő érték helye a D oszlopban az INDEX révén) megtaláltuk.
A =INDEX(D2:D10;HOL.VAN(1;(B2:B10=C12)*(C2:C10=C13);0)) eredménye
=INDEX(D2:D10;HOL.VAN(1;{0;0;0;0;1;0;0;0;0};0) eredménye
=INDEX(D2:D10;5)
180 000, a helyes eredmény.
A képletekről:
FKERES: részletesen itt,
INDEX/HOL.VAN: részletesen itt,
VÁLASZT: részletesen itt.

Csak szűrt értékek összeadása
2018. január 22.

Verzió: Excel 2013, 2010, 2007

A =SZUM() függvény talán a legtöbbet alkalmazott függvény az Excelben. Mi van azonban akkor, ha egy tartományban csak a szűrt értékeket akarjuk összegezni?
A =SZUM() nem törődik azzal, az értéket szűrjük-e vagy nem. Összeadja őket, és ennyi. Viszont vannak képletek, melyek figyelembe veszik a szűrőket, ezeket a hasznos eszközöket. Most a =RÉSZÖSSZEG() és a =ÖSSZESÍT() függvényről lesz szó.

A példában a bemutatás kedvéért egy igen apró és primitív táblázatot használok. A mondandó illusztrálására szolgál; képzeljünk a valóságban egy több száz sorból és jó néhány oszlopból álló adatbázist.

Néhány alapvető mutatóra vagyunk kíváncsiak, így a Bevétel, Kiadás összegére, maximumára, ill. minimumára, az egységek számára stb.
(Még egyszer hangsúlyozva, a valóságban hatalmas sormennyiséggel állhatunk szemben.)
Valahogy így:

Az ábrán a Város5 eredményeit látjuk.
Magyarázat:
A B oszlopban lévő számok: az egyszerűség kedvéért a felhasznált =RÉSZÖSSZEG() és a =ÖSSZESÍT() függvény argumentumait jelentik.
A C oszlopban a leírás.
Összesen két fontos adatunk van: a Bevétel és a Kiadás.
A képletek:
D3: Bevétel összesen:
=RÉSZÖSSZEG($B3;adatok[Bevétel])
Az értékeket tartalmazó táblázatnak definiált nevet adtunk: adatok. Az oszlopok fejléceit strukturált hivatkozásként alkalmazzuk.
A =RÉSZÖSSZEG() függvényről már többször volt szó.
A függvény listában vagy adatbázisban részösszeget ad eredményül.
Szintaxis: =RÉSZÖSSZEG(függv_szám; hiv1;[hiv2];...])
A függv_szám szám, értéke 1 és 11 (a rejtett értékek befoglalása esetén) vagy 101 és 111 (a rejtett értékek figyelmen kívül hagyása esetén) közötti lehet.
A részösszegképzésnél használt függvényt határozza meg a következő táblázat szerint:

A hiv1: az első névvel ellátott tartomány vagy hivatkozás, amelynek a részösszegét szeretnénk megkapni.
A hiv2;...: 2-254 tartomány vagy hivatkozás, amelyre a részösszeget ki kell számítani.
Esetünkben a függv_szám argumentumok a B oszlopban állnak, így egyszerűen kezelhető a képlet.
A többi képlethez is elegendő ez a szintaxis, hiszen még a DARAB függvény eredménye is elérhető a Bevétel oszlopból.
Az alkalmazott függvények nem igényelnek külön magyarázatot.
A megoldás előnye látható, a =RÉSZÖSSZEG() csak a szűrt értékekkel "foglalkozik".
Nézzük a 8. sor eredményeit:
Itt a 2. legjobb (legnagyobb) bevételt akarjuk látni. A felhasznált függvény az =ÖSSZESÍT().
A képlet:
=ÖSSZESÍT($B8;5;adatok[Bevétel];2).
Az ÖSSZESÍT függvény lista vagy adatbázis összesítését adja eredményül.
Két formája van:
Hivatkozásos forma
=ÖSSZESÍT(függv_szám; beállítások; hiv1; [hiv2]; ...)
Tömbös forma
=ÖSSZESÍT(függv_szám; beállítások; tömb; [k])
Függv_szám: 1 és 19 közötti szám, amely megadja, hogy a program melyik függvényt használja.

Függv_számFüggvény
1ÁTLAG
2DARAB
3DARAB2
4MAX
5MIN
6SZORZAT
7SZÓR.M
8SZÓR.S
9SZUM
10VAR.M
11VAR.S
12MEDIÁN
13MÓDUSZ.EGY
14NAGY
15KICSI
16PERCENTILIS.TARTALMAZ
17KVARTILIS.TARTALMAZ
18PERCENTILIS.KIZÁR
19KVARTILIS.KIZÁR
Látható, hogy a példában a 9 a SZUM.
Beállítások: numerikus érték, amely meghatározza, hogy a függvény kiértékelési tartományában milyen értékek legyenek mellőzve.
BeállításViselkedés
0 vagy hiányzikA beágyazott RÉSZÖSSZEG és ÖSSZESÍT függvények mellőzése
1Rejtett sorok, beágyazott RÉSZÖSSZEG és ÖSSZESÍT függvények mellőzése
2Hibaértékek, beágyazott RÉSZÖSSZEG és ÖSSZESÍT függvények mellőzése
3Rejtett sorok, hibaértékek, beágyazott RÉSZÖSSZEG és ÖSSZESÍT függvények mellőzése
4Nincs mellőzés
5Rejtett sorok mellőzése
6Hibaértékek mellőzése
7Rejtett sorok és hibaértékek mellőzése
A képletben ez 5.
Hiv1: a függvények első, több numerikus argumentumot használó argumentuma, amelyek értékét összesíteni szeretnénk.
Hiv2;...: 2-től 252-ig terjedő numerikus argumentumok, amelyek értékét összesíteni szeretnénk.
Tömböt használó függvények számára a hiv1 tömb, tömbképlet vagy hivatkozás egy cellatartományra, amelynek értékét összesíteni szeretnénk.
A hiv2 egy második argumentum, amely bizonyos függvényekhez szükséges. A hiv2 argumentum a következő függvényekhez szükséges:
NAGY(tömb;k)
KICSI(tömb;k)
PERCENTILIS.TARTALMAZ(tömb;k)
KVARTILIS.TARTALMAZ(tömb;kvart)
PERCENTILIS.KIZÁR(tömb;k)
KVARTILIS.KIZÁR(tömb;kvart)

Megjegyzések
A függvény a feltételes formázás korlátozott voltára kínál megoldást. Az adatsávok, ikonkészletek és színskálák nem alkalmasak a feltételes formázás megjelenítésére, ha a tartományban hibák lépnek fel, mivel a MIN, a MAX és a PERCENTILIS függvény a számítási tartományban fellépő hibák esetén nem működik.
A NAGY, a KICSI és a SZÓRÁSP függvény szintén akadályozza a feltételes formázás egyes szabályainak megfelelő működését.
Az ÖSSZESÍT függvénnyel viszont használhatók ezek a függvények, mivel az a hibákat nem veszi figyelembe.
Ezenkívül a függvény alkalmas különböző összesítő függvények listára vagy adatbázisra történő alkalmazására is a rejtett sorok és hibaértékek mellőzésének lehetőségével.
A példában a függvény tömbös változatát alkalmaztuk, hogy az eredményként a E11:E31 tömb második legnagyobb értékét kapjuk meg.
Mivel nagyobb számítások, összegzések esetén erre a megoldásra gyakran van szükség, a RÉSZÖSSZEG mellet érdemes az ÖSSZESÍT függvénnyel is foglalkozni.
Látjuk, a két függvénnyel elég sok mutatót megkapunk, ráadásul egyszerűen.
Itt kell szólni, az Excel táblázatok nagyszerű tulajdonságáról, az Összegsorról.
Ha a táblázat egyik cellájában állunk, a Táblázateszközök > Tervezés fülre kattintva bejelölhetjük az Összegsor opciót.

A táblázat utolsó soraként megjelenik az Összegsor. A táblázathoz adott összegsor hozzáférést nyújt az összegző függvényekhez (így pl. az ÁTLAG, DARAB vagy SZUM függvényekhez).
Az összegsor minden cellájában legördülő lista látható, így gyorsan kiszámíthatók a szükséges összegek.
Az ábrán a választott függvények: Város DARAB, Bevétel, Kiadás SZUM.

Tehát ilyen egyszerűen is hozzáférhetünk ezekhez az összegzésekhez, egy a hátrány, minden egyes alkalommal ki kell választanunk a függvényeket. Persze kisebb adatmennyiségnél ez a célszerű megoldás.

Szezám, tárulj (Alt + ↓)
2018. január 15.

Verzió: Excel 2013, 2010, 2007

Az Alt + ↓ billentyűkombináció érdekes dolgokat "tár fel". Négy gyakori lehetőség.

1) Ha egy oszlop végén vagyunk

2) Ha egy táblázat első sorában állunk, és a Szűrő aktív

Az Alt + ↓ billentyűkombináció megnyitja a Szűrő párbeszédablakot.
Az eredmény ugyanaz, mint amikor a lenyíló nyíl szimbólumra kattintunk.
3) Ha az Érvényesítés technikájával létrehozott lista egyik cellájában állunk

Az Alt + ↓ megnyitja a megtekintendő vagy beillesztendő opciókat. (Mintha a nyílra kattintanánk.)
4) Ha Kimutatás (Pivot Table) fejlécében állunk
A Kimutatás (Pivot Table) nem túl gyakran kerül szóba, de itt meg kell említeni.

Az Alt + ↓ megnyitja a kívánt Mező Szűrőjét. (Mintha a lenyílóra kattintanánk.)
Összefoglalva: az Alt + ↓ megnyitja a választott cellában rejlő elérhető opciókat (már ha vannak ilyenek.)

Dátumok, 2. rész
2018. január 8.

Verzió: Excel 2013, 2010, 2007

A legutóbbi "dátumos" bejegyzésben csak a =NAPOK() függvény szerepelt, most néhány apróság más függvényekkel.

1) A =NAPOK() függvény két dátum közötti napok számát adja eredményül.
Mint közismert, az Excel a dátumokat sorszámként tárolja, melyek alkalmasak arra, hogy műveleteket végezzünk velük.
Alapértelmezés szerint 1900. január 1. megfelelője az 1-es sorszám, míg például a 2018. január 1. dátumhoz 43101 tartozik, hiszen 43100 nappal van 1900. január 1. után.
Így számítottuk ki a különböző hónapok első napjai közötti napok számát.
1) Mi van akkor, ha két dátum között csak a munkanapok számára vagyunk kíváncsiak?
Az Excelnek két olyan függvénye van, mellyel kiszámíthatjuk a két dátum közti munkanapok számát, ráadásul automatikusan figyelembe vehetjük a hétvégeket és a meghatározott ünnepnapokat.
A) =ÖSSZ.MUNKANAP()
Az összes munkanap számát adja meg a kezdő_dátum és a vég_dátum között. Nem tartoznak a munkanapok közé a hétvégi és a munkaszüneti napok.
Szintaxis: =ÖSSZ.MUNKANAP(kezdő_dátum;vég_dátum;[ünnepek])
Kezdő_dátum: A kezdő dátum.
Dátumok bevitele a DÁTUM függvénnyel, illetve más képletek vagy függvények eredményeként lehetséges.
A 208. október 23. dátum beírására használjuk pl. a DÁTUM(2018;10;23) függvényt.
Vég_dátum: A befejező dátum.
Ünnepek: Egy vagy több dátumérték, amelyet a két dátum közötti időszakból ki kell zárni (nemzeti ünnepek, bankszünnapok stb.).
A lista lehet a dátumokat tartalmazó cellatartomány vagy a dátumértékek tömbállandója.
Egy példa: két dátum közötti munkanapok száma, a hétvége: Szombat és Vasárnap.

A táblázatban az ünnepek (E2:E6): március 15., március 30. (Nagypéntek), április 2. (Húsvéthétfő), május 1., május 21. (Pünkösdhétfő).
A képlet a D oszlopban (itt D2):
=ÖSSZ.MUNKANAP(B2;C2;$E$2:$E$6)
A függvény többnyire remekül működik, ám ha a hétvége nem Szombat vagy vasárnap, akkor baj van.
(Például a Közel-Keleten, ahol ez Péntek és Szombat, vagy az olyan munkaköröknél, melyek hatnapos héttel dolgoznak.)
B) Ennek a problémának a megoldására szolgál az Excel 2010-ben bevezetett =ÖSSZ.MUNKANAP.INTL() függvény. Az INTL. az international szóból ered.
A függvény kiszámítja a teljes munkanapok számát két dátum között úgy, hogy paramétereket alkalmaz a hétvége napjainak, illetve ezek számának a megjelölésére.
A hétvégi napok, valamint a munkaszüneti napként meghatározott napok nem munkanapnak tekintendők.
Szintaxis: =ÖSSZ.MUNKANAP.INTL(kezdő_dátum;vég_dátum;[hétvége];[ünnepek])
Kezdő_dátum, vég_dátum: a két dátum, amelyek között a munkanapok száma kiszámolásra kerül. A kezdő_dátum lehet korábbi, ugyanaz vagy későbbi, mint a vég_dátum.
Hétvége: A hétvégi napokat jelöli, amelyek nem számítanak bele a kezdő_dátum és vég_dátum közötti munkanapok mennyiségébe.
A hétvége a hétvégi napok előfordulását jelölő szám vagy karakterlánc lehet.
A hétvége számértékei az alábbi hétvégi napokat jelölik:

Ünnepek: egy vagy több nap, amely nem szerepel a munkanapok naptárában. Az ünnepnapok paraméter értéke dátumot tartalmazó cellák tartománya, illetve a napokat jelképező sorszámértéket tartalmazó tömbkonstans lehet. Az ünnepnapokat jelző dátumok és sorszámértékek sorrendje tetszőleges.
2) Akkor most egy példa, melyben a hétvége péntek és szombat.
A dátumok az előző példából vannak:

A képlet a D oszlopban (itt D2):
=ÖSSZ.MUNKANAP.INTL(B2;C2;7;$E$2:$E$6)
A képlet harmadik argumentuma (7) jelzi, hogy a hétvége péntek és szombat.
Az =ÖSSZ.MUNKANAP() függvényt arra is használhatjuk, ha meg akarjuk tudni,
3) hány hétvége van két dátum között.
Ismét az előző adatok:

A képlet a D oszlopban (itt D2):
=NAPOK(C2;B2)+1-ÖSSZ.MUNKANAP(B2;C2)
A képlet egyszerű, az összes nap +1 számából kivonjuk a munanapok számát.
Mi a helyzet akkor, ha valaki nem teljes munkaidőben dolgozik, hanem csak a hét bizonyos napjain (projektek stb.)?
Esetünkben csak kedden és csütörtökön.

Hoppá! A képlet a D oszlopban (itt D2):
=ÖSSZ.MUNKANAP(B2;C2;"1010111")
Nem a lenyílóból választható hétvégeszámot írtuk be, hanem idézőjelek között"1010111" számsorozatot.
Amikor az =ÖSSZ.MUNKANAP() függvényről volt szó, nem említettem ezt a megoldást:
A hétvégéket jelző karakterlánc érték hét karakterből áll, mindegyik a hét egy-egy napját jelöli, hétfővel kezdődően.
A 0 munkanapot jelöl. az 1 munkaszüneti napot. Csak az 1 és a 0 karakter használható a karakterláncban. Az 1111111 karakterlánc érvénytelen.
A 0000011 karakterlánc például szombatból és vasárnapból álló hétvégét jelöl.
Példánkban 0 a második (kedd) és a negyedik (csütörtök) karakter.
Ha az ünnepeket is figyelembe akarjuk venni, írjuk be a negyedik argumentumot.
4) Hétfők (vagy más napok) száma két dátum között
Ugyanezt a logikát alkalmazzuk:

A képlet a D oszlopban (itt D2):
=ÖSSZ.MUNKANAP(B2;C2;"0111111")
A képletben a 0 jelentése munkanap, az 1 munkaszüneti nap. Azaz megkapjuk az összes munkanap számát, ha a hétfő a hét egyetlen munkanapja.
Ugyanígy minden napot kiszámíthatunk.
5) Visszatérve a múlt heti bejegyzése, néhány bónusz:

A képletek a közismert függvényeket alkalmazzák, a =MA() a kulcs.

Dátumok, egy kicsit másképp
2018. január 2.
Itt az új esztendő. Bár nem nagyon foglalkozom az Excel dátumfüggvényeivel, most mégis néhány érdekes tény a dátumok világából, némi Excel-támogatással.

1) Minden január és október első napja azonos.
Így:

Három évet mutatok: a tavalyit, az ideit és 2019-et. A dátumok formátuma egyedi. A B5, B9 és a B13 cella mutatja a két dátum közötti napok számát. A képlet a B5 cellában:
=NAPOK(B3;B4)
A 273/7 eredménye pontosan 39, azaz ennyi hét van a két dátum között.
Megjegyzés: Szökőévben nem érvényes!
2) Szintén ugyanarra a napra esik április és július első napja.

Itt a két dátum kötött 91 nap van, ez pedig pontosan 13 hét.
3) Megegyezik a február és március első napja is.

Itt roppant egyszerű a dolog, mivel a február 28 napos, egyértelmű, hogy március 1-je ugyanarra a napra esik (4*7 = 28), mint február első napja. Hacsak nincs szökőév!

Látható, a 29 napos február itt is "betesz" a bűvészkedésnek.

Így aztán természetes, hogy november és március első napja is azonos.
4) Megegyezik a szeptember és december első napja is.

5) Vannak olyan hónapok, melyek első napja minden évben más napra esik, azaz soha nem kezdődik ugyanazon nappal. Ilyen a május, június, augusztus. Ezek a napok nem egyeznek az adott év többi hónapja első napjáéval sem.

Azaz idén
Január 1.: Vasárnap
Február 1.: Csütörtök
Március 1.: Csütörtök
Április 1.: Vasárnap
Május 1.: Kedd
Június 1.: Péntek
Július 1.: Vasárnap
Augusztus 1.: Szerda
Szeptember 1.: Szombat
Október 1.: Vasárnap
November 1.: Csütörtök
December 1.: Szombat
(Dőlt betűkkel az "irreguláris" napok.)
És végül:

az év azzal a nappal végződik, mellyel kezdődik!
Megjegyzés: Szökőévben ez sem érvényes!