Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 4. 7. 2013 15:45:48

Zoltan
Člen
Registrace: 12. 3. 2012
Příspěvků: 8

Vyhľadanie čísla - VYRIEŠENÉ

Potreboval by som šikovný spôsob vyhľadania najbližšieho vyššieho čísla v nesúvislom, ale vzostupnom rade čísiel.
je na to funkcia alebo je to jednoduchšie cez makro, za ktoré poďakujem.

VYRIEŠENÉ

Editoval Zoltan (9. 7. 2013 14:15:09)

Offline

#2 5. 7. 2013 22:00:34

lp.
Člen
Registrace: 24. 9. 2009
Příspěvků: 803

Re: Vyhľadanie čísla - VYRIEŠENÉ

Poněkud nejasný požadavek. Pokud čísla rostou, znamená to prostě nalezení dalšího čísla.

Maticový vzorec:

=INDEX(A4:$A$50; MIN(IF(ISNUMBER(A4:$A$50);ROW(A4:$A$50);100000)-ROW(A3)))

najde první číslo v oblasti A4:$A$50 (vkládá se trojhmatel ctrl-shift-enter).

Offline

#3 8. 7. 2013 09:32:07

Zoltan
Člen
Registrace: 12. 3. 2012
Příspěvků: 8

Re: Vyhľadanie čísla - VYRIEŠENÉ

Vysvetlenie k problému: mám stĺpec s intervalmi čísiel napr. 20,40,60,80,100 ....
pri zadaní napr. 78 musí nájsť najbližšie vyššie číslo t.j. 80

Offline

#4 8. 7. 2013 11:22:28

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,930

Re: Vyhľadanie čísla - VYRIEŠENÉ

Když budete chtít vrátit "hodnotu" nejblíže vyššího čísla - a za předpokladu, že jak píšete seznam stoupá po 10-ti, tak doporučuji pro vyhledávání ve sloupci A toto:

=VLOOKUP(C6+10;A1:B51;1)

Pokud hledáte ale hodnotu ve vedlejším sloupci "např: - B" (a ve stejném řádku) pak tohle :

=VLOOKUP(C6+10;A1:B51;2)

Podobně vyhledává také :

=LOOKUP(C9;A1:A51;A1:A51)

V Buňkách A1:A51 jsou čísla od 10,20.... a ve vedlejším sloupci jsou písmena. V buňce C (tedy buď C3, C6, nebo C11 podle vzorce) je zadaná hledaná hodnota a je k tomu přičteno číslo 10. Jde o to, že tyto vzorce umí najít "nejblíže nižší hodnotu" proto přičteme těch deset a dostaneme správnou - nejblíže vyšší
     Můžeme ale vyhledávat také adresu buňky s hledanou hodnotou - třeba takto :

=ADDRESS(MATCH(VLOOKUP(C11;A1:B51;1;1);A1:A51)+1;1;4)

Funkce Address - jak napovídá název najde jméno buňky a sice podle vyhledávání funkcí "Match", která vrací řádek (ten je nutno zvýšit o +1), ale hodnotu do "Match" zjišťuje funkce Vlookup. Sloupec jsem nechal bez výpočtu - tedy tvrdě číslo 1 (řádek se počítá pomocí Match).


     3lo by hledat i na mnoho způsobů jinak, například zaokrouhlit přímo číslo pomocí INT.

=INT(C15/10)+1

Tím získáme celočíselnou část podílu a zvedneme + jednu. Tohle následně zpětně vynásobíme desítkou

=(INT(C15/10)+1)+10

     Jde to ještě mnoha jinými způsoby například i pomocí COUNTIF, které vrátí například počet hodnot větších, nebo menších, nežli hledané

=COUNTIF(A1:A51;">=106")

nebo podobně s odkazem na buňku

=COUNTIF(A1:A51;"<"&C11)

    Funkce najde například nejblíže nižší - a to znamená přímo počet řádků v setříděném seznamu. Takže připočteme jedničku a vrátíme buď hodnotu v buňce - to když by intervaly mezi prvky posloupnosti nebyly stejné, a nebo výpočtem. Podobně když najdeme počet větších. Znamená to, že odeštemu z celkového počtu řádků počet větších a máme číslo počtu všech menších - odečteme jedničku.
    Ovšem přímých (nevyhledávacích) výpočtů se nabízí opravdu hodně. Například vydělit deseti, zaokrouhlit na nejblíže vyšší, a zpět násobit. Podobně vhodných funkcí je tu asi 5.


    Nemluvě o maticových vzorcích. Tyto výše uvedené postupy jsou skutečně triviální, a doufám, že je téma vyřešeno.

Editoval neutr (8. 7. 2013 11:25:33)


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#5 8. 7. 2013 12:44:28

lp.
Člen
Registrace: 24. 9. 2009
Příspěvků: 803

Re: Vyhľadanie čísla - VYRIEŠENÉ

Z původního zadání nebylo jasné, jestli jsou v řadě jen čísla, vzorec hledal první číslo v seznamu.

Pokud je tabulka se setříděnými čísly v A1:A20 a hledaná hodnota je v B1:

=INDEX($A$1:$A$20;MATCH(B1;$A$1:$A$20;1)+1)

Nejsou ošetřeny varianty, kdy hledané číslo je menší než nejmenší číslo v tabulce (vrací #NA), a kdy je číslo větší než poslední hodnota v tabulce(vrací poslední hodnotu v tabulce)

Oba případy lze ošetřit např. vhodnou volbou tabulky a validací vstupní hodnoty.

Offline

Zápatí