Obsah
Dnes vám ukážu, jak v aplikaci Excel vytvořit dynamický seznam na základě jednoho nebo více kritérií.
Stáhnout cvičebnici
Dynamický seznam na základě kritérií.xlsx
Co je dynamický seznam v aplikaci Excel?
Dynamický seznam je seznam, který je vytvořen ze souboru dat a automaticky se aktualizuje, když se změní jakákoli hodnota v původním souboru dat nebo když jsou do původního souboru dat přidány nové hodnoty.
Na uvedeném obrázku je seznam jmen všech studentů, kteří získali známky vyšší než. 60 při zkoušce.
Pokud změníte značky Jennifer Marlo z 68 na 58 a přidejte nového studenta jménem Ross Smith se známkami 81 v tabulce, seznam se automaticky upraví.
Tomuto seznamu se říká dynamický seznam.
3 způsoby vytvoření dynamického seznamu v aplikaci Excel na základě kritérií
Zde máme datovou sadu se znakem Studentské průkazy, Jména, a Marks některých žáků ve škole zvané Slunečnicová školka.
Naším dnešním cílem je vytvořit dynamický seznam na základě kritérií z tohoto souboru dat. Dnes použijeme jak jednotlivá, tak vícenásobná kritéria.
1. Použití funkcí FILTER a OFFSET (pro nové verze aplikace Excel)
Nejprve použijeme kombinaci nástrojů. FILTR , OFFSET a COUNTA funkce aplikace Excel.
Na stránkách FILTR funkce je k dispozici v Office 365 Pouze pro ty, kteří mají přístup k internetu. Office 365 předplatné.
Případ 1: Na základě jednoho kritéria
Pokusme se vytvořit dynamický seznam studentů, jejichž průměrné známky jsou větší nebo rovny. 60 .
Můžete použít tento vzorec:
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
Jak vidíte, máme seznam všech studentů, kteří získali více než. 60 .
Je zřejmé, že se jedná o dynamický seznam. Můžete změnit jakoukoli hodnotu v datové sadě nebo přidat jakoukoli novou hodnotu do datové sady.
Seznam se automaticky upraví.
Vysvětlení vzorce:
COUNTA(C:C)
vrací počet řádků ve sloupci C, které nejsou prázdné.COUNTA(C:C)-1
vrací počet řádků, které mají hodnoty bez znaku Záhlaví sloupce ( Jméno studenta v tomto příkladu).- Pokud nemáte Záhlaví sloupce , použijte
COUNTA(C:C)
OFFSET(C5,0,0,COUNTA(C:C)-1,1)
začíná v buňce C5 (Jméno prvního studenta) a vrátí rozsah jmen všech studentů.- Na stránkách OFFSET v kombinaci s funkcí Funkce COUNTIF Pokud se do datového souboru přidá další student, vzorec se změní.
COUNTA(C:C)-1
vzorec se zvýší o 1 a OFFSET funkce bude zahrnovat studenta. - Podobně,
OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60
vrací TRUE pro všechny značky, které jsou větší nebo rovny 60 . - Nakonec,
FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
vrátí seznam všech studentů, kteří získali více bodů než 60 . - Pokud je do souboru dat přidán nový student,
COUNTA(C:C)-1
se zvyšuje o 1 a FILTR funkce obnoví výpočet, který ji zahrnuje. - Vzorec tak zůstává vždy dynamický.
Poznámka:
Pokud chcete získat značky spolu se jmény v seznamu, stačí změnit pátý argument prvního příkazu. OFFSET funkce z 1 na 2 .
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,2),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
Případ 2: Na základě více kritérií
Tentokrát zkusíme více kritérií.
Pokusíme se vytvořit dynamický seznam studentů, kteří získali známky vyšší nebo rovné 60, ale jejichž ID je menší nebo rovno 60. 200 .
Můžete použít tento vzorec:
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)).
Jak vidíte, máme seznam všech studentů, kteří získali více bodů než. 60 a mají ID méně než 200 .
A není třeba říkat, že jde o dynamický seznam.
Pokud změníte jakoukoli hodnotu nebo přidáte do datové sady nového studenta, seznam se automaticky upraví.
Vysvětlení vzorce:
- Zde jsme vynásobili dva dynamické rozsahy kritérií,
(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
- Pokud máte více než 2 násobit všechny rozsahy kritérií stejným způsobem.
- Zbytek je stejný jako v předchozím příkladu (jednotlivá kritéria). OFFSET v kombinaci s funkcí COUNTA byla použita funkce pro zachování dynamiky vzorce.
Poznámka:
Pokud chcete zobrazit všechny sloupce v seznamu ( Sloupce B, C, a D v tomto příkladu), změňte první argument prvního příkazu OFFSET do prvního sloupce ( B5 v tomto příkladu) a pátým argumentem celkový počet sloupců ( 3 v tomto příkladu).
=FILTER(OFFSET(B5,0,0,COUNTA(C:C)-1,3),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*
(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200))
Další informace: Vytvoření dynamického seznamu z tabulky v aplikaci Excel (3 snadné způsoby)
2. Použití funkce INDEX-MATCH s jinými funkcemi (pro starší verze)
Ti, kteří nemají Office 365 předplatné nelze použít podle výše uvedeného vzorce.
Pro ty, kteří používají starší verzi Excelu, uvádím složitější způsob, a to pomocí příkazu INDEX-MATCH, OFFSET, SMALL, IF, ROW, COUNTIF, a COUNTIFS Všimněte si, že tyto vzorce jsou vzorce v poli. Chcete-li je tedy použít ve starších verzích Excelu, musíte stisknout tlačítko Ctrl+Shift+Enter místo pouhého Enter.
Případ 1: Na základě jednoho kritéria
Vzorec pro vytvoření dynamického seznamu studentů, kteří získali více nebo rovno 60, bude následující:
=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60,
OFFSET(D5,0,0,COUNTA(D:D)-1,1),""),ROW(A1:INDIRECT("A"&COUNTIF(D:D,">=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0),1))
Jak vidíte, opět jsme získali jména všech studentů, kteří získali více nebo stejně bodů. 60 .
Tentokrát jsme seřadili čísla vzestupně.
A ano, seznam je dynamický. Přidejte do datové sady nového studenta nebo změňte známky kteréhokoli studenta v datové sadě.
Seznam se automaticky upraví.
Vysvětlení vzorce:
- Zde C:C je sloupec, ze kterého chceme vyjmout obsah seznamu ( Jméno studenta v tomto příkladu). Použijete svůj.
- D:D je sloupec, ve kterém leží kritérium ( Průměrné známky v tomto příkladu). Použijete svůj.
- C5 a D5 jsou buňky, ze kterých jsem začal získávat data (těsně pod označením Záhlaví sloupců ). Použijte svůj.
- ">=60" je mým kritériem (Větší nebo rovno 60 v tomto příkladu). Použijete svůj.
- Kromě těchto několika změn ponechte zbytek vzorce beze změny a použijte jej v souboru dat. Získáte dynamický seznam podle požadovaného kritéria.
Případ 2: Na základě více kritérií
Na stránkách INDEX-MATCH vzorec pro dynamický seznam založený na více kritériích je trochu složitější. Přesto jej uvádím.
Vzorec pro získání jmen studentů, kteří získali známky větší nebo rovné 60 , ale mají ID méně než 200 bude;
=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF((OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*.
(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200),OFFSET(D5,0,0,COUNTA(D:D)-1,1),""),ROW(A1:INDIRECT("A"&COUNTIFS(B:B,"=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0),1))
Vysvětlení vzorce:
- Zde C:C je sloupec, ze kterého chceme vyjmout obsah seznamu ( Jméno studenta v tomto příkladu). Použijete svůj.
- B:B a D:D jsou sloupce, ve kterých leží kritéria ( ID studenta a Průměrné známky v tomto příkladu). Použijete svůj.
- B5, C5, a D5 jsou buňky, ze kterých jsem začal získávat data (těsně pod označením Záhlaví sloupců ). Použijte svůj.
- Znásobil jsem zde dvě kritéria:
(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
.Pokud máte více než dvě kritéria, vynásobte je odpovídajícím způsobem. - Opět jsem použil dvě kritéria uvnitř tohoto COUNTIFS funkce:
COUNTIFS(B:B,"=60")
. Podle toho je také použijte. - Zbytek vzorce ponechte beze změny a použijte jej v datové sadě. Získáte dynamický seznam s více kritérii.
Další informace: Jak vytvořit dynamický seznam pro ověřování dat pomocí VBA v aplikaci Excel
3. Vytvoření dynamického rozbalovacího seznamu na základě kritérií pomocí nástroje pro ověřování dat
Nyní jsme vytvořili dynamický seznam. Pokud chcete, můžete. vytvořit dynamický rozevírací seznam v libovolné buňce pracovního listu.
- Chcete-li vytvořit dynamický rozevírací seznam, vyberte libovolnou buňku v pracovním listu a přejděte na příkaz Data> Ověřování dat> Ověřování dat pod Datové nástroje sekce.
- Získáte Ověřování dat dialogové okno. Pod Povolit Vyberte možnost Seznam A pod Zdroj: zadejte odkaz na první buňku, ve které se seznam v pracovním listu nachází, spolu se symbolem. HashTag (#) ( $E$5# v tomto příkladu).
- Pak klikněte na OK . Ve vybrané buňce se zobrazí rozevírací seznam takto.
Další informace: Jak vytvořit dynamický rozbalovací seznam pomocí VBA v aplikaci Excel
Jak vytvořit dynamický jedinečný seznam v aplikaci Excel na základě kritérií
V této části si ukážeme, jak vytvořit jedinečný seznam v aplikaci Excel na základě kritérií. Použijeme kombinaci následujících možností UNIKÁTNÍ a FILTR Funkce. Upravili jsme datový soubor a přidali oblíbené hry každého studenta. Nyní chceme zjistit názvy her, které odstraňují duplicity pomocí kritérií. Kritéria jsou průměrné známky studentů musí být větší než. 60 .
📌 Kroky:
- Vložte vzorec založený na kombinaci UNIKÁTNÍ a FILTR funkce na Buňka G5 .
=UNIQUE(FILTER(E5:E25,(D5:D25>60)))
Na základě kritérií získáme jedinečný seznam.
Vysvětlení vzorce:
- FILTER(E5:E25,(D5:D25>60)
Tím se filtrují hodnoty Rozsah E5:E25 s podmínkou, že průměrný počet bodů musí být vyšší než 60 .
Výsledek: [Tenis, Volejbal, Rugby, Tenis, Fotbal, Rugby, Rugby, Fotbal]
- UNIKÁTNÍ(FILTR(E5:E25,(D5:D25>60)))
Vrátí všechny jedinečné hodnoty z předchozího výsledku.
Výsledek: [tenis, volejbal, ragby, fotbal]
Závěr
Pomocí těchto metod můžete vytvořit dynamický seznam na základě jednoho nebo více kritérií v libovolném souboru dat v aplikaci Excel. Podívejte se na naše webové stránky. ExcelWIKI a napište své návrhy do komentářů.