Documentation/Calc Functions/VLOOKUP/cs
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Donate
Název funkce:
VLOOKUP
Kategorie:
Tabulkový procesor
Shrnutí:
Provede vertikální vyhledávání v zadané datové tabulce. Porovná zadanou hledanou hodnotu se záznamy v prvním sloupci datové tabulky a po nalezení shody vrátí obsah buňky, která leží ve stejném řádku jako hledaná hodnota, ale v jiném sloupci.
Při porovnávání lze použít zástupné znaky nebo regulární výrazy. Ve výchozím nastavení se při porovnávání nerozlišují velká a malá písmena, ale při použití regulárního výrazu lze provést porovnání s rozlišováním velkých a malých písmen.
Pokud jsou vaše data nastavena horizontálně, s porovnáváním hodnot v prvním řádku datové tabulky, použijte HLOOKUP místo VLOOKUP.
Syntaxe:
VLOOKUP(Vyhledávací kritérium; Pole; Index[; Tříděné vyhledávání rozsahu])
Vrátí:
Vrátí obsah buňky, která leží ve stejném řádku jako odpovídající buňka, ale v jiném sloupci. Vrácená data mohou být číselná nebo nečíselná.
Argumenty:
Vyhledávací kritérium je textový řetězec (v uvozovkách), číslo nebo odkaz na buňku obsahující jeden z těchto typů. Vyhledávací kritérium je porovnáno s obsahem buněk v prvním sloupci Pole za účelem určení řádku zájmu.
Pole určuje rozsah buněk obsazených datovou tabulkou. Tento rozsah lze definovat zadáním odkazu na horní levou buňku, za nímž následuje dvojtečka (:), a poté odkazu na spodní pravou buňku (například A1:E10). Pole lze zadat také předáním názvu pojmenovaného rozsahu nebo rozsahu databáze. Jako argumentPoleje také možné předat řádkové pole.
Index je kladné celé číslo nebo odkaz na buňku obsahující toto číslo, které označuje sloupec obsahující data, která mají být vrácena. První sloupec má číslo 1. Index by neměl být větší než počet sloupců v Poli.
Vyhledávání seřazeného rozsahu je Boolean / logická hodnota (TRUE nebo FALSE), nebo odkaz na buňku obsahující tuto hodnotu, která udává, zda se očekává, že data v prvním sloupciPole budou správně seřazena (jak je popsáno v části #Další podrobnosti: níže).
- Pokud Sorted range lookup je nastaven na 0 nebo FALSE, pak se předpokládá, že data v prvém sloupci Pole nejsou seřazena a VLOOKUP hledá přesnou shodu.
- Pokud Sorted range lookup je vynecháno, nebo nastaveno na TRUE nebo jakoukoli číselnou hodnotu jinou než 0, pak se předpokládá, že data v prvním sloupciPole jsou uspořádána a VLOOKUP může vytvořit "best-fit" (přesné nebo nepřesné) shody.
Mohou nastat nasledující situace:
- Pokud Index není číselný, pak VLOOKUP ohlásí #VALUE! chybu.
- Pokud je Index neceločíselná hodnota, pak ji VLOOKUP zkrátí na celé číslo.
- Pokud je po zkrácení Index menší než 1 nebo větší než počet sloupců obsažených v Pole, VLOOKUP ohlásí chybu neplatného argumentu (Chyba:502).
- Pokud Sorted range lookup je TRUE, ale buňky v prvním sloupci tabulky nejsou seřazeny dle očekávání, pak výsledek vrácení pomoci funkce VLOOKUP je nepředvídatelný. V takových případech je možné, že nebude hlášena žádná chyba a nemusí být zřejmé, že vrácený výsledek je nesmyslný.
- Pokud Sorted range lookup je FALSE, a v datové tabulce není možné najít žádnou shodu s Vyhledávacím kriteriem, pak VLOOKUP ohlásí #N/A (hodnota není k dispozici) chybu.
- Pokud Sorted range lookup je TRUE, a Vyhledávající kritérium by předcházel první buňce v prvním sloupci datové tabulky, pak VLOOKUP ohlásí #N/A (hodnota není k dipsozici) chybu.
Další detaily:
Podrobnosti specifické pro funkci VLOOKUP
- Pokud Sorted range lookup je FALSE a první sloupec tabulky obsahuje více buňek se stejným obsahem, VLOOKUP porovná pouze nejvyšší buňku (prvního sloupce v poli Pole) z těch, které mají společný obsah.
- Pokud Sorted range lookup je TRUE, očekává se, že první sloupec datové tabulky bude setříděný, přičemž čísla se budou zobrazovat vzestupně před textovými hodnotami v abecedním pořadí. V případě, že první sloupec datové tabulky není skutečně seřazen podle očekávání, pak je výsledek nepředvídatelný . VLOOKUP vypočítá, kde by se v prvním sloupci Kritérium vyhledávání objevilo v (očekávaném) seřazeném pořadí.
- Pokud existuje přesná shoda mezi Kritériem vyhledávánía jednou z položek v prvním sloupci, použije se tento řádek pro určení návratové hodnoty.
- Pokud neexistuje přesná shoda mezi Kritériem vyhledávání a žádným z údajů v prvním sloupci, použije se řádek bezprostředně před ním kde by se Kritérium vyhledávání objevilo v prvním sloupci.
- Pokud jsou regulární výrazy povoleny v oblasti Zástupné znaky vzorců area of the ▸ ▸ ▸ (nebo ▸ ▸ ▸ v systému macOS), pak VLOOKUP najde přesné shody, které považují Kritérium vyhledávání za regulérní výraz. To má smysl pouze v případě, že Tříděné vyhledávání rozsahu je FALSE.
- Pokud jsou v oblastiZástupné znaky vzorců v ▸ ▸ ▸ povoleny zástupné znaky (nebo ▸ ▸ ▸ v systému macOS) pak VLOOKUP najde přesné shody, které považují Kritérium pro vyhledávání za výraz se zástupnými znaky. To má smysl pouze v případě, že Tříděné vyhledávání rozsahu je FALSE.
- Pokud je v oblasti Obecné výpočty v
Kritéria hledání = and <> musí platit pro celé buňky
(nebo ▸ ▸ ▸ v systému macOS), pak Kritérium hledání musí odpovídat celému textu v buňce; pokud ne, může odpovídat jen části textu.
▸ ▸ ▸ zaškrtnutá volba - Možnost Rozlišování velkých a malých písmen v oblasti Obecné výpočty v ▸ ▸ ▸ (nebo ▸ ▸ ▸ v systému macOS) nemá na fungování VLOOKUP žádný vliv. Ve výchozám nastavení, VLOOKUP nerozlišuje velká a malí písmena, pokud není vyhledávání rozlišující velká a malá písmena nařízeno konkrétním regulérním výrazem.
Obecné informace o regulárních výrazech v Calcu
- Regulární výraz je řetězec znaků definující vzor textu, který má být porovnán. Podrobnější obecné informace naleznete na stránce Regular expression ve Wikipedii.
- Regulární výrazy se hojně používají v mnoha oblastech a existuje mnoho procesorů regulárních výrazů. Calc využívá open source balíček regulárních výrazů od International Components for Unicode (ICU), další podrobnosti včetně úplné definice syntaxe regulárních výrazů ICU najdete v jejich dokumentaci Regular Expressions.
- Systém nápovědy LibreOffice navíc poskytuje vysokoúrovňový seznam regulárních výrazů.
- Mechanismus regulárních výrazů Calcu podporuje číslované skupiny zachycení, které umožňují identifikovat dílčí rozsahy v rámci shody a použít je v náhradním textu. Závorky se používají k seskupení složek regulárního výrazu a vytvoření číslované skupiny zachycení. Chcete-li do náhradního textu vložit skupinu zachycení, použijte tvar "$n", kde n je číslo skupiny zachycení.
Obecné informace o zástupných znacích Calcu
Zástupné znaky jsou speciální znaky, které lze použít ve vyhledávacích řetězcích předávaných jako argumenty některým funkcím Calcu; lze je také použít k definování kritérií vyhledávání v dialogovém okně Najít a nahradit. Použití zástupných znaků umožňuje definovat pokročilejší parametry hledání pomocí jediného vyhledávacího řetězce.
Calc podporuje jako parametry zástupné znaky nebo regulární výrazy v závislosti na aktuálním nastavení aplikace. Ve výchozím nastavení jsou místo regulárních výrazů podporovány zástupné znaky.
Chcete-li se ujistit, že jsou zástupné znaky podporovány, přejděte do Povolit zástupné znaky ve vzorcích
. Všimněte si, že v tomto dialogovém okně můžete přepnout na regulární výrazy výběrem možnosti Povolit regulární výrazy ve vzorcích
nebo zvolit nepodporu zástupných znaků ani regulárních výrazů.
V následující tabulce jsou uvedeny zástupné znaky, které Calc podporuje.
Zástupný znak | Popis |
---|---|
? (otazník) | Odpovídá libovolnému jednotlivému znaku. Například vyhledávací řetězec "b?g" odpovídá „bag“ a „beg“, ale nebude odpovídat „boog“ nebo „mug“. Upozorňujeme, že nebude odpovídat ani „bg“ , od té doby "?" musí přesně odpovídat přesně jednomu znaku. "?" zástupný znak neodpovídá nulové shodě znaků. |
* (hvězdička) | Odpovídá libovolné sekvenci znaků, včetně prázdného řetězce. Například hledaný řetězec „*cast“ bude odpovídat „cast“, „forecast“ a „outcast“, ale nebude odpovídat „forecaster“ pomocí výchozího nastavení Calc. Pokud je volba Kritéria vyhledávání = a <> se musí vztahovat na celé buňky je zakázáno v ▸ ▸ ▸ , pak „forecaster" bude shoda pomocí vyhledávacího řetězce „*cast".
|
~ (tilda) | Zachrání speciální význam otazníku, hvězdičky nebo znaku tilda, který následuje bezprostředně za znakem tilda. Například vyhledávací řetězec "proč~?" odpovídá "proč?", ale nebude odpovídat "proč" ani "proč~". |
Při porovnávání se zástupnými znaky se nerozlišují velká a malá písmena, proto "A?" bude odpovídat jak "A1", tak "a1".
Tyto zástupné znaky jsou podporovány v aplikaci Calc i Microsoft Excel. Pokud tedy potřebujete interoperabilitu mezi oběma aplikacemi, zvolte práci se zástupnými znaky místo regulárních výrazů. Naopak, pokud není interoperabilita nutná, zvažte použití regulárních výrazů pro výkonnější možnosti vyhledávání.
Příklady:
Následující tabulka je reálným příklademneuspořádané tabulky, která zobrazuje údaje z periodické tabulky chemických prvků.
A | B | C | D | |
---|---|---|---|---|
1 | Prvek | Symbol | Atomové číslo | Poměrná atomová hmotnost |
2 | Vodík | H | 1 | 1,008 |
3 | Hélium | He | 2 | 4,003 |
4 | Lítium | Li | 3 | 6,94 |
5 | Berýlium | Be | 4 | 9,012 |
6 | Bór | B | 5 | 10,81 |
7 | Uhlík | C | 6 | 12,011 |
8 | Dusík | N | 7 | 14,007 |
9 | Kyslík | O | 8 | 15,999 |
10 | Fluór | F | 9 | 18,998 |
11 | Neón | Ne | 10 | 20,18 |
Následující příklady využívají výše uvedenou datovou tabulku. Ve většině případů je argument Sorted range lookup nastaven na 0 (FALSE) takže VLOOKUP bude hledat přesnou shodu v neseřazené tabulce.
Vzorec | Popis | Vrátí |
---|---|---|
=VLOOKUP("Hélium"; $A$2:$D$11; 2; 0) |
Funkce porovná řetězec "Hélium" v prvním sloupci tabulky dat (buňka A3) a vrátí data z buňky v průsečíku tohoto řádku a druhého sloupce tabulky (buňka B3). Symbol hélia se vrátí. |
He |
=VLOOKUP("UHLÍK"; $A$2:$D$11; 3; 0) |
Funkce porovná řetězec "UHLÍK" v prvním sloupci tabulky dat (buňka A7) a vrátí data z buňky v průsečíku tohoto řádku a třetího sloupce tabulky (buňka C7). Vrátí se atomové číslo uhlíku. |
6 |
=VLOOKUP("kyslík"; $A$2:$D$11; 4,6; 0) |
Funkce porovná řetězec "Kyslík" v prvním sloupci datové tabulky (buňka A9) a vrátí data z buňky v průsečíku tohoto řádku a čtvrtého sloupce tabulky (buňka D9) - hodnota Indexu 4,6 je zkrácena na 4. Vrátí se relativní atomová hmotnost kyslíku. |
15,999 |
=VLOOKUP("Neón"; $A$2:$D$11; 2; TRUE()) |
Tento příklad ukazuje zmatek, který může nastat, pokud je argument Sorted range lookup nastaven nebo implicitně nastaven na TRUE, když datová tabulka není seřazena v očekávaném pořadí. Tento vzorec vrací (nepředvídatelný) text "C", zatímco by se očekával text "Ne". |
C |
Vrácená hodnota v tomto příkladu závisí na _literárním_ překladu prvního sloupce datové tabulky.
Přizpůsobte prosím následující anglický výraz "^bo.*" ("bor") pro každý přeložený jazyk odpovídajícím způsobem.
-->=VLOOKUP("^bo.*"; $A$2:$D$11; 4; 0)
|
Funkce odpovídá regulárnímu výrazu "^bo.*"v prvním sloupci tabulky dat (buňka A6) a vrací data z buňky v průsečíku tohoto řádku a čtvrtého sloupce tabulky (buňka D6). Vrátí se relativní atomová hmotnost boru. |
10,81 |
Vrácená hodnota v tomto příkladu závisí na _literárním_ překladu prvního sloupce datové tabulky.
Následující anglický výraz "nit*" ("dusík") upravte odpovídajícím způsobem pro každý přeložený jazyk.
-->=VLOOKUP("nit*"; $A$2:$D$11; 4; 0)
|
Funkce odpovídá zástupnému výrazu „nit*“ v prvním sloupci tabulky dat (buňka A8) a vrací data z buňky v průsečíku tohoto řádku a čtvrtého sloupce tabulky (buňka D8). Vrátí se relativní atomová hmotnost dusíku. |
14,007 |
The following table shows sales data for a small company. Four rows (headed 1 to 4) show the total sales in each quarter of the year and the name of the top performing salesperson in that quarter. Four rows (headed E_reg, N_reg, S_reg, and W_reg) show the total sales in each region for the year and the name of the top performing salesperson in that region in that year. The data in the first column is sorted in the prescribed order and so the examples that follow do not specify a value for the Sorted range lookup argument, with VLOOKUP applying the default value of TRUE.
A | B | C | |
---|---|---|---|
1 | Kategorie | Celkový prodej | TOP Obchodník |
2 | 1 | $27 094 | Samuel |
3 | 2 | $96 516 | Aaron |
4 | 3 | $82 485 | Pippa |
5 | 4 | $48 487 | Ollie |
6 | E_reg | $99 908 | Lillian |
7 | N_reg | $83 535 | George |
8 | S_reg | $46 553 | Zara |
9 | W_reg | $24 586 | Kristina |
Vzorec | Popis | Vrátí |
---|---|---|
=VLOOKUP(0; $A$2:$C$9; 2) |
Funkce se snaží porovnat číslo 0 v prvním sloupci datové tabulky, ale protože 0 je menší než první číslo (1) ve sloupci, vzorec hlásí chybu #N/A. |
#N/A |
=VLOOKUP(2,5; $A$2:$C$9; 2) |
Funkce se snaží najít shodu s číslem 2,5 v prvním sloupci datové tabulky. Protože 2,5 je větší než 2 a menší než 3,VLOOKUP použije hodnotu 2 (umístěnou v řádku 3). Vzorec vrátí data z buňky v průsečíku tohoto řádku a druhého sloupce tabulky (buňka B3). Vrátí se celkové tržby za druhé čtvrtletí. |
96516 |
=VLOOKUP(3; $A$2:$C$9; 2) |
The function matches the number 3 in the first column of the data table (cell A4) and returns the data from the cell at the intersection of this row and the second column of the table (cell B4).
The total sales for the third quarter is returned.
Note that the formula |
82485 |
=VLOOKUP(123; $A$2:$C$9; 2) |
Funkce se snaží najít shodu s číslem 123 v prvním sloupci datové tabulky. Protože 123 je větší než (ostatní) přítomná čísla, VLOOKUP použije řádek 5. Vzorec vrátí data z buňky v průsečíku tohoto řádku a druhého sloupce tabulky (buňka B5). Vrátí se celkové tržby za čtvrté čtvrtletí. |
48487 |
=VLOOKUP("C_reg"; $A$2:$C$9; 3) |
Funkce se snaží porovnat řetězec "C_reg" v prvním sloupci datové tabulky, ale protože "C_reg" je abecedně před prvním textem ("E_reg") ve sloupci, vzorec hlásí chybu #N/A. |
#N/A |
=VLOOKUP(" F_reg |
Funkce se snaží najít shodu s řetězcem "F_reg" v prvním sloupci datové tabulky. Protože "F_reg" je abecedně za "E_reg" ale před "N_reg", VLOOKUP použije první z nich, který se nachází v řádku 6. Vzorec vrátí data z buňky v průsečíku tohoto řádku a třetího sloupce tabulky (buňka C6). Vrátí se nejlepší prodejce pro oblast "E_reg". |
Lillian |
=VLOOKUP("S_reg"; $A$2:$C$9; 3) |
Funkce porovná řetězec „S_reg“ v prvním sloupci tabulky dat (buňka A8) a vrátí data z buňky v průsečíku tohoto řádku a třetího sloupce tabulky (buňka C8). Vrátí se TOP prodejce pro oblast „S_reg“. |
Zara |
=VLOOKUP("Zagreb"; $A$2:$C$9; 3) |
Funkce se snaží najít shodu s řetězcem „Zagreb“ v prvním sloupci datové tabulky. Protože je „Zagreb“ abecedně za ostatními přítomnými řetězci, VLOOKUP použije hodnotu, která se nachází nejníže v seznamu (řádek 9). Vzorec vrátí údaje z buňky v průsečíku tohoto řádku a třetího sloupce tabulky (buňka C9). Vrátí se nejvyšší prodejce pro oblast „W_reg“. |
Kristina |
The final example is included to show that the Array argument can take the form of an inline array. In this case a comma is used as the array column separator, while a semicolon is used as the array row separator. These array separators can be changed via the Separators section of the
▸ ▸ ▸ (or ▸ ▸ ▸ on macOS) dialog.Vzorec | Popis | Vrátí |
---|---|---|
=VLOOKUP(5; {1, "Pondělí"; 2, "Úterý"; 3, "Středa"; 4, "Čtvrtek"; 5, "Pátek"; 6, "Sobota"; 7, "Neděle"}; 2) |
Funkce porovná číslo 5 v prvním sloupci pole a vrátí data z buňky v průsečíku tohoto řádku a druhého sloupce pole. |
Pátek |
Související funkce LibreOffice:
ODF standard:
Související (nebo podobné) funkce Excelu:
VLOOKUP