< návrat zpět

MS Excel


Téma: Převod tabulkového zobrazení do databázového rss

Zaslal/a 29.8.2013 13:05

Zdravím,
mám tabulku ve které jsou uvedeny počty vyráběných dílů v jednotlivých dnech. Neboli, v řádcích tabulky je uveden datum výroby dílu a ve sloupcích typ dílu. Na průsečíku řádku a sloupce je uveden počet vyráběných dílů. Mým cílem je z této tabulky vytvořit v podstatě databázi, která bude obsahovat díl, datum a množství po řádcích. Forma dat jako pro kontingenční tabulku.
Děkuji za rady.
Viktor

Zaslat odpověď >

icon #014959
avatar
Pokiaľ by som to mal riešiť ja (vo VBA), tak 2 cykly, jeden vnorený do druhého, postupne načítaš hodnoty z vnútra tabuľky do poľa 3 x (počet riadkov x počet stĺpcov), na záver pole vyleješ do oblasti 3 stĺpce x (počet riadkov x počet stĺpcov) riadkov.citovat
icon #014960
Poki
Tak jak psal AL: dva cykly

Tabulku, kterou chcete prevest je treba na zacatku oznacit! (netesoval jsem, zrejme tam budou chyby 1 )
Sub TableTOpivot()
' vyber tabulku, kterou chces prevest
' prvni sloupec a prvni radek bude bran jako popisek - ostatni jako hodnoty s temito dvema popisky

Dim i As Long, x As Long
Dim TABULKA As Range, rTabulka As Long, cTabulka As Long
Dim cPIVOT As Long, rPIVOT As Long

Set TABULKA = Selection
rTabulka = TABULKA.Cells(1, 1).Row
cTabulka = TABULKA.Cells(1, 1).Column

cPIVOT = Cells(rTabulka, cTabulka).End(xlToRight).Column + 3
Cells(rTabulka, cPIVOT) = TABULKA.Cells(1, 1)

For i = 2 To TABULKA.Rows.Count
For x = 2 To TABULKA.Columns.Count
rPIVOT = Cells(Rows.Count, cPIVOT).End(xlUp).Row + 1

Cells(rPIVOT, cPIVOT) = TABULKA.Cells(i, 1)
Cells(rPIVOT, cPIVOT + 1) = TABULKA.Cells(1, x)
Cells(rPIVOT, cPIVOT + 2) = TABULKA.Cells(i, x)
Next x
Next i

End Sub
citovat
#014966
avatar
Naprosto super,
jen jsem z kódu smazal tento řádek:
Cells(rTabulka, cPIVOT) = TABULKA.Cells(1, 1), protože mi vždy smazal záhlaví ve čtvrtém sloupci tabulky. Bez něj funguje parádně.
Ještě jednou dík.citovat
#014967
avatar
Ještě jednou k výše uvedenému řádku, dál jsem testoval, ale bez něj script začne přepisovat tabulku. Prosím tedy o vysvětlení řádku a případně jak ho opravit. Chápu tedy, že je tam pro určení pozice kde se má vypisovat, ale jen mi není jasné proč maže hodnotu v buňce.
Děkujicitovat
icon #014968
Poki
To je tak, kdyz clovek nema k dispozici zadnou ukazku, musi si pak spoustu veci domyslet...

Kazdopadne zmineny radek by mel v radku, kde zacina vase tabulka, 3 sloupce vpravo od ni vepsat hodnotu z prvniho sloupce a prvniho radku tabulky (slouzi jako urcita zarazka), predpoklada to ovsem, ze vsechny sloupce v tabulce jsou vyplnene, pokud tam bude prazda bunka, nebude fungovat spravne...citovat
icon #014970
avatar

Poki napsal/a:

To je tak, kdyz clovek nema k dispozici zadnou ukazku, musi si pak spoustu veci domyslet...

To je ako hrach na stenu hádzať 1citovat
#014977
avatar
Máte pravdu,
každopádně děkuji.citovat

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