Minulla on kaksi taulukkoa joissa toisessa on noin 50000 riviä ja toisessa noin 10000 riviä ja minun pitäisi saada poistettua isommasta taulukosta kaikki rivit joiden 3. sarakkeessa on sama tieto kuin pienemmän taulukon 3. sarakkeessa.
Kokeilin aikaisemmin yhdistää taulukot ja sain tällöin duplikaatit lajiteltua hajanaisesti peräjälkeen mutta tästäkään ei ollut apua koska en saanut kaikkia duplikaatteja allekkain jotta olisin voinut poistaa ne helposti.
Korostan vielä että en ole siis poistamassa ainoastaan duplikaattirivejä vaan kaikki rivit missä on 3. sarakkeessa samat tiedot pitäisi poistaa kokonaan.
Kiitos avusta jo etukäteen!
Duplikaattien poisto kokonaan
5
203
Vastaukset
- kaavan.avulla
Minä tekisin tuon siten, että ensin tekisin apusarakkeen isompaan, johon tulee rivinumerot 1,2...50000. Tuo sen vuoksi, että alkuperäinen järjestys saadaan säilytettyä pienen pyörittelyn jälkeen.
Sitten hakisin isomman taulukon yhteen sarakkeeseen jokaista isomman taulukon kolmossarakkeen arvoa pienemmän taulukon kolmossarakkeista VLOOKUP-funktiolla, esim =VLOOKUP(C1;pikkutaulu.C:C;1;0). Tämä funktio siis isomman taulukon omaan sarakkeen ensimmäiselle (hakuarvon sisältävälle, tässä tapauksessa C1) riville.
Tuo funktio palauttaa ko.arvon, jos se löytyy pienemmästä taulukosta, jos taas ei, niin palauttaa #N/A.
Sen jälkeen järjestetään isompi taulukko VLOOKUP-funktion sarakkeen mukaiseen järjestykseen. Ei duplikaatit rivit järjestyvät #N/A-arvon vuoksi peräkkäin. Sen jälkeen voi poistaa helposti ne muut rivit, jotka ovat taulukossa peräkkäisillä riveillä.
Lopuksi järjestetään isompi taulu uudelleen alkuperäiset rivinumerot sisältävän apusarakkeen mukaiseen järjestykseen ja viimeistellään taulukko poistamalla se ja VLOOKUP-kaavan sisältävä sarake.- kaavan.avulla
Ja tuo VLOOKUP-kaava toki siis monistetaan isomman taulukon jokaiselle riville. Sen ensimmäinen parametri C1 muuttuu vaan rivin mukaan, eli toisella rivillä se olisi C2 jne.
moduuliin...
Sub EtsiJaPoista()
Dim vika As Long
Dim solu As Range
Dim cainoa As New Collection
Dim i As Long
Dim uList() As Variant
'muuta taulukon nimi oikeaksi
Worksheets("Sheet2").Activate
' muuta sarake oikeaksi
vika = Range("C" & Rows.Count).End(xlUp).Row
Application.Volatile
On Error Resume Next
' muuta sarake oikeaksi
For Each solu In Range("C1:C" & vika)
If solu.Formula <> "" Then
cainoa.Add solu.Value, CStr(solu.Value)
End If
Next solu
If cainoa.Count > 0 Then
ReDim uList(1 To cainoa.Count)
For i = 1 To cainoa.Count
uList(i) = cainoa(i)
Next i
End If
'muuta nimi oikeaksi
Worksheets("Sheet1").Activate
For i = 1 To UBound(uList)
' muuta sarake oikeaksi
EtsiJaSiirrä(uList(i), Range("C:C")).EntireRow.Delete
Next
On Error GoTo 0
End Sub
Function EtsiJaSiirrä(Hakuehto As Variant, Hakualue As Range) As Range
Dim solu As Range
Dim EkaOsoite As String
Worksheets("Sheet1").Activate
On Error Resume Next
With Hakualue
Set solu = .Find( _
What:=Hakuehto, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)
If Not solu Is Nothing Then
Set EtsiJaSiirrä = solu
EkaOsoite = solu.Address
Do
Set EtsiJaSiirrä = Union(EtsiJaSiirrä, solu)
Set solu = .FindNext(solu)
Loop While Not solu Is Nothing And solu.Address <> EkaOsoite
End If
End With
End Function
Keep EXCELing
@Kunde- kaavan.avulla
Näyttäisi tämä makrokin toimivan. Sheet1 on siis se "isompi" mistä rivit poistetaan, ja Sheet2 se toinen joka jää ennalleen.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Nainen, tervetuloa
Tule luokseni eka vaikka viikoks tai pariksi. Saisin helliä, kannustaa ja tukea sua ja kokata lempi herkkujasi. Pääsisit417894Olisit ollut varovaisempi
Nyt jos minut hylkäät ja et meidän asiasta minulle mitään ilmoita niin ettet edes anteeksi pyydä, niin tiedä että minä e834646Mies sinä olet kaunis katsella
Olet myös rauhallinen, tavallinen, varovainen, lämmin, poikamainen, komea, ryhdikäs, rentotyylinen, kiva, mukava... jne673321- 552176
Sinulle, tahtoisin kertoa mitä
ajattelen siitä. Ehkä olen väärässä, mutta minusta kuulostaa jonkin alulta, mutta ei kerro minkä. Se selvinnee myöhemmi281719Ensitreffit alttarilla Jyrki paljastaa hääyön intiimiasioista kameroiden sammuttua: "Fyysinen..."
Ooo-la-laa… Ensitreffit alttarilla -sarjassa alkaa hääparien välillä ns. tunteet kuumenemaan. Lue lisää: https://www.s71687Miksi suomussalmelaiset haisee niin pahalle?
Kaupassa käydessä huomaa, miten monet ihmiset haisee todella kammottavalle. Eikö täällä osata käydä pesulla tarpeeksi us171546Persut tyrmäsivät Suomen osallistumisen Ukrainan jälleenrakentamiseen
Siinä meni sitten kokoomusyrittäiltä bisnekset sivun suun putinistipersujen takia. Jälleenrakentamiseen osallistuvat mu3581518Miksi miehet pelkäätte jotain naista?
Iskeekö ujous, paniikki ja hävetys. En ole niin pelottava miltä vaikutan vink vink.581199Nuorisojoukko ryösti merkkikengät teinipojan jalasta Helsingin Itäkeskuksessa.
https://www.is.fi/kotimaa/art-2000010709501.html Muun muassa näidenkin rikosten huomattavan suurista kasvamismääristä vi2791108