< návrat zpět

MS Excel


Téma: Filtrování buněk současně podle více barev rss

Zaslal/a 3.11.2016 9:03

Dobrý den, potřebuji v tabulce vyfiltrovat řádky podle barvy buněk v určitém sloupci. Vím, že Excel filtrování podle barvy od verze 2007 umí, ale nepřišel jsem na to, jak nastavit filtrování současně podle 2 nebo více barev v jednom sloupci. Lze to? Díky.

Zaslat odpověď >

Strana:  1 2   další »
#033274
avatar
Pokud vím, tak to přímo nejde. Nicméně se to dá určitými způsoby "obejít".

Možnosti:
1.) Sice nelze přímo filtrovat více barev, ale lze dle více barev řadit. Takže jednou z možností je seřadit dle požadovaných barev a ostatní řádky skrýt.
2.) Pokud máš buňku obarvenou dle nějakého jasného kritéria, tak stačí přidat další pomocný sloupec, kde toto kritérium vložíš, tak abys tam měl nějaké jasné hodnoty (například si udělat číselník apod.).
3.) Dá se to řešit třeba i vlastní funkcí, podle které si určíš, jakou barvu daná buňka má.

Do Modulu vložit:Function Barva_pozadi_bunky(bunka As Range) As Long

Barva_pozadi_bunky = bunka.Interior.Color

End Function
Práce s touto funkcí je pak standardní, do buňky v pomocném sloupci vložit vzorec:
=Barva_pozadi_bunky(A2)Výsledkem už nebude barva, ale číselné označení barvy, podle které lze již standardně filtrovat více hodnot. Pro management pak samozřejmě pomocný sloupec skrýt ;-)...
P.citovat
#033279
avatar
Filtrovat podle barvy je možné i pomocí definice vlastního názvu (Ctrl+F3), kde použijeme tento vzorec:
IndexBarvy=O.POLÍČKU(63;NEPŘÍMÝ.ODKAZ("RC[-1]";0))+NYNÍ()*0´
RC[-1] je právě v buňce o sloupec nalevo,...

Do vedlejší buňky(například D2)napíšeme =IndexBarvy a dostaneme hodnotu barvy z buňky C2,...

Dostaneme její číselnou hodnotu, a lze filtrovat přes více možností,...

Není nutné vytvářet speciální funkci na zjištění barvy pozadí v buňce.

Jestli použijeme místo "RC[-1]" pouze "RC" a máme obarvený celý řádek, tak to funguje taky.

s pozdravemcitovat
#033284
avatar

Krajda napsal/a:


Vyzkoušel jsem a funguje to 1 Ale vůbec to nechápu. Ten vzorec jsem nějak nepobral... především funkce "O.POLÍČKU" mi nic neříká. A kčemu slouží ten konec: "+NYNÍ()*0´"? Mohu poprosit o podrobnější popis vzorce? Pracuji s Excelem 2016. Děkuji.citovat
icon #033286
eLCHa
Mno vzhledem k tomu, že funkce O.POLÍČKU je funkce jazyka Excel4Macro, tak stejně budete muset soubor uložit jako xlsm.
Tudíž to postrádá smysl a je snadnější využít řešení od Pavluse.

Předpokládám, že funkce NYNÍ je tam proto, aby došlo k přepočtu po stisku klávesy F9. Protože ke změně výsledku nedojde, pokud nastavíte nové pozadí. I to se dá řešit lépe, ale jak jsem řekl, použijte Pavlusovo řešení.

