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

#1 4. 4. 2012 06:42:10

zajicek
Člen
Registrace: 4. 4. 2012
Příspěvků: 5

Vytvořit souvislý seznam ze seznamu s nepravidel. mezerami - VYŘEŠENO

Dobrý den.
Ve sloupci A je seznam nakupovaných věcí. (např různé druhy potravin)
Ve sloupci B jsou čísla udávající, kolik čeho nakoupit. Doplňuje se cca 20% sortimentu, takže čísla v druhém sloupci jsou "jak noty na buben", náhodně.
Odesílat objednávku v tomto stavu je nepřehledné a nešikovné.
Zkoušel jsem do sloupce F dostat jména objednávaného (počty bych si dostal do G analogicky), ale nedaří se. Hlavní vlastností sloupce F je, že od řádku jedna dále bude obsazen každý, a budou tam jen jména objednávaných položek.
Kamenem úrazu je, že funkce Vlook... Hlook.. chtějí jméno v textovém tvaru v uvozovkách, nestačí jim jen odkaz na buŇku, kde je toto jméno zobrazeno.
Jsem schopen zjistit řádek dalšího jména, ale nevím o funkci, která z řádku a sloupce vytvoří odkaz. Adress je v tomto smyslu nepoužitelný, má textový výstup a ten se nedá použít v dalších funkcích, třeba match.
Díval jsem se do starších diskusí, ale zatím je chyba mezi klávesnicí a židlí.
Děkuji

__________________________________________

Značím jako vyřešené ;o)

Editoval sedlacekdan (7. 4. 2012 19:05:55)

Offline

#2 4. 4. 2012 06:59:29

Ondra.kl
Člen
Registrace: 30. 9. 2008
Příspěvků: 933

Re: Vytvořit souvislý seznam ze seznamu s nepravidel. mezerami - VYŘEŠENO

nebude jednodušší použít standardní filtr, jako podmínku zadat že ve sloupci B nesmí být nula a výsledky vykopírovat (tlačítko více voleb) do nového listu z kterého si pak vyrobíte objednávku?

Offline

#3 4. 4. 2012 07:12:49

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

Re: Vytvořit souvislý seznam ze seznamu s nepravidel. mezerami - VYŘEŠENO

Z popisu to moc zřetelné není. Chtělo by to ukázku. Co je mezi sloupcem "B" a "F"? Jméno zákazníka je pro takový seznam unikátní? - Teda jestli dobře chápu, tak máte seznam, který vyplní jednotlivý zákazník. Nevyplněné položky pak potřebujete eliminovat?


  Zatím mi to připadá jako případ pro vzorec Pro F1:- =IF(B1 = "";"";B1). Tak vzniknou jen položky ve sloupci "F", které jsou objednány. Pak stačí celý sloupec "F" načíst do paměti a vložit zpět jako hodnoty (Jen čísla a text). Posledním krokem by bylo setřídění. Buď celého souboru A1:Fx, nebo jenom F1:Fx - podle požadavku - třídíme podle "F". Do sloupce "F" stačí zadat také jen toto:


  =IF(B1="";"";1). Pak načít a vložit hodnoty + seřadit A1:Fx podle "F" (+ třeba "A") a vše co nemá jedničku ve sloupci "F" smazat.


  Lze to dělat efektivně jednoduchým makrem, ale to by jste musel dát ukázku vstupu a výstupu. Domnívám, že potřebujete nejspíš:- Jméno zákazníka + asi adresu + jmenovité objednané položky + kusy + ceny + součet cen.

Editoval neutr (4. 4. 2012 07:22:33)


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É

Offline

#4 4. 4. 2012 11:04:23

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

Re: Vytvořit souvislý seznam ze seznamu s nepravidel. mezerami - VYŘEŠENO

zajicek napsal(a)

Dobrý den.
Kamenem úrazu je, že funkce Vlook... Hlook.. chtějí jméno v textovém tvaru v uvozovkách, nestačí jim jen odkaz na buŇku, kde je toto jméno zobrazeno.

To není pravda. Chybu hledejte jinde. (např. mezery)

Jinak popis pro mne dost komplikovaný - jeden obrázek vydá za 1000 slov.

Offline

#5 4. 4. 2012 11:06:12

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

Re: Vytvořit souvislý seznam ze seznamu s nepravidel. mezerami - VYŘEŠENO

Podíval jsem se ještě jednou.

Proč nezkusíte filtr nebo kontingenční tabulku?

Offline

#6 4. 4. 2012 12:14:32

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

Re: Vytvořit souvislý seznam ze seznamu s nepravidel. mezerami - VYŘEŠENO

Jména produktů do F:

Do G spočítejte čísla řádků, ve kterých je v B vyplněná hodnota. Třeba takto:

=SMALL(IF($B$1:$B$42>0;ROW($B$1:$B$42);ROWS($B$1:$B$42)+1);ROW(A1))  
  (vložit maticově ctrl-shift-enter)

Vzorec zkopírujte dolů tažením pravého dolního rohu při stisknutém ctrl.

Hodnoty do sloupce F přetáhlete funkcí index:

=INDEX(A$1:A$50;$G1)

Určitě se hodí kontrola. Např.:

=IF(COUNTIF(B1:B50;">0") <> COUNTIF(G1:G50;">0");"Aktualizovat objednávku!!!";"")

- Kontroluje počty položek

nebo

=IF(SUM(B1:B50) <> SUM(G1:G50);"Aktualizovat objednávku!!!";"")

- Kontroluje objem položek

Offline

Zápatí