< 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.

Jméno
Kontrola
Text
  b i u s img code url hr   1 2 3 4 5 6 7 8 9 10

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

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