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

Formulevraag met meerdere voorwaarden

Status
Niet open voor verdere reacties.

Spetie

Gebruiker
Lid geworden
25 aug 2016
Berichten
48
Goedemiddag,

ik heb een excelvraag, waar ik niet meer uitkom. Ben zelf wel handig, maar hier zitten de echte experts, al vraag ik me af of dit op te lossen is. In het voorbeeldbestand met fictieve gegevens zit een tabel waarin in kolom R de kentekens op basis van kolom A tm P moeten worden weergegeven. De kentekens staan wel vermeld in voorgaande kolommen, maar niet in dezelfde kolom en soms staat er zelfs nog tekst voor. Dat kan ik niet veranderen.

Op de 1 of andere manier zoek ik een oplossing die al deze problemen omzeilt en de kentekens weergeeft in kolom r. In kolom R heb ik al neergezet wat het resultaat van de formule zou moeten zijn.

Weet niet of dit kan, maar ik hoop dat iemand mij hierbij kan helpen.

met vriendelijke groet,

Gert
 

Bijlagen

Spetie,

in de eerste regel van je tabel staan nu getallen, hoort daar geen omschrijving bij?

Zo ja welke?

Hoe kan je herkennen dat een kenteken soms in kolom D staat, soms in kolom Q, soms in kolom M en soms wellicht nog ergens anders staat?
 
Hallo Haije,

ik heb de cijfers in de eerste rij nu vervangen door teksten zoals ze zijn.

Hoe je kan herkennen of een tekenteken soms in kolom D, staat en dan weer in een andere kolom is nu juist mijn vraag om ze in 1 en dezelfde kolom te krijgen. het komt uit verschillende programma's en de kolommen kan ik helaas niet aanpassen, alleen een forumle proberen te vinden, die alle kentekens naar 1 kolom brengt.

Wel heb ik dmv kleuren proberen aan te geven wat de unieke kenmerken zijn, als een kenteken in een bepaalde rij staat en wat de verschillen zijn. Weet niet of daaruit voorwaardes te maken zijn? Bijvoorbeeld dat als een rij leeg is dan..., als een rij begint met .., dan.

mvg

Gert
 

Bijlagen

Met een UDF kan je wel een eindje komen. Wel een beetje jammer dat de uitkomsten in het voorbeeldbestand niet kloppen met de verwachte uitkomst. Q2 <> R2

Code:
Function VenA(r As Range) As String
  Dim j As Long
  ar = r
  For j = 1 To UBound(ar, 2)
    Select Case j
      Case 4
        If ar(1, j) <> "" Then c00 = ar(1, j)
      Case 13
        If c00 = "" Then
          x = Split(Replace(Replace(Replace(ar(1, j), " ", "|"), "-", "|"), "/", "|"), "|")
            For jj = 0 To UBound(x)
              If Len(x(jj)) = 6 And Not IsNumeric(x(jj)) Then c00 = x(jj)
            Next jj
        End If
      Case 17
        If c00 = "" Then c00 = ar(1, 17)
    End Select
  Next j
  VenA = UCase(c00)
End Function
 

Bijlagen

VenA,

dat is bijna fantastisch te noemen. :) Van de ruim 1000 regels zijn er meer dan 950 kloppend nu. Toch zijn er nog een paar aparte uitzonderingen. Die met die - tussen het kenteken zijn denk ik niet op te lossen. Die anderen hebben misschien met de lengte van de omschrijving of zo te maken?

Weet je daar misschien nog iets voor?



Q2 <> R2. Dat was slordig van mijn kant. Excuses.
 

Bijlagen

Uit vrij tekstvelden informatie halen is nagenoeg onmogelijk als er geen afspraken zijn over de invoer.

Zo gaat het in het voorbeeldje iets beter. Gaat natuurlijk fout als de invoer 'kohler - ps439x' is.

Code:
Function VenA(r As Range) As String
  Dim j As Long
  ar = r
  For j = 1 To UBound(ar, 2)
    Select Case j
      Case 4
        If ar(1, j) <> "" Then c00 = ar(1, j)
      Case 13
        If c00 = "" Then
          x = Split(Replace(Replace(Replace(ar(1, j), " ", "|"), "-", "|"), "/", "|"), "|")
            For jj = 0 To UBound(x)
              [COLOR="#0000FF"]If Len(x(jj)) = 6 And Not IsNumeric(x(jj)) Then
              c00 = x(jj)
              Exit For
            End If[/COLOR]
            Next jj
        End If
      Case 17
        If c00 = "" Then c00 = ar(1, 17)
    End Select
  Next j
  VenA = UCase(c00)
End Function

Gewoon iedereen aanleren om in het tekstveld te beginnen met het kenteken en dan aanelkaar, gevolgd door een spatie en dan de eventuele extra informatie. Kan de code ook wat eenvoudiger worden.
 
Laatst bewerkt:
is het toeval dat elk kenteken 3 cijfers en 3 letters bevat? of is dat als voorwaarde te gebruiken?
 
Bedankt. Ik kan hier prima mee uit de voeten nu. Het is inderdaad beter als men de gegevens uniform invoert, dus zonder streepjes.

De kentekens bevatten tegenwoordig allemaal inderdaad 3 cijfers en 3 letters, dus dat zou als voorwaarde gebruikt kunnen worden, al weet ik niet helemaal waar je nu precies op doelt?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan