Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Sorteren met lege cellen  (gelezen 21346 keer)

0 leden en 1 gast bekijken dit topic.

Offline JeanPierre

  • Oplosser
  • ****
  • Berichten: 876
  • Geslacht: Man
  • Je bent nooit te oud om te leren!
Sorteren met lege cellen
« Gepost op: 06 februari 2026, 08:43:07 »
Hallo allemaal,

Normaal sorteren is geen kunst in Excel, maar als ik een lijst met woorden wil sorteren waar ook lege cellen in voorkomen dan lukt me dat niet, ofwel staan de lege cellen boven, ofwel onder, ofwel wordt de kollom niet meegesorteerd.
Het zal wel via VBA moeten gaan zeker?

Ik heb een klein lijstje bijgevoegd me alleen maar letters, denk niet dat dat een verschil maakt niet?

Met dank bij voorbaat.

Jean-Pierre.
Windows 10 Pro   NLD 64bit
Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz 800
PRIME Z270-P
NVIDIA GeForce GTX 1050 Ti 4095MB 1920 x 1080
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
Nr: 1 Model: Samsung SSD 850 EVO 250GB
Nr: 2 Model: WDC WD2003FZEX-00SRLA0
Nr: 3 Model: Canon TS8100 series USB Device
AV: Avast free
FW: Windows Firewal Enabled: True

Offline xps350

  • Lid
  • *
  • Berichten: 21
  • Geslacht: Man
  • Domme vragen bestaan niet, domme antwoorden wel
Re: Sorteren met lege cellen
« Reactie #1 Gepost op: 06 februari 2026, 09:18:48 »
De vraag is hoe je het dan wel wilt hebben. Je zegt dat het niet lukt, maar dat klopt niet. Het is mijns inziens logisch dat de lege cellen boven of onder komen. Ze horen in ieder geval geval bij elkaar te staan, want ze hebben dezelfde waarde: "leeg".
Groeten,

Peter

Offline JeanPierre

  • Oplosser
  • ****
  • Berichten: 876
  • Geslacht: Man
  • Je bent nooit te oud om te leren!
Re: Sorteren met lege cellen
« Reactie #2 Gepost op: 06 februari 2026, 10:01:23 »
Dank u wel Peter maar in het hierbijgvoegd voorbeeld hoe ik ze wel gesorteerd wil hebben.

Grtjs
Jean-Pierre.
Windows 10 Pro   NLD 64bit
Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz 800
PRIME Z270-P
NVIDIA GeForce GTX 1050 Ti 4095MB 1920 x 1080
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
Nr: 1 Model: Samsung SSD 850 EVO 250GB
Nr: 2 Model: WDC WD2003FZEX-00SRLA0
Nr: 3 Model: Canon TS8100 series USB Device
AV: Avast free
FW: Windows Firewal Enabled: True

Offline xps350

  • Lid
  • *
  • Berichten: 21
  • Geslacht: Man
  • Domme vragen bestaan niet, domme antwoorden wel
Re: Sorteren met lege cellen
« Reactie #3 Gepost op: 06 februari 2026, 10:39:24 »
In dit voorbeeld wil je feitelijk elke kolom apart sorteren. Dat kan je dus gewoon doen (in 4 stappen).

Merk wel op dat de oorspronkelijke rijen verloren gaan. De gegevens op een rij horen in je voorbeeld dus kennelijk niet bij elkaar. Het zijn vier losse tabellen.
Bijvoorbeeld in het origineel staat op regel 6 C/J/ /U.
Gesorteerd is er een regel 3 met C/K/R/W.
Groeten,

Peter

Offline JeanPierre

  • Oplosser
  • ****
  • Berichten: 876
  • Geslacht: Man
  • Je bent nooit te oud om te leren!
Re: Sorteren met lege cellen
« Reactie #4 Gepost op: 06 februari 2026, 11:14:32 »
Ik wil gewoon de gegevens die er staan achter elkaar gesorteerd zien hoeveel kolommen er ook zijn, maar blijkbaar zal het wel niet lukken want er zal altijd wel 1 of meerdere lege cellen zijn.

Maar ok toch geprobeerd.....

JP.
Windows 10 Pro   NLD 64bit
Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz 800
PRIME Z270-P
NVIDIA GeForce GTX 1050 Ti 4095MB 1920 x 1080
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
Nr: 1 Model: Samsung SSD 850 EVO 250GB
Nr: 2 Model: WDC WD2003FZEX-00SRLA0
Nr: 3 Model: Canon TS8100 series USB Device
AV: Avast free
FW: Windows Firewal Enabled: True

