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

Meest voorkomende waarde opvragen (formule)

Status
Niet open voor verdere reacties.

Chris15

Gebruiker
Lid geworden
23 aug 2016
Berichten
556
Ik heb rijen met verschillende waarden, voorbeeld:

69d 71d 71d 46d 71d 71d 71d 71d 71d 71d 71d 46d

De meest voorkomende waarde hier is: 71d

Is hier een formule voor om het in één oogopslag te zien?
 
Ja hoor:
Code:
=INDEX(A1:L1;VERGELIJKEN(MAX(INTERVAL(VERGELIJKEN(A1:L1;A1:L1;0);VERGELIJKEN(A1:L1;A1:L1;0)));INTERVAL(VERGELIJKEN(A1:L1;A1:L1;0);VERGELIJKEN(A1:L1;A1:L1;0));0))
 
Hoi Marcel, het werkt prima!

Alleen 1 probleem waar ik zelf niet aan gedacht heb, namelijk als verschillende hoogste waarden gelijk zijn zoals:

55d 55d 55d 55d 55d 55d 45d 45d 45d 45d 45d 45d

Dan geeft de formule 55d aan terwijl ik ook eigenlijk 45d wil zien.....

Is hier een oplossing voor?
 
Of zó ? (matrixformule)

PHP:
=INDEX(A1:L1;1;MATCH(MAX(COUNTIF(A1:L1;A1:L1));COUNTIF(A1:L1;A1:L1);0))
 
Dan moet je de formule nog even naar het nederlands vertalen,

nog een optie: (ook engels)
Code:
=INDEX($A$1:$L$1;MODE.SNGL(MATCH($A$1:$L$1;$A$1:$L$1;0)))

voorziet nog niet in jouw tweede vraag
 
Staat er overigens altijd een d achter?

zo ja dan:

Code:
=MIN(MODE.MULT(--LEFT($A$1:$L$1;LEN($A$1:$L$1)-1)))&"d"
 
Laatst bewerkt:
nl versie:

Code:
=MIN(MODUS.MEERV(--LINKS($A$1:$L$1;LENGTE($A$1:$L$1)-1)))&"d"
 
De laatste code werkt Eric, maar dan geeft hij 1 waarde aan, namelijk 45d, terwijl 45d en 55d even vaak voorkomen....
 
dan haal je MIN weg, nu krijg je een matrix met mogelijke waarden

Code:
=MODUS.MEERV(--LINKS($A$1:$L$1;LENGTE($A$1:$L$1)-1))&"d"

plaats je deze formule in 1 cel, selecteer vervolgens de cel met deze formule en de cel eronder (of meerdere) druk op F2
Vervolgens druk je tegelijkertijd op control+shift+enter
 
en dan zijn we weer bijna bij aantal.als
 
Misschien is een UDF ook een optie.

Code in een standaard module plaatsen.
Code:
Function modus_udf(r As Range) As String
Dim sq, i As Long, j As Long, c00 As String
sq = r.Value
With CreateObject("scripting.dictionary")
 For i = 1 To UBound(sq, 2)
   If sq(1, i) <> "" Then .Item(sq(1, i)) = .Item(sq(1, i)) + 1
 Next i
    For j = 0 To .Count - 1
      If .Item(.keys()(j)) = Application.Max(.items) Then c00 = c00 & "; " & .keys()(j)
    Next j
  modus_udf = Mid(c00, 2)
End With
End Function
In een cel de formule aanroepen met:
Code:
=modus_udf(a1:L1)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan