• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Lijst genereren zonder dubbele data

Status
Niet open voor verdere reacties.

icecube87

Gebruiker
Lid geworden
5 okt 2011
Berichten
46
Hallo,

ik heb een excelbestand met 2 tabbladen.
In tabblad 1 staat in kolom A een lijst met producten, hoe lang deze lijst is is altijd anders.
Nu wil ik graag dat op tabblad 2 diezelfde lijst wordt gegenereerd maar dat alle duplicaten er uit worden gefilter.

Dit wil ik automatiseren met een formule, ik wil green gebruik maken van het filter systeem van Excel.

Heb op internet al veel gezocht maar krijg hetgeen ik zoek niet gevonden. Kan iemand mij op weg helpen?
 
Deze voor blad2, cel A2, sorteert unieke waarden uit bereik A2:A1000 op blad1.
Code:
=ALS.FOUT(ZOEKEN(2;1/((AANTAL.ALS($A$1:A1;Blad1!$A$2:$A$1000)=0)*(Blad1!$A$2:$A$1000<>""));Blad1!$A$2:$A$1000);"")
of
=ALS.FOUT(INDEX(Blad1!$A$2:$A$1000;VERGELIJKEN(0;ALS(ISLEEG(Blad1!$A$2:$A$1000);1;AANTAL.ALS($A$1:A1;Blad1!$A$2:$A$1000));0));"")
Let op: matrixfuncties, d.w.z. afsluiten met Control+Shift+Enter alvorens doortrekken naar onder.

Meer assistentie: plaats een voorbeeldbestand (Excel).
 
Laatst bewerkt:
Waarom geen filtersysteem? Het geavanceerde filter is hiervoor gemaakt.
 
Bekijk bijlage Derving Tool Brood.xlsxBekijk bijlage Derving Tool Brood.xlsx

Dit is het voorbeeld.

Uitvoer bezit de data in kolom D vanaf rij 7. In tab "conclusies" op A1 staat de code die je gaf, echter krijg ik als resultaat "0". Misschien zie je wat ik fout doe?


Edit: formule in het voorbeeld had ik niet helemaal goed aangepast.
Echter formule is nu dit:

Code:
=ALS.FOUT(ZOEKEN(2;1/((AANTAL.ALS($A$1:A1;Uitvoer!$D$7:$D$15000)=0)*(Uitvoer!$D$7:$D$15000<>""));Uitvoer!$D$7:$D$15000);"")

Echter nog steeds output "0"


De reden dat ik geen filter wil gebruiken is omdat het geautomatiseerd moet gaan. Van de data wordt straks een dropdownlist gemaakt.
 
Laatst bewerkt:
Code:
=ALS.FOUT(ZOEKEN(2;1/((AANTAL.ALS([COLOR="#FF0000"]$B$1:B1[/COLOR];Uitvoer!$D$7:$D$15000)=0)*(Uitvoer!$D$7:$D$15000<>""));Uitvoer!$D$7:$D$15000);"")
of
=ALS.FOUT(INDEX(Uitvoer!$D$7:$D$15000;VERGELIJKEN(0;ALS(ISLEEG(Uitvoer!$D$7:$D$15000);1;AANTAL.ALS([COLOR="#FF0000"]$B$1:B1[/COLOR];Uitvoer!$D$7:$D$15000));0));"")
Een van deze functies moet in cel B2 staan.

De tweede functie staat ook niet goed overgenomen in je voorbeeld hierboven.

En als je post #3 nog eens goed leest dan zie je staan:
Let op: matrixfuncties, d.w.z. afsluiten met Control+Shift+Enter alvorens doortrekken naar onder.


Hierna krijg je de lijst. En die begint met een 0 of daarin komt een 0 voor, omdat dit een unieke waarde is die in kolom D op tabblad Uitvoer voorkomt.
 
Laatst bewerkt:
Mij lijkt een filter aanzienlijk sneller dan een matrixformule over 15k rijen die elke keer herberekend wordt.

In de module van het blad 'Conclusies'
Code:
Private Sub Worksheet_Activate()
  Sheets("Uitvoer").Cells(6, 1).CurrentRegion.Columns(4).AdvancedFilter 2, , Cells(1), True
End Sub

@AlexCEL, U hoeft niet zo te schreeuwen:p:d
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan