Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Häufigster Wert eines Bereichs (nicht nur Zahlen)

2,356 views
Skip to first unread message

gardener56

unread,
Nov 27, 2006, 5:35:38 PM11/27/06
to
Die folgende Formel zur Berechnung des häufigsten Wert (es werden auch
nicht Zahlwerte gezählt) in einem Bereich würde ich gerne in VBA
nutzen, damit der Wert einer Variablen zugewiesen wird. Diesen Wert
möchte ich dann in eine Zelle schreiben...denn diese Indexformel ist
als Tabellenfunktion ganz schön lahm :

{=INDEX(C8:C10007;VERGLEICH(MAX(ZÄHLENWENN(C8:C10007;C8:C10007));ZÄHLENWENN(C8:C10007;C8:C10007);0))}

Könnt ihr mir helfen ?!

Claus Busch

unread,
Nov 27, 2006, 5:56:04 PM11/27/06
to
Hallo Gardener56

wir reden uns hier gern mit dem Realnamen an. Bitte trag ihn ein.

probiers doch mal mit
=MODALWERT(C8:C10007)

--
Mit freundlichen Grüssen
Claus Busch

Win XP Prof SP2; Office 2000 SP3
claus_busch(at)t-online.de

Klaus "Perry" Pago

unread,
Nov 27, 2006, 6:23:47 PM11/27/06
to

"Claus Busch" <claus...@nospam.de> schrieb im Newsbeitrag
news:15lv6z6ndrn0.18...@40tude.net...

> Hallo Gardener56
>
> wir reden uns hier gern mit dem Realnamen an. Bitte trag ihn ein.
>
> Am 27 Nov 2006 14:35:38 -0800 schrieb gardener56:
>
>> Die folgende Formel zur Berechnung des häufigsten Wert (es werden auch
>> nicht Zahlwerte gezählt) in einem Bereich würde ich gerne in VBA
>> nutzen, damit der Wert einer Variablen zugewiesen wird. Diesen Wert
>> möchte ich dann in eine Zelle schreiben...denn diese Indexformel ist
>> als Tabellenfunktion ganz schön lahm :
>>
>> {=INDEX(C8:C10007;VERGLEICH(MAX(ZÄHLENWENN(C8:C10007;C8:C10007));ZÄHLENWENN(C8:C10007;C8:C10007);0))}
>
> probiers doch mal mit
> =MODALWERT(C8:C10007)

Hallo Claus und Gardener56,

MODALWERT klappt leider nur bei Zahlen

@Gardener56:
ich würde statt der Matrixformel Nr. 66 von matrixformeln.de für diesen
großen Datenbereich (über 10.000 Zellen) einfach mit einer Hilfsspalte
arbeiten.

D8: =ZÄHLENWENN($C$8:$C$10007;C8) und herunterkopieren. Die Suche nach dem
häufigsten Eintrag:
=INDEX(C8:C10007;VERGLEICH(MAX(D8:D10007);D8:D10007;0))

Gruß
Klaus


Claus Busch

unread,
Nov 27, 2006, 6:36:59 PM11/27/06
to
Hallo Klaus,

Am Tue, 28 Nov 2006 00:23:47 +0100 schrieb Klaus "Perry" Pago:

> MODALWERT klappt leider nur bei Zahlen
>
> @Gardener56:
> ich würde statt der Matrixformel Nr. 66 von matrixformeln.de für diesen
> großen Datenbereich (über 10.000 Zellen) einfach mit einer Hilfsspalte
> arbeiten.
>
> D8: =ZÄHLENWENN($C$8:$C$10007;C8) und herunterkopieren. Die Suche nach dem
> häufigsten Eintrag:
> =INDEX(C8:C10007;VERGLEICH(MAX(D8:D10007);D8:D10007;0))

das hab ich doch glatt überlesen, dass der OP auch Texte zählen will. Nur
gut, dass du mitgelesen und mitgedacht hast. Danke.

Rainer Gärtner

unread,
Nov 28, 2006, 4:35:20 AM11/28/06
to
Hallo,

erstmal danke für eure Tipps...ja, wie oben geschildert, möchte ich
nicht nach dem häufigsten Zahlwert suchen, sondern einen Textwert...

Das mit der Hilfsspalte ist sicher einen Versuch wert, dennoch meine
Frage : Lässt sich die Formel auch in VB realisieren ?!

Gruß,
Rainer.


Claus Busch schrieb:

Thomas Ramel

unread,
Nov 28, 2006, 4:39:22 AM11/28/06
to
Grüezi gardener

gardener56 schrieb am 27.11.2006

Erstelle eine Pivot-Tabelle und ziehe das Feld mit den Werten in den
Zeilenbereich und einmal in den Datenbereich.

Sortiere dann nach den Anzahl absteigend und die ganze Auswertung ist
getan.
Wenn Du wirklich nur den am häufigsten vorkommenden Wert benötigst, kannst
Du in der Pivot-Tabelle die Top-10 auf den Wert 1 stellen.


Mit freundlichen Grüssen
Thomas Ramel (@work)

--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003 SP-1]
Microsoft Excel - Die ExpertenTipps tinyurl.com/cmned

Claus Busch

unread,
Nov 28, 2006, 4:50:16 AM11/28/06
to
Hallo Rainer,

Am 28 Nov 2006 01:35:20 -0800 schrieb Rainer Gärtner:

> erstmal danke für eure Tipps...ja, wie oben geschildert, möchte ich
> nicht nach dem häufigsten Zahlwert suchen, sondern einen Textwert...
>
> Das mit der Hilfsspalte ist sicher einen Versuch wert, dennoch meine
> Frage : Lässt sich die Formel auch in VB realisieren ?!

der Vorschlag von Thomas ist eine schöne und schnelle Lösung. Wenn du es
unbedingt in VBA haben möchtest, dann zeichne dir mit dem Makrorekorder die
Eingabe der Formel auf. Für Formel in D1 kommt dann z.B. dieser Code
heraus:
Range("D1").FormulaArray = _
"=INDEX(R[7]C[-1]:R[10006]C[-1]," _
& "MATCH(MAX(COUNTIF(R[7]C[-1]:R[10006]C[-1]," _
& "R[7]C[-1]:R[10006]C[-1]))," _
& "COUNTIF(R[7]C[-1]:R[10006]C[-1]," _
& "R[7]C[-1]:R[10006]C[-1]),0))"

Rainer Gärtner

unread,
Nov 28, 2006, 4:57:35 AM11/28/06
to
Okay...damit klappt es prima, merci.


Claus Busch schrieb:

0 new messages