A když už tam bude kód, tak bych si vytvořil vlastní proceduru, která mi ta data vyfiltruje a neřešil to přes funkce.citovat
#033287
avatar
O.PROSTŘEDÍ= GET.CELL
Zadaj do googla GET.CELL
http://www.mrexcel.com/forum/excel-questions/20611-info-only-get-cell-arguments.htmlcitovat
#033290
avatar
@eLCHa
Aj bez toho NYNÍ to po stlačení F9 prepočíta. Alebo po po udalosti CHANGE. Netuším načo je tam to NYNÍ, a ani sa mi to hľadať nechce. Vlastne tak trochu tuším. To nyní zmení čas, ale po prenásobení nulou je to zase nula-teda žiadna zmena. Tak neviem, čo tým autor myslel.citovat
icon #033294
avatar
@ eLCHa: Předpokládám, že funkce NYNÍ je tam proto, aby došlo k přepočtu po stisku klávesy F9.
Áno, to bol zrejme ten kýžený dôvod. Ničmenej, vzhľadom k tomu, že definovaný názov už obsahuje funkciu INDIRECT, ktorá je volatilná, tak k prepočtu po stisknutí F9 dôjde i bez toho, aby názov obsahoval funkciu NOW, ktorá je potom v danom vzorci skutočne zrejme nadbytočná :) Dávala by zmysel, pokiaľ by definovaný názov bol tvorený bez použitia INDIRECT: =GET.CELL(63;Sheet1!A1)+NOW()*0citovat
icon #033295
avatar
@marjankaj
Autor možno opisoval a trochu to prekombinoval :)citovat
icon #033301
eLCHa
@marjankaj
GET.CELL = O.POLÍČKU
O.PROSTŘEDÍ =INFO
ale to jen tak na okraj

Netuším načo je tam to NYNÍ, a ani sa mi to hľadať nechce.
Já také netuším,proč to tam je. Já to vím. Volatilita. A popsal to už AL, takže to nebudu opakovat. Až posléze byl přidám INDIRECT. Klasický vývoj u vzorce, který upravuje někdo, kdo mu úplně nerozumí.

Kdysi jednou jeden člověk někde někomu ukázal, že se dá použít funkce xlm v názvu a udělal tím na něho dojem. Ten někdo to pak ukázal někomu dalšímu a tak to šlo dál. A rozmohlo se to jak rakovina. A všichni zapomněli, že kvůli kompatibilitě stále existují listy pro zápis xlm maker, kde si můžu napsat jednoduchou vlastní funkci. Ta může obsahovat ARGUMENT, takže na pracovním listu poté můžu použít standardní odkaz kamkoliv. Dokonce ji snadno zavolám i z VBA.
Jsou věci, které je snazší použít přes xlm. Je jich málo, ale jsou. A ty je snazší použít přes list maker. Použití v názvu je zhovadilost.

Tady pro tento případ to neplatí a je lepší použít VBA.citovat
icon #033302
eLCHa
Mimochodem, když se vrátíme k tématu. Celé je to postavené na hlavu.
Pokud bych měl použít pomocný sloupec, tak to udělám naopak.
V základě jsou totiž 2 možnosti, jak se tam ta barva dostala.
1) výsledek podmíněného formátování - do pomocného sloupce dám vzorec z podmíněného formátování, barvím podle tohoto sloupce, filtruji podle tohoto sloupce.
2) ručně - do pomocného sloupce zapisuji ručně hodnoty (1,2,3,4) a pokud potřebuji barevně odlišit řádky, nastavím si podmíněné formátování. Barvím podle tohoto sloupce, filtruji podle tohoto sloupce.

Vše bez jakýchkoliv maker, všemu rozumím a jsem si schopen ošéfovat sám, i když nejsem přeborník.citovat

Strana:  1 2   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Sumar nakupov

Pavlus • 22.1. 13:05

VBA - načtení dat ze souboru s proměnným názvem

Fantasyk • 22.1. 9:12

Sumar nakupov

Robo11 • 21.1. 21:23

VBA - načtení dat ze souboru s proměnným názvem

€Ł мσşqμΐτσ • 21.1. 12:21

Tělo emailu ve VBA - formát

Fantasyk • 20.1. 20:47

odstranenie opakujucich sa udajov v riadkoch

frantilopa • 20.1. 18:12

odstranenie opakujucich sa udajov v riadkoch

marjankaj • 20.1. 18:01