Új hozzászólás Aktív témák

  • Mutt

    senior tag

    válasz dudikpal #19052 üzenetére

    Hello,

    A lenti példára ezt a képletet tudom javasolni:
    =HAHIBA(INDEX($A$1:$A$14;ÖSSZESÍT(15;6;SOR($B$1:$B$14)/(($B$1:$B$14=E$1)*($C$1:$C$14=E$2));SOROK($E$3:$E3)));"")

    Az alábbi elven megy:

    A képlet magja a ($B$1:$B$14=E$1)*($C$1:$C$14=E$2) rész, amely a B és C-oszlopokban lévő értékeket hasonlítja össze E1 és E2-ben lévő fix értékkel, és IGAZ vagy HAMIS értékeket add vissza ott ahol vagy van vagy nincs találat. Ha logikai változókat szorzunk össze, akkor pedig 1 és 0 lesz az érték Excelben. "a" és "b" értékre keresve tehát ezt kapjuk vissza: {1;1;1;1;1;1;0;0;0;0;0;0;0;0}

    Ezek alapján tudjuk hogy mely esetekben vannak találatok, most már csak a helyük kérdéses. Ehhez jön a képbe a SOR($B$1:$B$14) rész, ez ugye ilyet ad vissza alapból: {1;2;3;4;5;6;7;8;9;10;11;12;13;14}
    Ha ezt elosztjuk azzal az eredménnyel, amellyet korábban megkaptunk - amely megmondja hogy hol van a feltételeknek megfelelő egyezés - akkor kapunk egy olyan halmazt amelyben számok (1-el való osztás eredményeként) és hibák (0-val való osztás) lesznek. A SOR($B$1:$B$14)/(($B$1:$B$14=E$1)*($C$1:$C$14=E$2)) eredménye ez lesz: {1;2;3;4;5;6;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!;#ZÉRÓOSZTÓ!}

    Most már tudjuk, hogy melyik sorban vannak a nekünk szükséges értékek már csak sorban ki kell venni őket. Erre a KICSI(halmaz;hanyadik elem) függvény az ideális, de az csak akkor műkődik ha a halmaz nem tartalmaz hibát, nekünk pedig van egy csomó #ZÉRŐOSZTÓ! hibánk benne így ez nem járható (CSE-vel megoldható lenne). Az ÖSSZESÍT egy olyan függvény, amely képes "meghívni" egyéb függvényeket és kezeli a hibákat is. Az ÖSSZESÍT(15;6;halmaz;hanyadik elem) ugyanaz mint a KICSI(halmaz; hanyadik elem) és közben kezeli a hibákat (az első paraméter a 15-ös jelenti a KICSI-t, a második pedig hibakezelést).

    Már csak azt kell megadnunk, hogy sorban az első, második, harmadik stb. elemet adja vissza a képlet.
    Ilyet sokféleképpen lehet előállítani, én gyakran ezt használom: SOROK(induló cella fixen;futó cella).
    Példánkban: SOROK($E$3:$E3), ez 1-et fog visszaadni, de ha lemásoljuk akkor már SOROK($E$3:$E4) lesz belőle és 2-es lesz az értéke.

    Ezek alapján az ÖSSZESÍT képlet teljesen így néz ki: ÖSSZESÍT(15;6;SOR($B$1:$B$14)/(($B$1:$B$14=E$1)*($C$1:$C$14=E$2));SOROK($E$3:$E3))) és az eredménye 1-es lesz mivel pont az első találat kell nekünk, amely az első sorban van.

    Meg van a sorszám már csak ki kell iratni, ehhez az INDEX(tömb;sorszám) képletet lehet használni.
    A végén egy HAHIBA függvénybe zárva az egészet eltüntethetűk az esetleges hibák.

    üdv.

Új hozzászólás Aktív témák