< návrat zpět

MS Excel


Téma: Sloučení X sloupců do dvou sloupců rss

Zaslal/a 24.2.2017 16:32

Zdravím,
nemůžu přijít na to, jak sloučit více sloupců do dvou sloupců a tak bych Vás chtěl poprosit o pomoc. Pro ukázku přikládám obrázek. Problém je, že nebudu vědět jak dlouhé sloupce budou (každý může být jinak dlouhý) a ani nebudu vědět kolik sloupců v řadě bude (maximálně však +-50), vždy však bude vedle sloupce Jméno sloupec Věc. Výsledek je ukázaný ve sloupcích H a I, může však být kdekoliv, klidně na novém Listě.
Děkuji

Příloha: png35100_excel_sloupce.png (13kB, staženo 74x)
35100_excel_sloupce.png
Zaslat odpověď >

#035102
avatar
Zdroj na prvním, výsledek na druhém listu.

Sub Spojovacka()

Dim wshZdroj As Worksheet
Dim wshCil As Worksheet

Dim rngOblast As Range
Dim rngTempBunka1 As Range
Dim rngTemp As Range

Dim intTemp As Integer
Dim intRadek As Integer
Dim intPocetSloupcu As Integer

'zamezeni prekreslovani a prepoctu
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

'prirazeni zdrojoveho listu do promenne
Set wshZdroj = Worksheets(1)

'prirazeni ciloveho listu do promenne
Set wshCil = Worksheets(2)

'vycisteni ciloveho listu
wshCil.UsedRange.Clear

'prirazeni kopirovane oblasti do promenne
Set rngOblast = wshZdroj.Cells(1).CurrentRegion

With wshCil

'kopie na druhy list
rngOblast.Copy .Cells(1)

'pocet sloupcu
intPocetSloupcu = .Range(.Cells(1), _
.Cells(1).End(xlToRight)).Cells.Count

'prvni volny radek prvni podoblasti s parovymi hodnotami
intRadek = .Range(.Cells(1), .Cells(1).End(xlDown)).Cells.Count + 1

'zpracovani podoblasti s parovymi hodnotami
For i = 2 To intPocetSloupcu \ 2

'prvni bunka podoblasti
Set rngTempBunka1 = .Cells(1, 2 * i - 1)

'pocet paru v podoblasti
intTemp = .Range(rngTempBunka1, rngTempBunka1.End(xlDown)).Cells.Count - 1

'prevzeti podoblasti
Set rngTemp = rngTempBunka1.Offset(1, 0).Resize(intTemp, 2)

'presun podoblasti
rngTemp.Cut Cells(intRadek, 1)

'nasledujici volny radek
intRadek = intRadek + intTemp

Next i

'vycisteni radku hlavicek
.Range(.Cells(1, 3), .Cells(1, 3).End(xlToRight)).Clear

End With

'povoleni prepoctu a prekreslovani
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

End Sub
citovat
#035103
elninoslov
Ja som to robil cez pole. Bol ste rýchlejší.
Příloha: zip35103_spoj-stlpce.zip (17kB, staženo 43x)
citovat
#035104
elninoslov
Zo srandy som skúsil vypotiť brutálny megavzorec namiesto makra. Teraz nastavené na 1000 hodnôt. Výpočtová doba sa ako tak dá zniesť...
Příloha: zip35104_spoj-stlpce-megavzorcom.zip (28kB, staženo 40x)
citovat
#035105
avatar
Díky, jste borci :)citovat
#035108
avatar

elninoslov napsal/a:

Ja som to robil cez pole. Bol ste rýchlejší.Příloha: 35103_spoj-stlpce.zip (17kB, staženo 3x)


To vaše není programový kód, ale Matrix :-D Ne vážně, tohle uživatelům nemůžete naservírovat :-D. Jo, máte nesporně programátorského ducha, copak o to, ale ... no a ty Goto trošku bolí.citovat
#035109
avatar
U sebe mám taky řešenou podobnou úlohu vzorci. Je to masakr. U mě ŘÁDEK, POČET2, INDEX, POZVYHLEDAT, ODKAZ, NEPŘÍMÝ.ODKAZ, jedna pomocná buňka za každý (dvoj)sloupec.citovat
#035119
elninoslov

"xlbx" napsal/a:

To vaše není programový kód, ale Matrix :-D Ne vážně, tohle uživatelům nemůžete naservírovat :-D. Jo, máte nesporně programátorského ducha, copak o to, ale ... no a ty Goto trošku bolí.
Keď ja tie polia používam tak rád ... 5citovat
#035129
avatar

elninoslov napsal/a:

"xlbx" napsal/a:To vaše není programový kód, ale Matrix :-D Ne vážně, tohle uživatelům nemůžete naservírovat :-D. Jo, máte nesporně programátorského ducha, copak o to, ale ... no a ty Goto trošku bolí.Keď ja tie polia používam tak rád ...


Nejde o pole, ono se to v tom ani nepozná, ale o čitelnost.citovat
#035133
MePExG
Prikladám riešenie aj pomocou Power Query.
Příloha: xlsx35133_jmenovecpq.xlsx (18kB, staženo 37x)
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