< návrat zpět

MS Excel


Téma: Opis buněk rss

Zaslal/a 11.11.2022 7:45

Dobrý den potřebuji opsat z listu1 všechny sloupce do listu2 nějakým makrem, aby to v listu2 vždy figurovalo pouze 1x za samou položku dle sloupce A, sešit je vždy pokaždé jinak dlouhý a někdy má i 500000 řádků. Pomůže někdo?
Děkuji

Zaslat odpověď >

#053805
elninoslov
Isteže pomôže. Keď to pochopí. Takže ide o toto?

-V List1 sú zdrojové dáta o neurčenej šírke (počet stĺpcov) a neurčenej výške (počet riadkov).
-Tieto dáta sa budú kopírovať pod posledný zaplnený riadok v List2 (teda nie prepisovať predchádzajúce dáta v List2, alebo áno???).
-Každý riadok z List1 skopírovať iba vtedy, ak sa jeho hodnota v stĺpci A už nenachádza niekde v stĺpci A v List2. Takže v List2 v stĺpci A sú jedinečné hodnoty.

-Rozloženie stĺpcov v List1 a List2 sedí/nesedí?
-Kopírovať aj farbu, orámovanie a pod, alebo iba hodnoty do predformátovaných stĺpcov (číslo, mena, dátum,...)?
-Jedná sa o tabuľky alebo Tabuľky?
-Hodnoty v niektorom z listov sú filtrované?
-Bunky v List1 obsahujú vzorce? Ak áno, tak vzorce majú byť aj v List2, alebo tam sa majú nakopírovať iba hodnoty? Ak vzorce, majú mať vzťah k adekvátnym odkazovaných zdrojom v List2 podľa List1, alebo pôvodné odkazy na bunky v List1?
...

A ešte príloha. Zmenšená, anonymizovaná, so zachovaním formátov, vzorcov, rozloženia, kde je niečo vyplnené, nech je vyplnené. Pár príkladových dát.citovat
#053806
avatar
počet sloupců je dán a je to A-Z na Listu1 ostatně je to dle popisů sloupců . List2 je vždy prázdný a tam chci v podstatě kopii toho řádku (sloupce A-Z) ale tak aby nebyly duplikované, jako je to v listu1
Ano při změně ve sloupci A zkopírovat ten záznam, je to seřazeno dle sloupce A
Rámovat ani barvy netřeba.
List1 je vždy zdroj a List2 je vždy prázdný , jen záleží kolik dat se vygeneruje do listu1 , jak říkám mám nyní list1 o 600000 řádcích s duplikovanýma hodnotama.citovat
#053807
elninoslov
Generované dáta? To by šlo asi aj pomocou PowerQuery - bez makra. Záleží na tom, čo sa bude diať potom s List2. Každopádne to sa zle robí bez prílohy.
Takže sa asi jedná o tabuľku a nie Tabuľku.
Takže dáta asi nie sú filtrované (inak treba zisťovať koniec dát, pri filtrovaných sa použije Find, pri nefiltrovaných End(xlUp)).
Takže tam nie sú vzorce.

List2 je vždy prázdny - ten treba vždy v makre premazať. Veď ako by to fungovalo, pri opätovnom spustení makra (trebarz aj nechcene).
"tak aby nebyly duplikované, jako je to v listu1" - teda v List1 sú v stĺpci A duplicity. A ktorý z riadkov sa má kopírovať? Prvý? Posledný? Agregovať (aký typ, min, max, súčet, počet, priemer ???)? Spojiť hodnoty do jednej bunky (zreťaziť ako text)?

A opäť - PRÍKLADOVÁ PRÍLOHA ?

PS: Ak sú tie generované dáta, do List1 importované napr. z nejakého súboru xls, xlsx (vyexportovaného odniekiaľ), tak cez PowerQuery netreba vôbec dáta na List1. Len cestu k súboru.citovat
#053809
avatar
tak s PowerQuery jsem nikdy nepracoval a sice tu záložku mám, ale nevím, jak bych togo v PowerQuery docílilcitovat
#053810
avatar
OK už jsem si přes PowerQuery poradil, díky za nakopnutícitovat
#053811
elninoslov
Začať by ste mal predovšetkým odpovedaním na otázky a priložením prílohy.
Všeobecný návrh makra od brucha, nemám dáta, spustil som to iba raz...
Sub Kopiruj_bez_duplicit()
Dim Col As New Collection
Dim Z(), C()
Dim x As Integer, y As Long, r As Long, s As Integer

With wsZdroj
If IsEmpty(.UsedRange) Then MsgBox "Žiadne data na liste " & wsZdroj.Name, vbExclamation: Exit Sub
Z = .UsedRange.Value
End With

s = UBound(Z, 2)
ReDim C(1 To UBound(Z, 1), 1 To s)

On Error Resume Next
For y = 1 To UBound(Z, 1)
Col.Add True, CStr(Z(y, 1))
If Err.Number = 0 Then
r = r + 1
For x = 1 To s
C(r, x) = Z(y, x)
Next x
Else
Err.Clear
End If
Next y
On Error GoTo 0

With wsCiel
.UsedRange.Clear
.Cells(1, 1).Resize(r, s).Value = C
End With
End Sub
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