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

formule sorteren

Status
Niet open voor verdere reacties.

kdankers

Gebruiker
Lid geworden
28 jul 2001
Berichten
268
Hoe kan ik sorteren op formule, bijv.

A1 =(Blad1!E81)
A2 =(Blad1!E61)
A3 =(Blad1!E3)
A4 =(Blad1!E23)
A5 =(Blad1!E43)
A6 =(Blad1!E6)

Ik wil dus sorteren van laag naar hoog op deze formule. Hoe dan? Alvast bedankt!
 
Hoi,

En waarschijnlijk ook dat Blad1!E3 voor Blad1!E23 komt te staan?

Het kan wel maar eenvoudig is het niet!

Open de visual basic (Extra -> Macro)

Voeg een module in en zet de onderstaande fuction in deze module:

Function test(Rij, Kolom)
test = Cells(Rij, Kolom).Formula
End Function

In Excel zet je in een vrije kolom de formule:

=RIJ(INDIRECT(DEEL(test(RIJ(A1);KOLOM(A1));3;LENGTE(test(RIJ(A1);KOLOM(A1)))-3)))

In deze kolom verschijnt het rijnummer van de formule van A1. Vervolgens kun je op deze kolom sorteren en heb je een historische opbouw van je spreadsheet weer herstelt (ik neem aan dat dat de bedoeling was).

Jeroen
 
Selecteer de te sorteren cellen en start dan deze macro.
Code:
Option Explicit

Sub Sorteren()
  If Selection.Columns.Count > 1 Then
    MsgBox ("Deze macro werkt enkel voor een selectie binnen 1 kolom")
    Exit Sub
  End If
Dim i As Integer, j As Integer, aant As Integer
Dim t As Integer, v1 As Integer, v2 As Integer
Dim f1 As String, f2 As String
  aant = Selection.Cells.Count
  For i = 1 To aant - 1
    For j = i + 1 To aant
      f1 = Selection(i).Formula
      For t = Len(f1) To 1 Step -1
        If Not IsNumeric(Mid(f1, t)) Then
          v1 = Mid(f1, t + 1)
          t = 1
        End If
      Next t
      f2 = Selection(j).Formula
      For t = Len(f2) To 1 Step -1
        If Not IsNumeric(Mid(f2, t)) Then
          v2 = Mid(f2, t + 1)
          t = 1
        End If
      Next t
      If v1 > v2 Then
        Selection(i) = f2
        Selection(j) = f1
      End If
    Next j
  Next i
End Sub
 
Nu ben ik weer een stap verder, en heb ik weer een andere vraag:

Normaal kan je de ranglijst sorteren op nr. 1 t/m 12.
Maar ik wil dat, als twee spelers evenveel punten heeft, dezelfde ranglijst
heeft.
Kan dat in Excel??

Bijv.

1. Peter 1000
2. Hans 900
3. Kees 850
3. Jan 850
4. Jeroen 800
4. Amanda 800
5. Debbie 750

Is hier een of andere formule voor nodig?
Ik hoop dat je het weet of mij een tip geeft. Alvast bedankt.
 
Sorry,maar dan krijg ik dit:

1. Peter 1000
2. Hans 900
3. Kees 850
3. Jan 850
5. Jeroen 800
5. Amanda 800
7. Debbie 750

Dat is niet mijn bedoeling dat 4 en 6 worden overgeslagen.
Misschien iets betere formule? Ik zal eens kijken met RANGE. Toch bedankt!!
 
Hoi,

Eigenlijk had je een nieuwe vraag moeten stellen, in plaats van door te gaan in deze. Wat dacht je van de formule =als(C4=C5;A4;A4+1), waabij de punten in kolom C staan en de plaats in kolom A.

Jeroen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan