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

#1 14. 4. 2013 13:49:21

Hwest
Člen
Registrace: 14. 4. 2013
Příspěvků: 1

VLOOKUP nebo jiná fce ? VYŘEŠENO

Zdravím.

Možná se to někde řeší, ale nic jsem nenašel. Můžete mi poradit nebo nasměrovat na místo, kde se to již řešilo?

Potřebuji vyhledat data, ale ta jsou mnohdy obsažena ve více řádcích. Tedy:

zadám číslo výkresu "A1" a do sloupce B,C,D to vypíše hodnoty, které mám ve druhém listu. to ještě zvládnu přes vlookup. Problém je v tom, že některé výkresy obsahují další podvýkresy (B1, B2, ..).

Jak vyřešit, aby to vložilo také ty další řádky při shodě názvu.

př.

AB2000   AB2000   1   20   5
AB3000   AB3001   2   5    12
AB3000   AB3002   2   6    7
AB3000   AB3003   2   12   8
AB5000   AB5000   8   1    12

První sloupec zadávám já, ostatní to vyhledává na jiném listu. V případě že AB3000 má pod sebou podvýkresy s hodnotama (AB3001-3003), tak bych potřeboval, aby se vypsali všechny řádky včetně  hodnot - ideálně tak, že už bych nemohl zapisovat do řádků, který to vygenerovalo a zapisovat by bylo možné až do řádku na pozici AB5000.

Pravděpodobně to nepůjde přes fci vlookup? Můžete mi někdo poradit, jak tento příklad řešit?

_________________________________________
Značím jako vyřešené


;o)

Editoval sedlacekdan (2. 5. 2013 16:21:56)

Offline

#2 14. 4. 2013 18:29:08

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

Re: VLOOKUP nebo jiná fce ? VYŘEŠENO

Zřejmě by to ošetřit vzorcem šlo, ale chtělo by to mít předinstalováno mnoho řádků "dopředu". Problém by byl pak v tom, že Vaším novým zápisem by se musely vzorce přizpůsobit (protože jinak na sebe musí navazovat). Snadnější řešení by bylo "duplicitní = podobné" vzorce kopírovat do vedlejších sloupoců. Pak by se sice také musely vzorce předem nakopírovat, ale muselo by se vědět kolik je podobných údajů nejvíce.
   Myslím, že by to lépe ošetřilo makro. Zadal by se základní údaj např. AB3 a makro by pod sebe vypsalo všechny podobnosti - tedy např. AB3001 až AB3003.


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

#3 16. 4. 2013 00:53:38

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

Re: VLOOKUP nebo jiná fce ? VYŘEŠENO

Schema hledání je poměrně jednoduché. Snažší to (i efektivnější) to je s pomocným sloupcem.  Najdete číslo řádku a následně pomocí funkce INDEX vyberete potřebná data.

Klíče jsou v A$2:A$100, hledaná hodnota v A1

V buňce G2 je maticový vzorec (vkládá se trojhmatem ctrl-shift-enter)

=SMALL(IF(A$2:A$100=A$1;ROW(A$2:A$100)-ROW(A$1);100000000);ROW()-ROW($G$1))

Tento vzorec zkopírujte podle potřeby. Vrátí postupně čísla řádku s nalezeným klíčem, pokud klíč nenajde vrátí 10000000. Tak lze rozlišit, co je platná hodnota.

Alternativou může být hladání založené na funkci match:

Do I2 vložte vzorec

=MATCH($A$1;$A$2:$A$38;0)

Do I3

=MATCH($A$1;INDEX($A$2:$A$38;I2+1):$A$38;0)+I2

Poslední vzorec zkopírujte dolů podle potřeby. Nenalezené hodnoty jesou pro změnu #NA.

Dál už jen něco jako

=IF(ISNA(I2);"";INDEX($B$2:$B$100;I2))

Kontrolu, že se vypsalo všechno lze snadno doplnit pomocí funkce COUNTIF

Pokud by to mělo fungovat tak, že zapisujete v prvním sloupci klíče, je vhodnější maticová varianta s tím, že druhým parametrem funkce small bude počet předchozích výskytů klíče ve sloupci A zvětšená o 1.

Editoval lp. (16. 4. 2013 00:57:52)

Offline

Zápatí