Offline xps350

  • Lid
  • *
  • Berichten: 21
  • Geslacht: Man
  • Domme vragen bestaan niet, domme antwoorden wel
Re: Sorteren met lege cellen
« Reactie #5 Gepost op: 06 februari 2026, 11:44:17 »
Het probleem zit hem waarschijnlijk in het woord "gewoon". Wat jij gewoon vindt, vindt iemand anders misschien niet zo gewoon.

Je hebt (mij) onvoldoende duidelijk kunnen maken wat de bedoeling is. Je hebt een voorbeeld gegeven en ik heb een mogelijke oplossing aangedragen (de kolommen apart sorteren). Wat er mis is met die oplossing vertel je niet. Volgens mij doet die "gewoon" wat je voorbeelden laten zien.

Als je een oplossing zoekt waarbij je "gewoon" het hele gegevensgebied selecteert en dat in een keer op de gewenste manier sorteert, gaat dat niet lukken. Daarmee sorteer je complete rijen en zoals je zelf al in je voorbeeld liet zien is dat daar niet het geval.

Misschien moet je het nog eens proberen met een minder abstract voorbeeld.
Groeten,

Peter

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.679
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Sorteren met lege cellen
« Reactie #6 Gepost op: 06 februari 2026, 14:24:36 »
Hey Peter,

Je hebt volkomen gelijk dat dit in het werkblad zelf niet mogelijk is (het hele bereik (A1:D8) selecteren en dan laten sorteren) en verwachten dat alles netjes bovenaan staat. Als dit voor eenmalig sorteren is bedoeld, dan zal je voorstel aan JeanPierre om per kolom te sorteren de beste weg zijn.

@JeanPierre, indien je deze bewerking veel wilt uitvoeren op grote bereiken, dan zal je best met een macro werken. Die kan je in een module van ThisWorkbook zetten, en een activeringsknop voor de macro in het lint zetten.

De macro zelf is eenvoudig:

Sub SorteerElkeKolomAutomatisch()

    Dim rng As Range, c As Range
    Dim Koptekst As VbMsgBoxResult
    Dim Keuze As XlYesNoGuess
 
    Koptekst = MsgBox("Bevatten de kolommen een Koptekst?", vbYesNo + vbQuestion, "Koptekst in het bereik?")
    If Koptekst = vbYes Then
        Keuze = xlYes
    Else
        Keuze = xlNo
    End If
    Set rng = ActiveSheet.UsedRange
       For Each c In rng.Columns
        c.Sort Key1:=c.Cells(1), Order1:=xlAscending, Header:= Keuze
    Next c
End Sub

Zo blijft de macro in elk werkboek beschikbaar.
Voor meer uitleg over de plaatsing van de macro en de knop in het lint vraag je maar op.

Aan jou de Keuze....

:) SoftAid :)             
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !
Windows 11 Home 24H2   Office 2024 Pro Plus Nederlands

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.346
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Sorteren met lege cellen
« Reactie #7 Gepost op: 07 februari 2026, 08:29:06 »
JeanPierre, leer "database" te denken. Indien gegevens op 1 record (regel) NIET bij elkaar horen, moet je er ook zichtbaar gescheiden tabellen van maken. Je data zou dan in Kolom A, C, E en G moeten staan. Dan wordt je "sorteer idee" veel logischer. Dus hoe komt je dataset precies tot stand? Waarom gegevens verdelen over verschillende kolommen? Kan je niet beter werken in 1 kolom en dan eventueel via formules zorgen voor een rapportage in meerdere gesorteerde kolommen?
______________________________

Groet, Leo

Offline JeanPierre

  • Oplosser
  • ****
  • Berichten: 876
  • Geslacht: Man
  • Je bent nooit te oud om te leren!
Re: Sorteren met lege cellen
« Reactie #8 Gepost op: 07 februari 2026, 08:31:31 »
Sorry ik was gisteren niet meer thuis,

Maar jammer SoftAid het is nog niet helemaal zoals ik het wilde.... de bedoeling is dat elke kolom alfabetisch volgt op de vorige kolom en als ik in een nieuwe kolom woorden ingeef dat die ook alfabetisch tussen de andere gesorteerd worden.

Ik heb nog een voorbeeld meegestuurd waar in een vijfde kolom dubbele letters staan, dus de bedoeling is dat die meegesorteerd worden onder de andere letters.

Ik ben misschien héél moeilijk aan het doen, maar als het niet mogelijk is dan passen we ermee.

Oei, terwijl ik bezig was is er nog een melding geweest sorry.

JP
Windows 10 Pro   NLD 64bit
Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz 800
PRIME Z270-P
NVIDIA GeForce GTX 1050 Ti 4095MB 1920 x 1080
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
Nr: 1 Model: Samsung SSD 850 EVO 250GB
Nr: 2 Model: WDC WD2003FZEX-00SRLA0
Nr: 3 Model: Canon TS8100 series USB Device
AV: Avast free
FW: Windows Firewal Enabled: True

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.346
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Sorteren met lege cellen
« Reactie #9 Gepost op: 07 februari 2026, 08:47:48 »
JP, ik heb even je gegevens in Kolom A gezet en vervolgens deze dynamische matrix formule (samen met CoPilot) voor je aangemaakt.
=LET(bron; A:A;
  namen; SORT(UNIQUE(FILTER(bron; bron<>"")));
  rijen_per_kolom; CEILING(ROWS(namen)/4; 1);
  WRAPCOLS(namen; rijen_per_kolom;"")
)
Ik heb op m'n werk helaas niet de Translator draaien en dus niet de mogelijkheid om de Engelstalige functies naar Nederlandse om te zetten. Al gok ik dat de Excel dit voor jou in de bijlage zelf wel zal doen. Voorwaarde is wel dat je MS365 gebruikt.
______________________________

Groet, Leo

Offline JeanPierre

  • Oplosser
  • ****
  • Berichten: 876
  • Geslacht: Man
  • Je bent nooit te oud om te leren!
Re: Sorteren met lege cellen
« Reactie #10 Gepost op: 07 februari 2026, 08:58:27 »
Dank u RedHead, maar jammer genoeg heb ik daar geen kaas van gegeten en weet ik eigenlijk niet wat ik daar mee moet doen........sorry.

Ik werk met Office 2021 Pro.

Grtjs,
Jean-Pierre.
Windows 10 Pro   NLD 64bit
Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz 800
PRIME Z270-P
NVIDIA GeForce GTX 1050 Ti 4095MB 1920 x 1080
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
Nr: 1 Model: Samsung SSD 850 EVO 250GB
Nr: 2 Model: WDC WD2003FZEX-00SRLA0
Nr: 3 Model: Canon TS8100 series USB Device
AV: Avast free
FW: Windows Firewal Enabled: True

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.346
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Sorteren met lege cellen
« Reactie #11 Gepost op: 07 februari 2026, 09:57:25 »
JP, helemaal niet erg dat je er geen kaas van hebt gegeten, maar wát gebeurt er als je m'n bijlage opent? Zie je dan ook keurig deze output?

______________________________

Groet, Leo

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.679
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Sorteren met lege cellen
« Reactie #12 Gepost op: 07 februari 2026, 10:06:21 »
Hallo Redhead en JeanPierre,

hier de code vertaalt naar Nederlandse Excel:

=LET(bron; A:A;
     namen; SORTEREN(UNIEK(FILTEREN(bron; bron<>"")));
     rijen_per_kolom; AFRONDEN.BOVEN(AANTALRIJEN(namen)/4; 1);
     KOLOMMEN.WIKKELEN(namen; rijen_per_kolom; "")
)

Maar..... omdat jou 2021-versie geen dynamische arrays ondersteunt, zal ze niet werken bij jou.
Dit is echt 365-stuff. Dus niet bruikbaar in 2021.

@RedHead,

Je kan in 2021 een UDF maken die jou Functie nabootst en:
- Lege waarden verwijderd
- Unieke waarden verzameld
- Sorteert
- Aantal rijen per kolom berekend
- Waarden kolom per kolom invult
- Lege cellen opvult met ""

Precies wat jouw 365‑formule deed.

Hier eventueel de code voor een UDF (met hulp van copiloot):

Function Oplossing_JP(rng As Range, Optional cols As Long = 4) As Variant
    Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary")
    Dim arr(), temp(), out()
    Dim i As Long, r As Long, c As Long, n As Long, rows As Long

    'Unieke niet-lege waarden verzamelen
    For i = 1 To rng.Rows.Count
        If Trim(rng.Cells(i, 1).Value) <> "" Then
            If Not dict.Exists(rng.Cells(i, 1).Value) Then
                dict.Add rng.Cells(i, 1).Value, rng.Cells(i, 1).Value
            End If
        End If
    Next i

    'Dictionary naar array
    temp = dict.Items
    n = UBound(temp) + 1

    'Sorteren
    QuickSort temp, LBound(temp), UBound(temp)

    'Aantal rijen per kolom
    rows = WorksheetFunction.RoundUp(n / cols, 0)

    'Uitvoer-array
    ReDim out(1 To rows, 1 To cols)

    i = 0
    For c = 1 To cols
        For r = 1 To rows
            If i < n Then
                out(r, c) = temp(i)
                i = i + 1
            Else
                out(r, c) = ""
            End If
        Next r
    Next c

    Oplossing_JP = out
End Function

Sub QuickSort(arr, first, last)
    Dim low As Long, high As Long
    Dim mid, temp
    low = first: high = last: mid = arr((first + last) \ 2)

    Do While low <= high
        Do While arr(low) < mid: low = low + 1: Loop
        Do While arr(high) > mid: high = high - 1: Loop
        If low <= high Then
            temp = arr(low): arr(low) = arr(high): arr(high) = temp
            low = low + 1: high = high - 1
        End If
    Loop

    If first < high Then QuickSort arr, first, high
    If low < last Then QuickSort arr, low, last
End Sub

De functie wel ingeven als Matrixformule (Ctrt+Alt+Enter) 

Dit in een module van Personal.xlsb en die 2021 wordt weer een functie rijker  ;D

Groeten,

:) SoftAid :)             
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !
Windows 11 Home 24H2   Office 2024 Pro Plus Nederlands

Offline JeanPierre

  • Oplosser
  • ****
  • Berichten: 876
  • Geslacht: Man
  • Je bent nooit te oud om te leren!
Re: Sorteren met lege cellen
« Reactie #13 Gepost op: 07 februari 2026, 11:36:18 »
Sorry jongens maar dit is voor mij Latijn hoor, ik weet echt niet waar en in wat ik deze code moet kopiëren of plaatsen en Personal.xlsb vind ik ook nergens in Excel Start.  :love:

Grtjs

Jean-Pierre.
Windows 10 Pro   NLD 64bit
Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz 800
PRIME Z270-P
NVIDIA GeForce GTX 1050 Ti 4095MB 1920 x 1080
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
Nr: 1 Model: Samsung SSD 850 EVO 250GB
Nr: 2 Model: WDC WD2003FZEX-00SRLA0
Nr: 3 Model: Canon TS8100 series USB Device
AV: Avast free
FW: Windows Firewal Enabled: True

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.679
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Sorteren met lege cellen
« Reactie #14 Gepost op: 07 februari 2026, 12:22:18 »
Hallo JeanPierre,

volkomen begrijpelijk. Dergelijke code wordt pas dan gemaakt, als een bepaalde Functie in het werkblad niet beschikbaar is. Voorbeeld: Als jij in een Cel de functie =SOM() gebruikt, dan bestaat deze functie al in jou Excel, en kan je ze aanroepen door =SOM() te typen (en de parameters 'cellen' te selecteren). Als een bepaalde Functie NIET bestaat in jou Excel-versie, dan is het soms mogelijk om deze functie op te nemen of te schrijven, en ze toe te voegen aan PERSONAL.XLSM. Dit laatste is een Macro-achtige code die al jou eigen instellingen opslaat, en op elk Excel blad toepast.

De code die ik meegaf is afgeleid van de code die RedHead gaf. Maar omdat RedHead met een Engelstalige versie 365 werkt, zitten daar functies tussen die niet werken in jou 2021 (of mijn 2024).

Die functies kan je wel zelf aanmaken met UDF's (UserDefinedFunctions)

Maar eerst zou ik graag toch nog enkele vragen beantwoord zien:

– welke kolom(len) de bron vormen
– hoeveel kolommen je in de output wil
– of het gesorteerd moet worden
– of dubbele waarden eruit moeten
– of lege cellen genegeerd moeten worden”

Ik vraag dit omdat je vragen tot nu toe niet echt duidelijkheid scheppen.

Als het mogelijk is stuur dan één bestand mee, met 1 tabblad (Voor), met hoe je te sorteren werkblad er uit ziet, en 2, een werkblad (NA) hoe jij de resultaten van het sorteren wenst te zien.  Noteer in dat werkblad ook eventuele afwijkingen of toevoegingen, opmerkingen enz...

Een oplossing is er. Maar als dit "sorteren" voor eenmalig gebruik is, dan kan je beter handmatig werken. Gaat het over een grote hoeveelheid data (vermeld dat dan) of iets wat je regelmatig gaat doen (je schrijft: "als ik data toevoeg dan moet deze data mee gesorteerd worden") dan helpen we je met een UDF-functie (is heel eenvoudig)

:) SoftAid :)             
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !
Windows 11 Home 24H2   Office 2024 Pro Plus Nederlands

 


www.combell.com