EXCEL - uprava a třídění dat Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

kangerou78
nováček
Příspěvky: 5
Registrován: únor 11
Pohlaví: Muž
Stav:
Offline

EXCEL - uprava a třídění dat

Příspěvekod kangerou78 » 16 úno 2011 09:12

Dobrý den,

mám menší problém s porovnáním dat v excelu. Potřeboval bych pospojovat pole, za podmínky, že sloupce A, B, E, F jsou stejné, data jsou vždy pod sebou. Potřeboval bych provést změnu, aby se mi data porovnávala a zapisovala do řádku. Lépe pochopitelné a ukázané je to v přiloženém souboru.

Děkuji moc
Přílohy
ukazka.xls
(20.5 KiB) Staženo 100 x

Reklama
Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: červen 09
Pohlaví: Muž
Stav:
Offline

Re: EXCEL - uprava a třídění dat

Příspěvekod Branscombe » 16 úno 2011 09:50

Pakliže to chápu správně, tak potřebuješ odebrat duplicitní položky.
V Excel 2007 a výše je na kartě "Data" položka "Odebrat duplicity", v dřívějších verzích si nejsem jist přítomností této funkce, takže označíš oblast buněk, klikneš na odebrat duplicity a pak jen vybereš které pole chceš porovnávat ... Na závěr vložíš vzorec do posledního sloupce který ti vybere data ze sloupce D

kangerou78
nováček
Příspěvky: 5
Registrován: únor 11
Pohlaví: Muž
Stav:
Offline

Re: EXCEL - uprava a třídění dat

Příspěvekod kangerou78 » 16 úno 2011 10:07

Nepotřebuju odebrat duplicitní položky, potřebuju, aby mi to z jednoho listu vyhledávalo a na druhý list řadilo položky, dle výsledku ve výše uvedeném souboru ukázka.xls. Problém mám v tom, že záznamů může být různý počet a to jak celkových tak i pro jednotlivé položky. Potřebuju, aby na listu1 byly záznamy zachovány jak jsou a na list2 by se mi zobrazil výsledek po setřídění. Tak jak je uvedeno v ukázce.

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: EXCEL - uprava a třídění dat

Příspěvekod navstevnik » 16 úno 2011 10:41

Plati, pokud je shodne VP, je shodne i Cvykresu a Polozka? Tedy nenastane stav, kdy pro shodne VP jsou ruzna Cvykresu a Polozka?

kangerou78
nováček
Příspěvky: 5
Registrován: únor 11
Pohlaví: Muž
Stav:
Offline

Re: EXCEL - uprava a třídění dat

Příspěvekod kangerou78 » 16 úno 2011 11:28

Ano, platí. Stav že by se VP, Cvykresu a Položka neshodovali nastat nemůže.

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: EXCEL - uprava a třídění dat

Příspěvekod navstevnik » 16 úno 2011 11:34

Nize uvedenou proceduru vloz do standardniho modulu, zavolat F5 v editoru VBA nebo z listu Nastroje>Makro>... (uprav nazvy listu dle potreby, otestuj na zaloze a s vetsim poctem zaznamu, zejmena kombinace zakazky a VP; plati, ze data na listu1 jsou setridena - pod sebou):

Kód: Vybrat vše

Option Explicit

Sub Sestavit()
  Dim SBlk As Range, SCll As Range
  Dim TCll As Range, OffsR As Long
  Dim OldZak As String, OldVP As String
  With Worksheets("list1")
    Set SBlk = .Range("a2:a" & .Cells(.Rows.Count, "a").End(xlUp).Row)
  End With
  Set TCll = Worksheets("list2").Range("a1")
  OldZak = vbNullString
  OldVP = vbNullString
  OffsR = 0
  For Each SCll In SBlk.Cells
    With SCll
      If CStr(.Value) = OldZak And CStr(.Offset(0, 1).Value) = OldVP Then
        TCll.Offset(OffsR, 6).Value = TCll.Offset(OffsR, 6).Value & ", " & CStr(.Offset(0, 3).Value)  ' '2_c_prac
      Else
        If CStr(.Offset(0, 1).Value) <> OldVP Then
          OffsR = OffsR + 1
          OldZak = CStr(.Value)
          OldVP = CStr(.Offset(0, 1).Value)
          TCll.Offset(OffsR, 0).Value = CStr(.Value)  ' zakazka
          TCll.Offset(OffsR, 1).Value = CStr(.Offset(0, 1).Value)  ' VP
          TCll.Offset(OffsR, 3).Value = .Offset(0, 4).Value  ' Cvykresu
          TCll.Offset(OffsR, 4).Value = .Offset(0, 5).Value  ' Polozka
          TCll.Offset(OffsR, 5).Value = .Offset(0, 6).Value  ' ks
          TCll.Offset(OffsR, 6).Value = CStr(.Offset(0, 3).Value)  ' '2_c_prac
        End If
      End If
    End With
  Next SCll
  Worksheets("list2").UsedRange.EntireColumn.AutoFit
  Set SCll = Nothing
  Set SBlk = Nothing
  Set TCll = Nothing
