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

Niet ingevulde waardes zoeken in lijst

Status
Niet open voor verdere reacties.

knoet

Gebruiker
Lid geworden
20 okt 2006
Berichten
127
Goedemorgen,

Situatieschets:
Ik heb een lijst met klantennummers, die eigenlijk opeenvolgend moeten zijn, maar af en toe ontbreekt er een nummer door voordien niet consequent te hebben gewerkt.
Namen die beginnen met A, hebben nummer 1xxx, B 2xxx, C 3xxx, ..., Z 26xxx.
vb:
Voor letter A: 1001, 1002, 1003, 1005, 1006, 1007, 1008, 1009, 1011, ...

Vraag:
Is het met een formule mogelijk om de eerst volgende nummer per letter te krijgen?
vb:
Bij A zou er 1004 moeten verschijnen. Als deze in de lijst werd aangemaakt zou er 1010 moeten verschijnen, ...

Alvast bedankt om mee te denken!
 
Met deze UDF kan je de missende nummers uit een bereik vissen.

Code:
Function Klantnummers(Rng As Range) As String
   Dim X As Long, MaxNum As Long
   MaxNum = WorksheetFunction.Max(Rng)
   ReDim Nums(1 To MaxNum)
   For X = 1001 To MaxNum
     If Rng.Find(X, LookAt:=xlWhole) Is Nothing Then
       Klantnummers = Klantnummers & ", " & X
     End If
   Next
   Klantnummers = Mid(Klantnummers, 3)
 End Function

En dan kan je de eerstvolgende hiermee laten verschijnen:

Code:
=LINKS(Klantnummers(B1:B14);4)
 
Dag SjonR,

Zonder macro's is er geen mogelijkheid?

Alvast bedankt voor je reactie!


Met deze UDF kan je de missende nummers uit een bereik vissen.

Code:
Function Klantnummers(Rng As Range) As String
   Dim X As Long, MaxNum As Long
   MaxNum = WorksheetFunction.Max(Rng)
   ReDim Nums(1 To MaxNum)
   For X = 1001 To MaxNum
     If Rng.Find(X, LookAt:=xlWhole) Is Nothing Then
       Klantnummers = Klantnummers & ", " & X
     End If
   Next
   Klantnummers = Mid(Klantnummers, 3)
 End Function

En dan kan je de eerstvolgende hiermee laten verschijnen:

Code:
=LINKS(Klantnummers(B1:B14);4)
 
Er zal vast een formule voor zijn, maar ik zou m niet weten.
 
Het kan wel met een formule, zelfs als de nummers door elkaar staan:

Bekijk bijlage Missende nummers in reeks_Gijs.xlsx


Maar de formule (zie cel C1) is een hele lange matrix formule geworden. (Afsluiten met CTRL+SHIFT+ENTER)
Code:
{=KLEINSTE(ALS(AANTAL.ALS(A:A;RIJ(INDIRECT("$"&KOLOM(INDIRECT(B1&1))*1000+1&":$"&KOLOM(INDIRECT(B1&1))*1000+999)))=0;RIJ(INDIRECT("$"&KOLOM(INDIRECT(B1&1))*1000+1&":$"&KOLOM(INDIRECT(B1&1))*1000+999));"");RIJ(A1))}

Ben benieuwd of mensen dit nog korter weten te maken wat ongetwijfeld wel kan! :thumb:
 
Laatst bewerkt:
Nog eentje:
 

Bijlagen

  • OntbrekendeGetallen.xlsx
    10,4 KB · Weergaven: 29
En nog eentje (matrixformule) gebaseerd op het bestand van WHER:
Code:
=ALS.FOUT(KLEINSTE(ALS(ISNB(VERGELIJKEN(RIJ(INDIRECT(C$2&":"&D$2));A$2:A$19;0));RIJ(INDIRECT(C$2&":"&D$2)));RIJ(A1));"")
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan