Countif je pro tento případ nejjednodušší cesta. Když se nad tím zamyslím, tak mne napadne totéž co "lp." Nenapsal jste například co myslíte tímto : protože testovat větší rozsah hodnot by takhle nešlo. Myslíte například místo 13 hodnot například 3000? Nebo tím myslíte počet všech položek seznamu?
Pokud máte velký seznam s mnoha položkami (obecně) tak stroj zatížíte každým typem vzorce. Jediným způsobem jak se vyhnout problému přetížení "ze vzorců navíc" je makro.
V každém jiném případě nějaké vzorce udělat musíte. V případě vzorců "COUNTIF" a očekávaným množstvím 13 různých proměnných jde pouze o 13 vzorců ať je seznam položek jak chce velký. Vzorce pro takto "malý" počet položek bych psal naráz (kopíroval) a jen přepisoval parametr hledaného čísla. Při tom bych asi ani neřešil skutečnost, že některá čísla ze 13 v seznamu být nemusí. Vzorec vrátí nulu. 13 položek se vejde na obrazovku.
Jinak by to asi bylo, když by počet hledaných proměnných přesahoval okno. Na nuly nikdo zvědavý není a tak by to chtělo seřadit. Zde už je potřeba sofistikovanější postupy. Uvedl bych 2 základní.
1. - Pomocný sloupec který vyhodnotí sloupec hledaných hodnot pomocí SMALL.
2. - Manuálně přetřídit sloupec hledaných čísel.
V obou případech je potřeba vzorec COUNTIF vnořit do podmínky IF tak aby se objevilo jen hledané číslo, nebo aby buňka zůstala prázdná (když hledané číslo v seznamu neexistuje). Je samozřejmé, že prohledávaný úsek musí být zadán pomocí absolutních adres. Příklad - vyhledávání ve sloupci C2:C2000 - 13 hledaných čísel. Vzorce umístíme do sloupce "E" - tedy v úseku E1:E13. Pokud jste zručný dá se to udělat jedním "vrzem". V žádném případě by Vám to nemělo zabrat víc nežli 2 minuty. Postup :
A. - Do E1 napíšeme vzorec "=IF(COUNTIF($C$2:$C$2000;1)=0;"";1)"
B. - Zkopírujeme obsah editačního řádku do paměti.
C. - Přepíšeme pole úseku z E1 na E1:E13 + ENTER 2x.
D. - Jsme nyní v buňce E2 a dáme Ctrl+V.
E. - Přepíšeme v editačním řádku 1 na 2 (je tam 2x přepis)
F. - Entrem se přesuneme do E3 a pokračujeme stejným způsobem až do čísla 13.
.......................
G1. - Nakonec úsek E1:E13 setřídíme. Teprve nyní opustíme tento úsek - je hotovo.
G2. - Místo manuálního přetřídění podobně provedeme ve sloupci "F" vzorec "=SMALL($E$1:$E$13;1)".
Pokud je hledaných čísel mnoho postupujeme buď místo zadání hledaného čísla vyjádřením řádku. Tedy například "=IF(COUNTIF($C$2:$C$2000;ROW())=0;"";ROW())". Tohle ale kopírujeme klasicky. (Nikoliv z příkazového řádku). Za ROW() se doplní číslo řádku jako hledaný parametr. Pokud tento vyhledávací seznam začíná nikoliv na prvním řádku, ale například na druhém zadáme "=IF(COUNTIF($C$2:$C$2000;ROW()-1)=0;"";ROW()-1)". Tento systém se ale nesmí třídit. Načítá vždy aktuální řádek a proto to vypadá, že třídění nefunguje.
Jinou cestou je konstrukce která už třídit jde. Původní vzorec "=IF(COUNTIF($C$2:$C$2000;1;"";1)" Rozebereme do více buněk :
1. buňka (E1) - obsahuje samostatně "=" (když tam něco k tomu bude - vyskočí chyba)
2. buňka (F1) - obsahuje "IF(COUNTIF($C$2:$C$2000;"
3. buňka (G1) - obsahuje "číslo 1" (to se bude v dalších řádcích inkrementovat)
4. buňka (H1) - obsahuje ";"";"
5. buňka (I1) - obsahuje "číslo 1" (to se bude v dalších řádcích inkrementovat)
6. buňka (J1) - obsahuje ")"
7. buňka (K1) - obsahuje "vzorec =E1&F1&G1&H1&I1&J1&"
Toto zkopírujeme podle počtu proměnných (hledaných čísel). Kopírované řádky G1 a I1 budou mít připočítávání př: do G2 je dán vzorec =G1+1 a podobně do I2 je dán vzorec =I1+1.
Ve sloupci "K" máme zpětně poskládané vzorce které všechny naráz načteme do paměti a vložíme zpět jen jako čísla a text. Úsek máme stále vybraný a dáme dialogem "Najít a nahradit" rovnítko které nahradíme zase rovnítkem. Stiskněte NAHRADIT VŠE (ve vybraném úseku) a z textu se naráz stanou vzorce.
Domnívám se, že jste neuvedl pro Vás podstatnou záležitost. Countif funguje jak má, ale výsledek je nepřehledný když je hledaných čísel mnoho a konstrukce přehledného řešení je složitá.
Editoval neutr (21. 4. 2015 06:19:54)
Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