End Sub

kangerou78
nováček
Příspěvky: 5
Registrován: únor 11
Pohlaví: Muž
Stav:
Offline

Re: EXCEL - uprava a třídění dat

Příspěvekod kangerou78 » 16 úno 2011 14:52

Díky moc, je to super, funguje to :-) Jen bych ještě potřeboval, aby mi to ve sloupci 2_c_prac vypisovalo i ty nuly na začátku. Všechny čísla by měla být 5 místná.

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: EXCEL - uprava a třídění dat

Příspěvekod navstevnik » 16 úno 2011 15:33

Vsechny sloupce na listu 2 mimo slopec pro pocet naformatuj predem jako text.
Pro jednodussi pouzit upravena procedura vlozi na list 2 hlavickovy radek a naformatuje sloupce.

Kód: Vybrat vše

Option Explicit

Sub Sestavit()
  Dim SWsht As Worksheet, TWsht As Worksheet
  Dim SBlk As Range, SCll As Range
  Dim TCll As Range, OffsR As Long
  Dim OldZak As String, OldVP As String, i As Byte

  Set SWsht = ActiveWorkbook.Worksheets("list1")
  Set TWsht = ActiveWorkbook.Worksheets("list2")
  With SWsht
    Set SBlk = .Range("a2:a" & .Cells(.Rows.Count, "a").End(xlUp).Row)
  End With
  With TWsht
    Set TCll = .Range("a1")
    .Cells.ClearContents
    For i = 0 To 6
      ' vlozit hlavicky
      With SWsht.Range("a1")
        TCll.Value = .Value
        TCll.Offset(0, 1).Value = .Offset(0, 1).Value
        TCll.Offset(0, 2).Value = .Offset(0, 2).Value
        TCll.Offset(0, 3).Value = .Offset(0, 4).Value
        TCll.Offset(0, 4).Value = .Offset(0, 5).Value
        TCll.Offset(0, 5).Value = .Offset(0, 6).Value
        TCll.Offset(0, 6).Value = .Offset(0, 3).Value
      End With
    Next i
    .Range("a:e,g:g").NumberFormat = "@" ' format sloupcu
  End With
  OldZak = vbNullString
  OldVP = vbNullString
  OffsR = 0
  For Each SCll In SBlk.Cells
    With SCll
      If CStr(.Value) = OldZak And CStr(.Offset(0, 1).Value) = OldVP Then
        TCll.Offset(OffsR, 6).Value = TCll.Offset(OffsR, 6).Value & ", " & CStr(.Offset(0, 3).Value)  ' '2_c_prac
      Else
        If CStr(.Offset(0, 1).Value) <> OldVP Then
          OffsR = OffsR + 1
          OldZak = CStr(.Value)
          OldVP = CStr(.Offset(0, 1).Value)
          TCll.Offset(OffsR, 0).Value = CStr(.Value)  ' zakazka
          TCll.Offset(OffsR, 1).Value = CStr(.Offset(0, 1).Value)  ' VP
          TCll.Offset(OffsR, 3).Value = .Offset(0, 4).Value  ' Cvykresu
          TCll.Offset(OffsR, 4).Value = .Offset(0, 5).Value  ' Polozka
          TCll.Offset(OffsR, 5).Value = .Offset(0, 6).Value  ' ks
          TCll.Offset(OffsR, 6).Value = CStr(.Offset(0, 3).Value)  ' '2_c_prac
        End If
      End If
    End With
  Next SCll
  TWsht.UsedRange.EntireColumn.AutoFit
  Set SCll = Nothing
  Set SBlk = Nothing
  Set TCll = Nothing
  Set SWsht = Nothing
  Set TWsht = Nothing
End Sub

kangerou78
nováček
Příspěvky: 5
Registrován: únor 11
Pohlaví: Muž
Stav:
Offline

Re: EXCEL - uprava a třídění dat  Vyřešeno

Příspěvekod kangerou78 » 17 úno 2011 08:39

Funguje to parádně, děkuji moc :-)


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
    od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw)
    2
    4782
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • Uprava vzorce
    od junis » 27 črc 2024 15:43 » v Kancelářské balíky
    6
    5237
    od junis Zobrazit poslední příspěvek
    02 srp 2024 18:02
  • Úprava pc pro Kingdome Come Deliverance 2
    od barryk10cz » 07 led 2025 17:00 » v Rady s výběrem hw a sestavením PC
    13
    3706
    od Hangli Zobrazit poslední příspěvek
    09 led 2025 22:42
  • Raspberry - M2 disk - uprava a zaloha oddilu Příloha(y)
    od L.L » 18 srp 2024 10:32 » v Problémy s hardwarem
    3
    3704
    od L.L Zobrazit poslední příspěvek
    19 srp 2024 14:39
  • bitmapová grafika - úprava fotografií, retuše, filtry.
    od zuzana3 » 10 kvě 2025 11:32 » v Design a grafické editory
    2
    5101
    od zuzana3 Zobrazit poslední příspěvek
    10 kvě 2025 17:31

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů