< návrat zpět

MS Excel


Téma: Dynamicky pojmenovaná oblast rss

Zaslal/a 6.11.2014 20:01

Mám tabulku, kde vedu údaje o spotřebě nafty. List má název Megan. Pro aktualizaci dat v KT jsem použil pojmenovanou oblast s odkazem: =NEPŘÍMÝ.ODKAZ("megan!$b$3:$g$"&POČET2(Megan!$B:$B)).
V ř. č.3 je záhlaví tabulky a dále následují data.Do oblasti se nezapočítávají údaje na posledních dvou řádcích. Pokud doplním další data, zahrnou se do odkazu zase kromě posledních dvou řádků. Nevím, kde mám chybu.

Zaslat odpověď >

Strana:  « předchozí  1 2 3 4 5   další »
icon #024960
eLCHa
Tabulka se vkládá na kartě Vložení - Vložit Tabulku (hned vedle kontingenční tabulky)
Označíte si oblast, kterou chcete převést na tabulku a klepnete na to tlačítko ;)

Pokud chcete přidat data, vložíte je o řádek pod tabulku a ona se automaticky rozšíří (včetně formátů, vzorců..)
Takže nepotřebujete dynamicky pojmenovanou oblast.
Do KT jako zdroj dat vložíte název tabulky a máte postaráno.citovat
#024961
Alfan
Děkuji za vysvětlení, hned jsem to vyzkoušel a narazil jsem na tento "problém":
Po každé, když budu aktualizovat data, tak budu mít jiný počet řádků, tedy například teď jich mám 25723 a příští týden jich už bude jen 22314 a nebo naopak 32000.
Když jich je víc, tak to není problém, mohu jen prostě smazat předchozí data a následně vložit data nová, jako hodnoty. Ale když je jich méně (řádků) a provedu smazání, tak mi zůstanou označené i řádky, které byly v předchozím období obsazené a pak mám v KT řádky "(prázdné)". Zřejmě bych musel stará data mazat formou "odstraň řádek" a to je při vyšším počtu řádků a s tím souvisejícími vzorci docela pomalé.citovat
icon #024963
eLCHa
Mno - pokud tomu rozumím, řešení je jednoduché:

1. odstraňte všechny řádky datové oblasti tabulky kromě prvního (aby zůstaly vzorce a formátování) - zůstane záhlaví a jeden řádek dat.
2. Označte data, která chcete vložit a nastavte kopírování (CTRL+C nebo jak jste zvyklý)
3. Vložte kurzor na první buňku jediného řádku datové oblasti, klepněte pravé tlačítko - zvolte vložit jinak-hodnoty.

Tabulka se opět rozšíří a nejsou v ní zbytečné řádkycitovat
#024967
Alfan
Jj, je to tak, díky.
Musím vymazat ty řádky, jak jsem popisoval a vy jste mi to potvrdil.citovat
icon #024969
eLCHa
Mno, to si nejsem tak docela jistý. Píšete
to je při vyšším počtu řádků a s tím souvisejícími vzorci docela pomalé.
takže jste asi nepochopil. Nebo je pro Vás (když to přeženu) 5s ekvivalent pro pomalé....citovat
#024995
Alfan
Ne, pochopil.
Už se to zrychlilo, ale obecně ten soubor při velikosti 38 MB je pomalý při při aktualizaci a při ukládání.
To mazání řádků už jde celkem svižně.citovat
#024996
avatar

Alfan napsal/a:

Děkuji za vysvětlení, hned jsem to vyzkoušel a narazil jsem na tento "problém":
Po každé, když budu aktualizovat data, tak budu mít jiný počet řádků, tedy například teď jich mám 25723 a příští týden jich už bude jen 22314 a nebo naopak 32000.
Když jich je víc, tak to není problém, mohu jen prostě smazat předchozí data a následně vložit data nová, jako hodnoty. Ale když je jich méně (řádků) a provedu smazání, tak mi zůstanou označené i řádky, které byly v předchozím období obsazené a pak mám v KT řádky "(prázdné)". Zřejmě bych musel stará data mazat formou "odstraň řádek" a to je při vyšším počtu řádků a s tím souvisejícími vzorci docela pomalé.


Při změně počtů řádků, stačí uchopit pravý dolní roh vymezující oblast tabulky, a tahem myši tuto oblast upraví na požadovaný počet řádku a sloupcůcitovat
#024998
elninoslov
Len taký návrh. Ak by mohlo byť aj makro, tak je to jednoduché (makro vložiť do listu "Data"):
Sub bActualSize_Click()
Dim RT As Long, CT As Long

'Tu môžeme vykonať import dát od niekiaľ a vložiť ich do Tabuľky DataTab

On Error Resume Next 'Ak je chyba (nieje zaplnený žiadny riadok) pokračuj s 0
RT = ListObjects("DataTab").Range.Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row - 1 'Nájdi počet zaplnených riadkov v Tabuľke DataTab
On Error GoTo 0 'Obnov štandardný odchyt chýb
With ListObjects("DataTab")
CT = .ListRows.Count
If RT <> CT Then 'Ak je rozdiel medzi zaplnenými riadkami a riadkami DataTab
.Resize .Range.Resize(RT + IIf(RT = 0, 2, 1)) 'tak uprav veľkosť tabuľky DataTab podľa zaplnených riadkov
Worksheets("KT").PivotTables("KTTable").PivotCache.Refresh 'a aktualizuj kontingenčnú tabuľku KTTable na liste "KT"
End If
End With
End Sub

Bolo by všetko na jeden klik, jednorázovo. Kedykoľvek potrebuješ aktuálne data, klikneš na tlačítko, a to importuje aktuálne data (to treba do makra samozrejme dorobiť ešte, keďže neviem zdroj), vloží ich do Tabuľky DataTab na liste "Data", a urobí Refresh kontingenčnej tabuľky KTTable na liste "KT". Makrom by sa zabezpečilo aj ponechanie vzorcov v prvom riadku DataTab.citovat
icon #024999
eLCHa
Asi by bylo třeba ten soubor vidět, protože takhle se bavíme teoreticky (i v sousedním vlákně). Pokud řešíte 25k řádků, tak to by pro běžný počítač neměl být problém. Já mám soubor 138k řádků 20sloupců (z toho 12 vzorcových) + 4x KT = 20MB - jede to pomaleji, ale dělám s tím 1x měsíčně, takže mi to nevadí. Takže by mě zajímalo, co tam máte, že Vám to tak bobtná a brzdí.
Pokud ale s tím nejde nic dělat, dal bych např. KT nebo nějaké občasné výstupy, které obsahují vzorce do jiného sešitu nebo možná lépe čistě do kódu a vždy je vytvořil jen když je potřebuju (pod tlačítko) - tzn by se vůbec se sešitem neukládaly.citovat
#025001
Alfan
To elninoslov: Děkuji za návrh. Já ten zdroj mohu pojmenovat například "datarezie.xlsx" a do tohoto souboru bych vždy vložil nová data, jako hodnoty. Pokaždé exportuji z účetního SW data do formátu XML (exportovaný soubor se jmenuje vždy jinak a já nemohu ovlivnit jeho název), aby to bylo rychlejší (do formátu *xls je to strašně pomalé) a pak ta data zkopíruji, jako hodnoty do příslušného zdrojového listu v souboru.

To eLCHa: Konkrétně je to soubor, který má 153 450 řádků, 41 sloupců a z toho 6 se vzorci. Celková velikost nyní je 34 874 kB.citovat

Strana:  « předchozí  1 2 3 4 5   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