Keresés

Hirdetés

Új hozzászólás Aktív témák

  • ny.janos

    tag

    válasz GreenIT #38859 üzenetére

    Szia!

    Ha a B2 cellától jobbra és lefelé található értékeid a K, P és S munkalapokon állandóak és a sorok mindegyik munkalapon azonos sorrendben vannak, nem változnak, akkor simán átmásolod az értékeket az M munkalapra, úgy, hogy a másolást követően beszúrsz egy üres sort az "A"-s oszlopazonosítók alá, majd Ctrl+Enterrel beviszed a K, a P és az S azonosítókat az első 58, második 58 és harmadik 58 oszlopba. Ez 1-2 percet vehet igénybe. Ezt követően kijelölöd az M munkalap teljes területét, majd sorba rendezed oszlopok szerint. :)

    Ha az első három munkalapon az értékek változnak, úgy az M munkalapon a K, P és S munkalapra hivatkozz =K!B2formában, s másold a képletet.

    Ha a soraid nincsenek ugyanazon azonosító szerint rendezve a K, P és S munkalapokon, akkor az FKERES függvényt használd az adatok megkereséséhez az M munkalapon. A harmadik argumentumot az FKERES függvényben a SOR vagy SOROK függvénnyel add meg.

    Ha az értékeid változnak, vagy a soraid sorrendjei a munkalapokon nem azonosak, úgy a sorba rendezés oszlopok szerint természetesen az utolsó lépés legyen.

    [ Szerkesztve ]

  • Fferi50

    őstag

    válasz GreenIT #38859 üzenetére

    Szia!

    Próbáld ki ezt a makrót:
    Sub Makró1()
    '
    ' Összesítés
    Dim ws As Worksheet, uszlp As Integer, wso As Worksheet, wss
    Set wss = Sheets(Array("Munka1", "Munka2", "Munka3"))
    wss.Copy after:=Sheets(Sheets.Count)
    For Each ws In wss
    With ws
    uszlp = .Range("A1").End(xlToRight).Column
    .Rows(2).Insert shift:=xlDown
    With .Range(.Cells(2, 2), .Cells(2, uszlp))
    .Formula = "=RIGHT(""000""&COLUMN(),3)&B1&$A$1"
    .Value = .Value
    End With
    .Rows(1).Delete shift:=xlUp
    End With
    Next
    Set wso = Sheets.Add(after:=Sheets(3))
    wso.Name = "MunkaÖ (S)"
    Selection.Consolidate Sources:=Array(Sheets("Munka1").Range("A1").CurrentRegion.Address(external:=True, ReferenceStyle:=xlR1C1), _
    Sheets("Munka2").Range("A1").CurrentRegion.Address(external:=True, ReferenceStyle:=xlR1C1), Sheets("Munka3").Range("A1").CurrentRegion.Address(external:=True, ReferenceStyle:=xlR1C1)), Function:= _
    xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
    Range("A1").CurrentRegion.Offset(0, 1).Sort key1:=Rows(1), order1:=xlAscending, Orientation:=xlSortRows, Header:=xlYes
    With wso
    uszlp = .Range("B1").End(xlToRight).Column
    .Rows(2).Insert shift:=xlDown
    .Range(.Cells(2, 2), .Cells(2, uszlp)).Formula = "=MID(B1,4,LEN(B1)-4)"
    .Range(.Cells(2, 2), .Cells(2, uszlp)).Value = .Range(.Cells(2, 2), .Cells(2, uszlp)).Value
    .Rows(3).Insert shift:=xlDown
    .Range(.Cells(3, 2), .Cells(3, uszlp)).Formula = "=right(B1,1)"
    .Range(.Cells(3, 2), .Cells(3, uszlp)).Value = .Range(.Cells(3, 2), .Cells(3, uszlp)).Value
    .Rows(1).Delete shift:=xlUp
    .Range("A1").Value = "M"
    End With
    For Each ws In Sheets
    If InStr(ws.Name, "(") = 0 Then
    ws.Delete
    Else
    ws.Name = Left(ws.Name, InStr(ws.Name, "(") - 2)
    End If
    Next
    End Sub

    A munkanap nevek helyére írd a nálad levő neveket. Csak ez a három munkalap legyen indulóban a munkafüzetben.

    Üdv.

  • Mutt

    aktív tag

    válasz GreenIT #38859 üzenetére

    Szia,

    Power Query-ben Merge/Egyesítés opciót nézd meg esetleg.

    üdv

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

Új hozzászólás Aktív témák