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

#1 28. 5. 2014 17:58:56

milky
Člen
Registrace: 28. 5. 2014
Příspěvků: 5

Podmínky pro výpis do dalšího sloupce (VYŘEŠENO)

Dobrý den, mohl by mi prosím někdo poradit když mám databázi kategorií kde je hierarchie rozdělena pomocí interních kódů a já bych je potřeboval přeformátovat na čísla.

mělo by to být "do D2:D495 zapsat hodnotu z B2:B495 jestliže je C2:C495 stejná jako A2:495"

viz obrázek https://www.dropbox.com/s/rn66o334jibta … abulky.png

To očíslování co mám ve sloupci D je špatně...

Mnohokrát díky za rady.

Editoval milky (1. 6. 2014 13:53:25)

Offline

#2 28. 5. 2014 20:59:41

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

Re: Podmínky pro výpis do dalšího sloupce (VYŘEŠENO)

- Tedy po pravdě čtu zadání nejméně po sedmé a je to stále větší rébus. Co je databáze kategorií? Databáze je samo o sobě pojem, který s Calcem moc společného technicky nemá. Jde o "Base" nebo o Calc?
- Druhá věta je asi nejméně mataoucí - Jde o podmínku, kterou lze vyjádčit : IF (C2:C495 = A2:A495;D2:D495=B2:B495;abc?) - matice?. Jenomže to má smysl jen když známe úseky [x(y)2 : X(y)495]. Na zjištění úseku je potřeba dotaz : tedy zřejmě C2(až C 495)=A2(až A 495) - to lze například pouze jednotlivě - jen řádek po řádku : IF(C2=A2;Například ano = 1, nebo ne = 0). Konstrukce podle popisu vede na maticové vzorce, respektive na pomocné sloupce a další doplňující konstrukce.
     Vrchol všeho je hláška " To očíslování co mám ve sloupci D je špatně... ".
Porovnávání hodnot je obtížný problém - jde pouze o "string" - tedy dotaz jen na úrovni "=". Ani jediná dvojice hodnot z obrázku neodpovídá rovnítku. Co se má vyhodnotit? "Interní kód" proti "ködu nadřízené kategorie"? Mohou být stejné ("=")?
     Já bych to viděl na vyhodnocení sufixů, nebo prefixů. Zase vidím v ukázce "ID kategorie" a "Nadřízená" čísla" - kriste pane jaká je relace mezi "text jako string" a "číslo kategorie"?
     Asi by to chtělo dotaz primitizovat. Sloupec "A" a sloupec "C" vypadají jako "GUID" (unique reference number used as an identifier). Dá se najít rovnítko? - Asi ne. Popište problém jinak.


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 29. 5. 2014 00:23:56

milky
Člen
Registrace: 28. 5. 2014
Příspěvků: 5

Re: Podmínky pro výpis do dalšího sloupce (VYŘEŠENO)

Forum_openoffice_dotaz.png

je to lepší takto? jak bych to popsal... Je to export databáze kategorií produktů z CMS (fastcentrik), který používá takovéto ID (to co je ve sloupci A Kod), vedle něj jsem vytvořil sloupec B id kategorie kde jsem očísloval jednotlivé kódy budoucím id pro nový CMS (prestashop).

Potřebuji aby se sloupec C "kod nadrizene" kategorie porovnal se sloupcem A a podle toho kde je shodný v řádku, do sloupce D "id nadrizene" zapsal číslo které je v tom samém řádku ve sloupci B.

Normálně v Calcu nepracuji ale teď bych to potřeboval kvuli importu do nového CMS, z Calcu to uložím jako .csv a mohu to importovat krz webové rozhraní.

Offline

#4 29. 5. 2014 05:56:29

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

Re: Podmínky pro výpis do dalšího sloupce (VYŘEŠENO)

To už je jiné kafe. Vyhledání lze provést několika způsoby. Například pomocí funkce MATCH, které vrátí číslo řádku. To je ale potřeba rozšířit - například pro úsek A1:A100 takto :

=MATCH(C1;$A$1:$A$100;0)

To však asi nestačí a je potřeba k číslu řádku doplnit vzorec, který vrátí přímo hledanou hodnotu - třeba takhle, nebo pomocí jiné funkce :

="=B"&MATCH(C1;$A$1:$A$100;0)

Výsledkem je například výraz "=A21". Tento výraz be se musel načíst do paměti, vložit zpět jen jako "Číslo a text" a následně aktivovat jako vzorec - potom hodnotu načte. Podobnou úpravu dostaneme i z jiných podobných řešení. Existuje ale originální funkce pro toto řešení - je to VLOOKUP, respektive LOOKUP. Například takto :

=VLOOKUP(C1;$A$1:$B$100;2;0)

Tato funkce vyhovuje zcela, ale... Co když by byly ve sloupci "A" duplicity a jejich referenční hodnoty ("B") by nebyly shodné? Nebo co když jednoduše nebudou ekvivalentní vyhledávací hodnoty? Proto je potřeba pro jistotu ošetřit alternativy pomocí COUNTIF.

=COUNTIF($A$1:$A$100;C1)

Nebo alespoň takto :

=IF(ISERROR(VLOOKUP(C1;$A$1:$B$100;2;0));"Není ekvivalent";VLOOKUP(C1;$A$1:$B$100;2;0))

Řešení lze provést také například pomocí LOOKKUP - ale tam by bylo potřeba nejprve sloupec "A" setřídit, což bych doporučoval, pokud by byl seznam relativně velmi dlouhý.


        V případě, že by existovala problematika "duplicit" hodnot sloupce "A", musela by se udělat úprava jiného typu.


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 1. 6. 2014 13:53:42

milky
Člen
Registrace: 28. 5. 2014
Příspěvků: 5

Re: Podmínky pro výpis do dalšího sloupce (VYŘEŠENO)

Mnohokrát děkuji, pomocí vašich rad jsem to vyřešil a ještě se toho dost naučil smile

Offline

Zápatí