< návrat zpět

MS Excel


Téma: Nesouvislá oblast buňek - dynamická oblast rss

Zaslal/a 9.12.2011 21:08

Ahoj vespolek.

Měl bych dotaz ohledně definování oblasti nesouvislých buňek. Ve sloupci A mám různá čísla. Potřebuji definovat pouze celkovou (nesouvislou) oblast buňek, obsahujících hodnoty větší než 0. Výsledek by měl být definovaný NÁZEV obsahující oblast např. "B1:B6;B9;B13:B19....". Tím pádem při použití tohoto názvu v různých funkcích (např. suma, countif, počet atd.) bude počítáno pouze s vymezenou nesouvislou oblastí a nikoliv s celým sloupcem.

Pokud to není srozumitelné tak ještě uvedu jeden příklad. Definuji si NÁZEV který bude obsahovat oblast buňek A1:A50. Já ale potřebuji tuto oblast definovat nikoliv fixně, ale nějakým kritériém, takže ve výsledku potřebuji získat např. pouze oblast "A1:A20;A22:A45;A49:A50"

Předem díky za postřehy 1

stop Uzamčeno - nelze přidávat nové příspěvky.

Strana:  1 2   další »
#006678
avatar
no tak zadaš do názvu (definuj název) nesouvislou oblast tak jak ji popisuješ, buď napíšeš názvy buňek (to co máš tučně) nebo držíš Ctrl a myší vybíráš buňky pak na liště najdeš (2010) Vzorce - Definovat název - napíšeš název a je hotovo.citovat
#006717
avatar
To: RomanX
Ano.. to v případě, že požadovanou oblast (oblasti) buňek znám... ale já je neznám. potřebuji je právě definovat vzorcem. Například chci pracovat pouze s oblastmi buňek, které obsahuji hodnoty větší než 10... já v tu chvíli nevím které to budou.

Příklad v příloze
Příloha: jpg6717_priklad.jpg (30kB, staženo 72x)
6717_priklad.jpg
citovat
#006719
avatar
Je to možné dělat mnoha způsoby, v závislosti od toho co potřebuj, pokud chci sečíst čísla větší než 10 stačí
=SUMIF(A1:A50;">10")
Nebo to mohu řešit maticově
zadám
=SUM(IF(A1:A50>10;A1:A50)) a současně stlačím Shift+Ctrl+Enter
Nebo makrem kdy vytvořím název "xxx", vložím níže uvedené makro

Sub Makro1()
test = False
Set oblast = Nothing
For Each bunka In Range("A1:A50")
If bunka > 10 Then
If test Then
Set oblast = Union(oblast, bunka)
Else
Set oblast = bunka
test = True
End If
End If
Next bunka
ActiveWorkbook.Names.Add Name:="xxx", RefersTo:=oblast
End Sub

pak např
=SUM(xxx)
vše je v anglické notaci, makro je nutné si přizpůsobit k obrazu svému ne takto natvrdo.citovat
#006742
avatar
Ahoj. Stále si nerozumíme... Ten příklad se součtem větších čísel než 10 byl pouze příklad. Já nechci výsledek číslo... já chci definovat pouze oblast se kterou potom budu operovat v různých vzorcích....

Tzn. že potřebuji tímto definovat adresy buňek, se kterýma později budu moci jakkoliv počítat - ale už jen s těmito buňkami! Například použít do grafu, souhrny apod.

Tak, jak si mohu definovat název například "OBLAST" který bude obsahovat definici oblasti např. A1:A10;A15:A30 tak potřebuji tuto oblast definovat dynamicky...

Ještě pro upresnění - mělo by to být něco podobného jak funguje funkce posun. Například vzorec "=POSUN(A1;5;0;3)" mi definuje oblast tří buněk od šestého řádku po osmý "=A6:A8". Teď už záleží, co s tím budu chtít dělat... např. sečíst přidáním SUMA atd. atd.

A já potřebuji tuto oblast definovat na základě kritérií a hlavně tato oblast nebude souvislá.... jak jsem již psal, oblast bude různorodá A1:A10;A15:A20 atp.

Už si rozumíme? 1citovat
#006751
avatar
Skutečně teď nerozumím, buď chceš součty tak to funguje nebo něco jiného tak součet změníš na průměr, počet apod, nebo použiješ oblast, kterou jsem nazval pracovně xxx můžeš ji změnit v předposledním řádku makra. jak tu oblast vybereš je také na tobě a musíš změnit v testu >10 na to co ti vyhovuje pokud nenapíšeš přesně jaké výběry chceš dělat tak je to složité naprogramovat, musel bys sis zadat např. buňku a v té zadat kriterium a pak ostatní buňky na to testovat, bez znalostí problému je složité to popsat obecně. Ty chceš definovat oblast já ji nazval xxx, ale nevíš jak (co do ní vybereš)? jaká jsou kritéria výběru do oblasti xxx? Kde jsou zadaná? Jak se mění? Při změně chceš stejný název oblasti xxx nebo jiný?citovat
#006752
avatar
1) sumif mi definuje nespojitou oblast pro sčítaní dle zadaného kriteria
2) if(A1:A50>10... mi definuje nespojitou oblast dle zadného kriteria o mohu s tím dělat další věci nemusím sčítat
3) oblast xxx je pojmenovaná oblast nespojitá dle zadaného kriteria
vše je stejné jako posun ale nespojité!!
Jakou operaci s tím neumíš udělat a umíš ji s posun?citovat
icon #006754
Poki
Zkusim taky neco prihodit:
Nikdo si, prosim, neberte nic osobne, jde jen o to, aby byli vsichni spokojeni a aby si porozumeli...

