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ů: 3,435

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.


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

#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ů: 3,435

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.


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

#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í