< návrat zpět

MS Excel


Téma: spojení dvou (či více) tabulek do jiné tabulky rss

Zaslal/a 12.3.2015 14:10

Ahoj,
všem excelu znalým.

Potřeboval bych dvě tabulky (říkejme jim třeba TAB1 a TAB2 - jsou na jednom listu - ale na tom asi nezáleží) sloučit tak aby výsledkem byla třetí tabulka, která by obsahovala všechny záznamy z TAB1 a TAB2. Určitě je víc způsobů jak toho docílit vzorci, makrem a podobně. Ale nevěřím že by přímo excel na toto neměl fukci. Hlavní problém bych s použitím vzorců měl s tím, pokud se změní počet položet v TAB1 nebo TAB2.

V příloze dávám vzor TAB1 a TAB2 a vedle toho výsledná tabulka, kterou bych rád aby se generovala automaticky změnou prvních dvou (data co tam jsou sem tam dodal ručně jen jako vzor, jak bych si přál aby vypadal výsledek)

Jen ještě zdůrazním, že mi jde o tabulky, které jsou tabulkou v excelu (je pomenovaná a ke sloupcům se dá přistupovat např =[@Sloupec2]) né jen prostou oblastí v sešitu kde mám zrovna data.

Děkuju všem za čas při čtení dotazu a případně za odpověď, nakopnutí či nasměrování.
Děkuju

Hledat sem se snažil ale buď je to tak primitivní funkce kterou se nikdo nezabýval a kadý jí má v malíčku, nebo se mi prostě nezadařilo zadat správný cyhhledávací termín.

Příloha: zip24091_excel-slouceni-tabulek.zip (8kB, staženo 82x)
Zaslat odpověď >

Strana:  1 2   další »
#024092
avatar
A CTRL+C a CTRL+V si neskúšal?citovat
#024093
avatar
Docela dobre je to popsano tady:
http://blog.jamesbayley.com/2013/03/14/create-the-union-of-two-tables-in-excel/citovat
#024098
avatar
2 marjankaj:
díky za odpověď - zkoušel jsem to, ale automatizované mi to nepřijde. Bysme mohli v tomto opustit excel, vrátit se ke kalkulačkám, nebo počídatlům, no co špatného je proti papíru a tužce? 5

2 pepe74287:
díky moc za nasměrování, pokusil sem se to vše mírně poupravit, došel sem k výsledku:
=KDYŽ(ŘÁDEK(tab_3[@])-ŘÁDEK(tab_3[#Záhlaví])<=ŘÁDKY(tab_1);INDEX(tab_1;ŘÁDEK(tab_3[@])-ŘÁDEK(tab_3[#Záhlaví]);SLOUPEC()-SLOUPEC(tab_3)+1);INDEX(tab_2;ŘÁDEK(tab_3[@])-ŘÁDEK(tab_3[#Záhlaví])-ŘÁDKY(tab_1);SLOUPEC()-SLOUPEC(tab_3)+1))
Ale jestli sem dopře pochopil, ani toto není řešení není plně automatizované - aby se délka tabulky dynamicky upravila (prodloužila/zkrátila) podle počtu řádků ve zdrojových tabulkách?citovat
#024103
avatar
V priloze je me reseni - neni uplne idealni, ale asi se to nejvice blizi reseni problemu - sloucena tabulka je roztahnuta a je v ni aplikovan vzorec s iferror. Jakmile se obsadi udaji vsechny radky tabulky, staci ji pouze opet o neco prodlouzit a vzorce by se mely updatovat automaticky.
Příloha: zip24103_excel-sloueni-tabulek.zip (10kB, staženo 122x)
citovat
icon #024106
eLCHa
@eXMarty

Jak jste na tom s MSQuery (SQL)?
Teď jsem krátce otestoval. Pokud první tabulku pojmenujete jako Tab_1 a druhou jako Tab_2, tak zdá se, že funguje příkaz
SELECT * FROM Tab_1 UNION SELECT * FROM Tab_2
Nemám moc času, zkuste si s tím pohrát - popřípadě někdo pomůže (AL? ;)) )
Příloha: zip24106_atest.zip (9kB, staženo 63x)
citovat
#024109
elninoslov
Škoda, že to musí byť Tabuľka. Inak by stačilo sa odkazovať na Dynamicky počítanú oblasť
=OFFSET(List1!$B$3:$D$3;;;(1+COUNTA(List1!$B$4:$B$103));)
Toto ale nefunguje korektne ak to nastavím v "Zmeniť veľkosť tabuľky" ani ak "Zmeniť veľkosť tabuľky" odkážem na pomenovanú oblasť definovanú týmto vzorcom. Riadok do rozsahu Tabuľky sa pridá aj naformátuje, ale nelogicky ho nedokáže ubrať. Škoda, dalo by sa to doplniť o riešenie od pepe74287.
S SQL ti nepomôžem, dokážem ti potom pomôcť jedine makrom.citovat
#024120
elninoslov
Urobil som ti to makro. Funguje tak ako chceš. Podrobne som ho popísal, ale zdá sa mi že tie komentáre ho trochu spomaľujú. Tak si ich prípadne skús dať preč.

Tie Tabuľky (objekty) to všetko komplikujú.
Příloha: rar24120_excelsloucenitabulek2.rar (28kB, staženo 119x)
citovat
icon #024128
eLCHa

elninoslov napsal/a:

Tie Tabuľky (objekty) to všetko komplikujú


Pokud už to chcete dělat makrem, tak naopak - ty to zjednodušují ;)
With Range("Tabulka4")
If .Rows.Count > 1 Then
.Delete Shift:=xlUp
End If
.Cells(1, 1).Resize(Range("Tabulka1").Rows.Count, Range("Tabulka1").Columns.Count).Value = Range("Tabulka1").Value
End With 'Range("Tabulka4")
With Range("Tabulka4")
.Cells(.Rows.Count + 1, 1).Resize(Range("Tabulka3").Rows.Count, Range("Tabulka3").Columns.Count).Value = Range("Tabulka3").Value
End With 'Range("Tabulka4")

Zkuste si k tabulce 4 přidat jeden sloupec, ve kterém bude vzorec - pro jednoduchost=Tabulka4[[#Tento řádek];[Sloupec3]] a spusťte ten kód ještě jednou a pochopíte výhodu té tabulky (objektu).citovat
#024130
avatar
@eLCHa

Díky za odpověď,
s MSQuery to vypadá dobře, funkčně. Obzvlášť v tom případě, že se prvky do zdrojových tabulek budou přidávat a né ubírat. Tak se snažím MSQuery teď nějak pochopit, abych byl schopen použít správný odkaz na tabulky a co jste poslal v příloze vytvořit vlastní silou ;)
včeském Excelu:
Data > Z jiných zdrojů > Z Microsoft Query
Zde mám na výběr:
- Excel Files*
- MS Access Database*

Pokud dám vytvořit nový zdroj dat ve výběru ovladače pro typ databáze jsou na výběr (je jich tam více, ale relevantní asi budou):
- Driver do Microsoft Excel (*.xls)
- Microsoft Excel Driver (*.xls)
- Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)
- Microsoft Excel-Treiber (*.xls)

Tak jestli můžete poradit kdepak se mám odpíchnout.

Jen jestli dobře chápu - jako zdroj dat (databázi) nastavím soubor na disku - nějaká přesná cesta včetně jednotky/adresáře. V mém případě odkazuji na právě otevřený soubor (soubor v kterém vytvářím ono MSQuery). Pokud se cesta změní, je třeba toto spojení upravit na nové umístění souboru.
(to bych případně pak viděl ve VBA při otevírání listu - pokud tedy jde to MSQuery vytvářet a upravovat makrem)

Zatím moc díky všem.citovat
#024136
elninoslov
2 eLCHa : To ma nenapadlo. Stále je tam ale potrebné dorobiť Resize Tabuliek, tak ako som robil ja, rovnako ako OnChange s kontrolou iba tabuliek. Bez toho to nieje dobré. Díky za motiváciu.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

Čas od do

lubo • 19.4. 16:30

Makro smyčka

MilanKop • 19.4. 10:46

Makro smyčka

elninoslov • 19.4. 9:02

Čas od do

elninoslov • 19.4. 8:46

Čas od do

jarek1111 • 18.4. 13:46

Čas od do

lubo • 18.4. 11:13

Čas od do

jarek1111 • 18.4. 8:32