1) To Rombil: kdyz chces poradit - musis taky poradne vysvetlit cely problem a NE JEN cast!!!
Sice je hezke, ze potrebujes definovat nespojitou oblast na zaklade nejake podminky, ale nevime, o jakou podminku jde a co se dal bude s oblasti delat - to bys mel definovat.
Nejlepsi je prilozit aspon nejaky ukazkovy soubor (s aspon fiktivnimi daty, ktera ovsem budou odpovidat (typove: text, cisla, atd...)).
Casto se totiz stava, ze nekdo chce docilit castecnyho cile s tim, ze zbytek si dodela - ale reseni celyho problemu by bylo lepsi udelat uuuplne jinak!
-> Nicmene, to, co jsi chtel (nebo alespon to, co jsi popsal) vystihl Roman v makru, ktere prilozil, protoze oblast, ktera splnuje podminky je pojmenovanou oblasti s nazvem 'xxx', se kterou pak muzes delat vsechno, ne jen scitat - to, ze Roman vlozit priklad =SUM(xxx) neznamena, ze nemuzes pouzit jinou funkci pro tuto oblast...

2) Absolutne chapu Romana a je to castecne to, co uz jsem napsal - Rombile, kdybys nam rekl, co s oblasti potrebujes delat, dalo by se to udelat i pres vzorce, jak psal Roman.
Definuj tvuj konecny cil a pak se da pomoci - jinak se totiz muze stat, ze Roman stravi zbytecne moc casu na tom, aby pochopil neco, co vlastne ani k vyreseni tvyho problemu chapat nepotrebuje...citovat
#006757
avatar
Omlouvám se, jestli je to z toho co jsem již napsal nesrozumitelné....

V posledním příspěvku jsem napsal, dle mého již dostatečně srozumitlně, že by to mělo pracovat podobně jako funkce POSUN která nám definuje souvislou oblast dle kritérií.

Jen uvedu na pravou míru, že nechci použít VBA - pouze vzorec.

V příloze je soubor, kde je zobrazen jeden z výstupu, které z této oblasti požaduji. Graf zobrazuje všechny hodnoty, které jsou uvedeny v tabulce. Já však potřebuji, aby se zobrazovaly pouze hodnoty vyšší než 10. Nížší jakoby nebyly... Tím pádem potřebuji definovat oblast buňek se kterou mohu následně pracovat v různých početních operacích. Funkci SUMIF apod. nechci použít protože bych při každé změně kritérií musel jednotlivé funkce měnit.

Pokud jsem schopen definovat oblast buňek pomocí pojmenovaného názvu, tak mi v budoucnu stačí pouze změnit kritéria v tomto názvu a všude v ostatních vzorcích kde bude použit tento název (v příkladu "OBLAST_DATA") se propočty aktualizují. Např. =SUMA(oblast_data) nebo COUNTIF(oblas_data) atd. atd.

To je vlastně to, co jsem psal již v prvním příspěvku... Potřebuji definovat oblast buněk (nikoliv výsledek) - oblast buňek. Stále se bavíme o oblasti viz. poslední odstavec mého dotazu.
"Já ale potřebuji tuto oblast definovat nikoliv fixně, ale nějakým kritériém, takže ve výsledku potřebuji získat např. pouze oblast "A1:A20;A22:A45;A49:A50""

Ještě jednou se tedy omlouvám, pokud to bylo nesrozumitelné - snad jsem to již vysvětlil dostatečně - výsledek = oblast (nikoliv hodnota)
Příloha: rar6757_file001.rar (9kB, staženo 19x)
citovat
#006758
avatar
PS: malá oprava - v textu nemělo být použito "COUNTIF(oblast_data)" ale "POČET(oblast_data)" nebo ještě doplním "MAX(oblast_data)" nebo "PRŮMĚR(oblast_data)" atd. atd. atd.citovat
icon #006763
Poki
Tak jsem to zkusil udelat pres vzorce.
Bohuzel jsem nenasel zpusob, jak definovat pozadovanou oblast primo do definice oblasti, takze jsem to musel udelat pres bunky - vytvorit vzorec v bunkach, ktere se pak nasledne dynamicky pretvari do nazvu oblasti.
V oblasti B25:C32 je maticovy vzorec, ktery definuje oblast na zaklade toho, jestli jsou hodnoty v C3:C10 vetsi nez hodnota zapsana v bunce E24 (nelze menit podminku vetsi nez '>').
V oblasti O24:P30 jsou pak vzorce, ktere uz pouzivaji nove vytvorenou oblasti Oblast_data2

Snad je to to, co bylo pozadovano...
Příloha: zip6763_file001-pojmenovana-oblast-s-podminkou.zip (12kB, staženo 55x)
citovat

Strana:  1 2   další »

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje