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

#1 23. 11. 2015 20:32:14

dvorak-a
Člen
Registrace: 21. 9. 2015
Příspěvků: 6

Spárování hodnot dle čísla

Nyní mám dva csv soubory, kdy k jednomu bych potřeboval přiřadit údaje dle druhého (nemá hodnoty pro všechny řádky v prvním souboru) takže když je číslo v a i v b tak ze souboru b zkopírovat do a buňky do příslušného řádku. Dá se to nějak udělat? Děkuji

Offline

#2 24. 11. 2015 08:06:50

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

Re: Spárování hodnot dle čísla

To se dá udělat pomocí funkce VLOOKUP poměrně snadno.
- Problém by mohl být pokud je v prohledávaném souboru více relevantních (stejných) výsledků.
- Pokud by byly soubory tak velké, že by se nevešly do jediného sešitu.

=IF(ISERROR(VLOOKUP(A4;$List2.$A$1:$B$100;2;0))=1;"";VLOOKUP(A4;$List2.$A$1:$B$100;2;0))

Vysvětlení vzorce:
- Základem je funkce VLOOKUP(A1;$List2.$A$1:$B$100;2;0)
- - Vzorec leží v buňce B1 a načítá hledanou hodnotu z A1.
- - Prohledává úsek A1:B100 na druhém listu. (Úsek má 2 relativní sloupce 1 a 2)
- - Hledání shody probíhá podle prvního sloupce (ze dvou), ale vrací hodnotu z druhého sloupce.
- - Poslední údaj je údaj o řazení seznamu.
- - - PODÍVEJTE SE DO NÁPOVĚDY K TOMUTO VZORCI
----------------------------------------------------
     Vlastní funkce ale vrací výsledek jen pokud tento existuje. Když neexistuje vrátí hlášení #N/A, což je většinou nechtěné chybové hlášení. Aby se to odstranilo použíjeme funkci ISERROR. Ta vrátí logickou hodnotu PRAVDA/NEPRAVDA. Takhle to otestujte =ISERROR(VLOOKUP(A1;$List2.$A$1:$B$100;2;0))
     Nakonec sestrojíme dotaz IF. Ten otestuje zda hledaná hodnota existuje. Když neexistuje zůstane pole ve sloupci "B" prázdné. Pokud existuje je v této buňce vlastní nalezená hodnota.


     Lze sestrojit také jiné varianty vzorců se stejným nebo podobným efektem - například maticové, nebo se základem MATCH, LOOKUP, INDIRECT a podobně.
     Vzorec můžeme sestrojit i na listy jiných sešitů, to ale nedoporučuji. Pokud by bylo dat opravdu hodně (Viz Vaše předchozí dotazy) - doporučil bych řešení makrem.


PS : Pokud by v hledaném úseku existovalo více relevantních hodnot bylo by jejich nalezení obtížnější, ale také řešitelné jen pomocí vzorců. Ovšem "na velikosti (respektive počtu redundací)" pak záleží. V takovém případě by "někdy" pomohl maticový vzorec a jindy složitá konstrukce.


Ještě mne napadlo, že když byste potřeboval vrátit k hledanému úseku více buněk z řádku (protože pak by to bylo opravdu mnoho vzorců a tím by mohlo dojít až k nefunkčnosti Calcu), bylo by možné provádět sekvenční řezení, následný výběr a promazání. Je to sice jednodušší, ale "manuálně pracnější".

Editoval neutr (24. 11. 2015 08:26:43)


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

Zápatí