Komentáře Tipy a triky VI.

user avatar xxxs
Odpovědět
Tipy a triky VI.
8. 09. 2013, 20:10:34
=IF(a1=a2;1;0).
jednoduchsi zapis je =A1=A2
vysledkom je true/false.

je podiel D3/E3 rovny 2? =D3/E3=2
if je fajn, ale vacsinou staci toto.
user avatar Petr Valach
Odpovědět
Re:Tipy a triky VI.
8. 09. 2013, 22:36:55
Máte pravdu, díky. Dokonce jsem toto věděl, ale zapomněl jsem to zmínit...
user avatar neutr
Odpovědět
Tipy a triky VI.
10. 09. 2013, 07:06:48
No já bych naopak doporučoval to IF už z principu. Když se zpracovávají zejména tabulky se jménem a příjmením, setkáme se s velmi záludnými chybami. Nejen s tím, že někdo zadá opačně jméno místo příjmení. Problém bude například, když v seznamu budou dvě stejná jména, ale půjde o dva různé lidi. Například o otce a syna, ale může jít jen o shodu jmen a příjmení. Pak je potřeba přiřadit další rozlišovací parametr. Stejně tak, když se do seznamu dostane zkratka - například Jar. Novák. Může to být jak Jaroslav, tak Jaromír, nebo i Jarmil.
Při výrazu =A1=A2 dochází vlastně k vyhodnocení operátorem AND mezi dvěma sousedními položkami stejného sloupce. To většinou u jmenných seznamů nestačí a je zde nutnost porovnat obě (jméno i příjmení). Já bych tento postup doporučil pouze u čísel. Minimálně bych doporučil rozšířit na OR [b]=IF(OR(A1&B1=A2&B2;A1&B1=B2&A2)=1;1;0)[/b].
Takže uvedeným způsobem =A1=B1 lze dobře pracovat jen v seznamu s jediným sloupcem [i](pak je to ale super zbytečné - stačí kliknout na ikonu třídit a podobně Data > Řadit)[/i]. Význam by mělo jen IF, které by porovnalo shodu řetězce. To lze například pomocí textových funkcí FIND(), nebo SEARACH(), ale nejlépe i když nejsložitěji SUBSTITUTE(). Pomocí Searach můžeme otestovat navzájem části řetězců z jednoho výrazu v druhém výrazu. Například pomocí MID(A1;LEN(A1;2;LEN(A1)-1). V tom případě porovnáme obsah buňky A2 s ořezaným řetězcem A1. Nejdříve tedy IF(A1=A2;1;IF(MID(A1;LEN(A1;2;LEN(A1)-1);2;0). V seznamu dostaneme tři možné hodnoty 0, 1, a 2. Zjistili jsme pod výsledkem s číslem 2 vysokou shodu, protože jsme první a poslední písmeno vynechali - bývá tam nejčastěji chyba.
Když by jsme použili SUBSTITUTE tak nahradíme například některá písmena stejným znakem a tento výsledek porovnáme. Samozřejmě že to bude mnohonásobně vnořenou podmínkou IF, takže záměnu uděláme jen u delších slov a ne na všechny znaky. Můžeme se tak vyhnout vícenásobné chybě, nebo i zkratce.
Funkce FIND() a SEARACH bychom nejvýhodněji použili na sloučené jméno s příjmením, popřípadě s dalším parametrem - například bydliště, nebo RČ ap. Například IF(AND(FIND(A2;A2&B2;1);FIND(B2;A2&B2;1)=1;1;0). Tohle použijeme proti možnosti přehození jména a příjmení. [i]Například Petr Pavel versus Pavel Petr ap.[/i].

Samozřejmě složitost hledání musí ovpovídat potřebě, nebo důležitosti, ale vždy s podmínkou IF, nebo alespoň s jiným operátorem (OR, AND, XOR). Beru v potaz, že Petr Valach zpřístupňuje tipy a triky nezkušeným uživatelům. Nebude jim proto doporučovat zbytečné =A1=A2, ale jednoduchou podmínku IF a s náležitou poznámkou, že to lze přizpůsobit. Takhle to také Petr Valach napsal - a je to velice správně. Připomínka uživatele xxxs je nesmyslem právě kvůli cílové skupině. [i]Dříve nebo později začátečník zjistí, že nemusí psát žádný vzorec, a že "je lepší, nežli lektor":) Pak to použije jinde a ne příliš vhodně - sekne chybu a zjistí, že musí do hloubky. Pak by zase autorovi vyčítal, že ho jen zblbnul.[/i]
user avatar xxxs
Odpovědět
Re:Tipy a triky VI.
14. 12. 2013, 21:20:23
tipy a triky. pridal som tip do diskusie. clanok som needitoval.
 
 
woo jaw demo hz