Zavrieť

Porady

Excel: Kopirovanie, napriklad kazdy druhy riadok

Ahojte, ospravedlnujem sa, ak tu takato otazka uz bola zodpovedana.
Potrebujem v exceli mozno jednoduchu vec, ale neviem dojst na sposob ako to urobit.

Mozno to budem zbytocne rozpisovat, viac v subore ktory prikladym. Je uvedene co potrebujem, ale co excel robi.

Velmi pekne dakujem za pomoc.
vicktor Kolko riadkov je v databaze?
Ak medzi "plnohodnotne" riadky vlozis 2 prazdne, kopirovany vzorec zafunguje - treba ho copy nanovo.
Ale ak je tych riadkov prilis vela, tak to bude pracne riesenie...
Napadlo ma skombinovat viac retazeni a do nich este pouzit =row(), ale popri robote som nepokracoval.
Pravidlá a tipy
  • Každý móže napísať len 1 odpoveď. Neskor mozete svoju odpoveď vylepšiť.
  • Odpoveď má priniesť riešenie na otázku, vyvarujte sa hodnotenia otázky.
  • Odpoveď má byť viac o faktoch ako o názoroch.
Dalšie pravidla a tipy
    Ak potrebujete v otázke niečo upresniť, najskôr sa spýtajte na podrobnosti.
    Koncept slúži na uloženie rozpracovanej odpovede, koncept sa zobrazuje len Vám, až kým ho nezverejníte.
    Ak máte podobnú otázku, založte Novú otázku alebo Súvisiacu otázku.
    ❤ Buďte priateľskí ❤
    Sme súčasťou jednej komunity, ktorá si chce vzájomne pomáhať, rozdieľnosť je vítaná ak neubližuje!
    Usporiadať podľa času

    mepex je offline (nepripojený) mepex

    mepex
    Prikladám riešenie pomocou PowerQuery (použiteľné od verzie 2010). V tabuľke Výstup stačí iba jej aktualizácia (Alt+F5).
    mepex Upravil som riešenie (https://ulozto.sk/!EM7zA9gillkH/pqvz...ubor-spoj-xlsx). Bola tam chyba, ktorú som si neuvedomil.

    excel.sk je offline (nepripojený) excel.sk

    Lektor kurzov Excel excel.sk
    .
    Bunka B1: =INDIRECT("Databáza!A"&ROUNDUP(ROWS($G$1:G1)/3;0)+1)
    Bunka B2: =INDIRECT("Databáza!B"&ROUNDUP(ROWS($G$1:G2)/3;0)+1)&" "&INDIRECT("Databáza!c"&ROUNDUP(ROWS($G$1:G2)/3;0)+1)
    Bunka B3: prázdna

    Všetky 3 bunky vyberte a kopírujte smerom nadol
    .
    Marek00000 Veľmi pekne ďakujem, zajtra v práci vyskúšam. Myslím ale, že posledná možnosť, je presne to čo som hľadal. Samozrejme veľká vďaka aj ostatným, cením si vašu pomoc a čas Ešte raz ďakujem, veľmi mi to pomohlo.

    xxn je offline (nepripojený) xxn

    xxn
    Skús do VBA editora nakopírovať nasledujúce makro a spustiť (F5). Súbor v ktorom sa nachádza zošit "Databáza" musí byť otvorený. Výsledný súbor by sa mal objaviť v novovytvorenom zošite "Výsledok2".

    Sub MakroKopirujAdresy()
    Dim ws As Worksheet
    Dim ws1 As Worksheet

    Set ws = Sheets("Databáza")
    Set ws1 = Sheets.Add(After:=Sheets(Sheets.Count))
    ws1.Name = "Výsledok2"

    ws.Select
    Range("A1").Select

    Dim PocetRiadkov As Long
    Dim i As Long
    Dim A As String
    Dim B As String
    Dim C As String

    Selection.CurrentRegion.Select
    PocetRiadkov = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    For i = 2 To PocetRiadkov
    ws.Select
    Range("A" & i).Select
    Selection.Copy
    ws1.Select
    j = i * 3
    Range("A" & j).PasteSpecial

    ws.Select
    A = Range("B" & i).Value
    B = Range("C" & i).Value
    C = A & " " & B

    ws1.Select
    Range("A" & j + 1) = C
    Next i

    Columns("A:A").ColumnWidth = 30
    Range("A6").Select

    End Sub
    elninoslov Také pomalé makro s toľkými Select-ami nemôžete myslieť vážne. Skúste to cez rýchle polia:

    Sub Vysledok()
    Dim aDB(), aVys(), R As Long, i As Long, Poz As Long

    With Worksheets("Databáza")
    R = .Cells(Rows.Count, 1).End(xlUp).Row - 1
    If R = 0 Then MsgBox ("Databáza je prázdna"): Exit Sub
    ReDim aDB(1 To R, 1 To 3)
    ReDim aVys(1 To R * 3, 1 To 1)
    aDB = .Cells(2, 1).Resize(R, 3).Value2
    End With

    For i = 1 To R
    Poz = (i - 1) * 3 + 1
    aVys(Poz, 1) = aDB(i, 1)
    aVys(Poz + 1, 1) = aDB(i, 2) & " " & aDB(i, 3)
    Next i

    With Worksheets("Výsledok")
    i = .Cells(Rows.Count, 2).End(xlUp).Row
    If i > 2 Then .Cells(3, 2).Resize(i - 2).ClearContents
    .Cells(3, 2).Resize(R * 3).Value2 = aVys
    End With

    Erase aDB: Erase aVys
    End Sub

    Excel: Kopirovanie, napriklad kazdy druhy riadok

    Porady, ktoré by vás mohli zaujímať

    Prihláste sa a sledujte len tie Porady, ktoré Vás zaujímajú.