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
EXCEL - uprava a třídění dat Vyřešeno
-
- nováček
- Příspěvky: 5
- Registrován: únor 11
- Pohlaví:
- Stav:
Offline
EXCEL - uprava a třídění dat
- Přílohy
-
- ukazka.xls
- (20.5 KiB) Staženo 100 x
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
Re: EXCEL - uprava a třídění dat
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
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
-
- nováček
- Příspěvky: 5
- Registrován: únor 11
- Pohlaví:
- Stav:
Offline
Re: EXCEL - uprava a třídění dat
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.
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: EXCEL - uprava a třídění dat
Plati, pokud je shodne VP, je shodne i Cvykresu a Polozka? Tedy nenastane stav, kdy pro shodne VP jsou ruzna Cvykresu a Polozka?
-
- nováček
- Příspěvky: 5
- Registrován: únor 11
- Pohlaví:
- Stav:
Offline
Re: EXCEL - uprava a třídění dat
Ano, platí. Stav že by se VP, Cvykresu a Položka neshodovali nastat nemůže.
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: EXCEL - uprava a třídění dat
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
-
- nováček
- Příspěvky: 5
- Registrován: únor 11
- Pohlaví:
- Stav:
Offline
Re: EXCEL - uprava a třídění dat
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á.
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: EXCEL - uprava a třídění dat
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.
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
-
- nováček
- Příspěvky: 5
- Registrován: únor 11
- Pohlaví:
- Stav:
Offline
Re: EXCEL - uprava a třídění dat Vyřešeno
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
-
-
- 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
-
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti