Variant 1:
-Zistíme počet buniek ktoré spĺňajú to že v C10:C22 je hodnota z F a zároveň v D10:D22 je hodnota "ano".
-Ak je viac ako 0, napíš "ano".
-Inak zistíme počet buniek ktoré spĺňajú to že v C10:C22 je hodnota z F a zároveň v D10:D22 je hodnota "ne".
-Ak je viac ako 0, napíš "ne".
-Inak nenapíš nič (prípad prázdnej bunky v D10:D22 aj keď hodnota v C10:C22 sedí, alebo prípad ak nič nesedí).
Variant 2 (maticový vzorec Ctrl+Shift+Enter):
-Ak je v C10:C22 hodnota z F, odlož jej poradové číslo.
IF($C$10:$C$22=F10;ROW($C$10:$C$22)-9)
KDYŽ($C$10:$C$22=F10;ŘÁDEK($C$10:$C$22)-9)
To $C$10:$C$22=F10 vráti pole obsahujúce buď TRUE/PRAVDA alebo FALSE/NEPRAVDA pre každú položku.
To ROW($C$10:$C$22)-9 vráti pole poradových čísel {1;2;3;4;5...}. A tam kde bolo TRUE/PRAVDA za zachová toto číslo.
-Teraz zistíme ktoré číslo riadku v danej oblasti je posledné. Pomocou LARGE(pole čísel, číslo pozície):
LARGE(IF($C$10:$C$22=F10;ROW($C$10:$C$22)-9);1)
LARGE(KDYŽ($C$10:$C$22=F10;ŘÁDEK($C$10:$C$22)-9);1)
-No a prečítame si poslednú hodnotu z tých, ktoré spĺňajú podmienku, keď už vieme jej číslo:
INDEX($D$10:$D$22;LARGE(IF($C$10:$C$22=F10;ROW($C$10:$C$22)-9);1))
INDEX($D$10:$D$22;LARGE(KDYŽ($C$10:$C$22=F10;ŘÁDEK($C$10:$C$22)-9);1))
-Ďalej ošetríme chybu
IFERROR(INDEX($D$10:$D$22;LARGE(IF($C$10:$C$22=F10;ROW($C$10:$C$22)-9);1));"")
IFERROR(INDEX($D$10:$D$22;LARGE(KDYŽ($C$10:$C$22=F10;ŘÁDEK($C$10:$C$22)-9);1));"")
-No a na záver je už iba zbytočný REPT
=REPT(IFERROR(INDEX($D$10:$D$22;LARGE(IF($C$10:$C$22=F10;ROW($C$10:$C$22)-9);1));"");1)
=OPAKOVAT(IFERROR(INDEX($D$10:$D$22;LARGE(KDYŽ($C$10:$C$22=F10;ŘÁDEK($C$10:$C$22)-9);1));"");1)
Ten REPT/OPAKOVAT je tam len preto nech nevznikne možno neželaná hodnota 0. Ale to by ste mohol radšej cez vlastný formát odstrániť.
Proste podľa toho čo potrebujete a podľa toho aké majú byť výsledky sa potom ešte toto upravuje.
Odkrokujte si tie vzorce vo Vzorce - Kontrola vzorce - Vyhodnotiť vzorec, a uvidíte čo to robí. Vráti to poslednú položku z D10:D22, nech je akákoľvek.
citovat