• 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.

unieke datums optellen

  • Onderwerp starter Onderwerp starter regf
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

regf

Gebruiker
Lid geworden
27 mrt 2009
Berichten
136
hoi,
in de bijgevoegde lijst zie je namen en datums die meerdere keren voorkomen, 1 persoon kan op 1 datum meerdere keren voorkomen door een productie batch af te melden in het systeem.
graag wil ik per persoon (naam) het aantal dagen waarop een of meerdere meldingen gedaan zijn optellen, dus ik wil het aantal dagen waarop er productie gemeld is optellen, zodat ik weet hoeveel dagen er gewerkt is, niet het aantal keren op een zelfde dag. alvast bedankt.Bekijk bijlage voorbeeld.xls
 
Gewoon de kolom Breidatum kopiëren naar een hulpkolom en via duplicaten verwijderen heb je wat je zoekt.
 
Hoi Cobbe,

wat bedoel je met duplicaten?
BVD
Reg
 
Ja sorry dit geldt enkel vanaf Xl2007, ik zoek naar een oplossing voor xl2000-xl2003.
Of mag een oplossing in VBA ook?
 
hallo

voorbeeld:
Anja staat er meerdere malen in moet Anja dan 1 maal, of 0 maal geteld worden?
of wil je dat alle dubbelen uit je tabel worden verwijderd?
groet sylvester
 
Laatst bewerkt:
alvast bedankt voor de tips.
de duplicaten verwijderen is gelukt.
wat ik nu nog graag wil hebben is het aantal unieke datums optellen in de lijst maar wel gekoppeld aan een naam.
de namen moeten er juist wel allemaal in blijven, die gebruik om het aantal meldingen op te tellen.
alvast bedankt.

Reg
ps mag ook met VBA
 
Werkdagen tellen

VOORWAARDE: werkdagen moeten gesorteerd zijn.
Hier de code in VBA

Code:
Sub Telfunctie()
' Telfunctie Macro

'Declarations
Dim varEmployee As Variant
Dim intAantal, intRow As Integer
Dim dtmOlddate, dtmNewdate As Date
Dim c As Range
Set TestRg = Range("J2:J53")

Range("A1").Select
Selection.AutoFilter
   
Range("M:N").Clear

'Copy all unique employees to column M
Range("C2:C53").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("M2"), Unique:=True
intRow = 2

'Loop for each employee
Range("M2").Select
For Each varEmployee In Range(Selection, Selection.End(xlDown))
    
    'Filter for each employee
    ActiveSheet.Range("$A$1:$J$53").AutoFilter Field:=3, Criteria1:=varEmployee
    
    'Compare new with previous date
    dtmOlddate = "xxx"
    intAantal = 0
        
    For Each c In TestRg.SpecialCells(xlCellTypeVisible)
        dtmNewdate = c.Value
        If dtmOlddate <> dtmNewdate Then intAantal = intAantal + 1
        dtmOlddate = dtmNewdate
        Next c
                
        'Fill number of worked days
        Cells(intRow, 14) = intAantal
        intRow = intRow + 1
    Next


ActiveSheet.ShowAllData
 
End Sub
 

Bijlagen

Laatst bewerkt door een moderator:
Nog een VBA-aanpak, klik op de groene button om de resultaten in kolom M:N te zien verschijnen. Kolom K is een (verborgen) hulpkolom.
 

Bijlagen

Toelichting gevraagd

Beste where,

Veelal gaat het in deze rubriek om oplossen van problemen, maar soms wil ik ook van oplossingen leren.

Kun jij wat toelichting geven bij de werking van jouw bondige oplossing?

Groet
keb
 
In 't kort: in de (verborgen) kolom K tellen we via "countif" hoevaak een combinatie van Naam en Datum voorkomt, in de macro stellen we achteraf als voorwaarde dat we telkens in de eerste instantie hiervan (resultaat in kolom K = 1) geinteresseerd zijn.
De "Scripting Dictionary" heeft als eigenschap dat de "keys" uniek moeten zijn, maar de "Items" niet. Via de "Add" methode voegen we dan telkens unieke namen als "keys" toe aan de dictionary, via de "If" voorwaarden wordt het bijbehorende "Item" opgehoogd met 1 indien de juiste voorwaarden vervult zijn.
Om uit deze uitleg iets zinvols te distilleren, zul je toch eerst wat info moeten googelen omtrent Scripting Dictionary, heb ik zelf ook zo gedaan.
 
alle,

bedankt voor de input, ik heb de optie van Wher gekozen om mee te werken aangezien die redelijk kant en klaar was. al snap ik niet hoe het eigenlijk werkt.
de optie van keb ga ik ook nog proberen maar het werkt nu in ieder geval zoals ik het wilde hebben.
bedankt voor jullie hulp.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan