• 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 waarden opsommen

Status
Niet open voor verdere reacties.

ronald1986

Gebruiker
Lid geworden
2 apr 2010
Berichten
296
Goedemorgen,

Ik ben op zoek naar een formule die elke unieke waarde uit een lijst van ong. 15 records weergeeft gescheiden door een "/". Weet iemand hoe ik dit zou kunnen doen? Ik heb een voorbeeldbestandje bijgevoegd.

Bvd!

Bekijk bijlage testuniekewaarde.xlsx
 
Wordt een aardig gedoe als je het met een formule wilt doen..
Hier eventueel oplossing met VBA
Code:
Sub Spaarie()
    For Each cel In Sheets(1).Range("F10:F22")
        If cel.Row <> 1 Then
            If InStr(c00, cel.Value) = 0 Then c00 = c00 & "/" & cel.Value
        End If
    Next
    Sheets(1).Range("F8").Value = c00
End Sub
 
Spaarie waarom maak je er geen function van?Zo iets dergelijks:
Code:
Function Spaarie(R As Range) As String
    For Each cel In R
        If InStr(Spaarie, cel) = 0 Then Spaarie = Spaarie & cel & "/"
    Next
End Function
dan kun je hem net als iedere andere excel formule gebruiken
 
en wat als er achtereenvolgens in je cellen 'hottentottententententoonstellingsmakelaar, makelaar, tent, tentoonstelling, stelling, tot ... '' staat, dan hou je maar 1 woord over en niet minstens 6 ....:o
 

Bijlagen

Laatst bewerkt:
ja cow18 , daar had ik helemaal niet aan gedacht

jouw formule is een klein beetje aan gepast om dubbule waarden tevoorkomen:
Code:
Function Spaarie2(R As Range) As String
  Dim cel As Range
  With CreateObject("scripting.dictionary")
    .comparemode = 1
    For Each cel In R
        If Not (.Exists(cel.Value)) Then .Add cel.Value, ""
    Next
    Spaarie2 = Join(.keys, "/")
  End With
End Function

ps is er een object, dus niet de "scripting.dictionary", dat ook de sorteer functie kent?
 
Laatst bewerkt:
sorry, ik had de celwaarde moeten nemen ipv de cel zelf.
Op die manier moet je die exists niet gebruiken en is de code sneller.
Code:
Function Spaarie2(R As Range) As String
  Dim cel      As Range, sp
  With CreateObject("scripting.dictionary")
    .comparemode = 1
    For Each cel In R
      sp = .Item(cel.Value)
    Next
    Spaarie2 = Join(.keys, "/")
  End With
End Function
en de vervolgvraag
Code:
Function Spaarie3(R As Range)
  Dim cel      As Range, sp
  With CreateObject("System.Collections.ArrayList")
    For Each cel In R.Cells
      If Not .Contains(LCase(cel.Value)) Then .Add LCase(cel.Value)
    Next
    .Sort                                                  'sorteren
    .Reverse                                               'huidige volgorde omkeren, dus na alfabetsich gesorteerd is die nu omgekeerd
    Spaarie3 = Join(.toarray(), "/")
  End With
End Function
 
Laatst bewerkt:
cow18, het is misschien een beetje of topic.
maar,waar haal je dat kunstje van daan?
sp = .Item(cel.Value)
sp krijgt niet eens echt een waarde,hij blijft leeg

maar het werkt perfect:thumb:
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan