Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Häufigkeiten von Zahlen in einem Feld berechnen
#1
Hallo Leute,

ich habe ein mit ReDim NumFeld(1 to 100) deklariertes Feld. Den einzelnen Feldelementen werden Zahlen und Strings zugeordnet. Den einzelnen Feldelementen können dabei auch mehrfach gleiche Zahlenwerte zugeordnet werden. Wie kann ich die Häufigkeit dieser einzelnen Zahlenelemente berechnen?

Wichtig ist mir dabei zu erwähnen, dass es sich dabei um die Berechnung von Häufigkeiten aus einem Feld handelt. Damit möchte ich darauf hinweisen, dass meiner Meinung nach die Verwendung  der bekannten Funktion WorksheetFunction.CountIF nicht möglich sein dürfte, da der Einsatz dieser Funktion ein Range-Objekt voraussetzt.


Vielen Dank schon mal für Hilfe und Anregungen.
Antworten Top
#2
Hallo,

dafür gibt es die Filter Function.

z.B.:

MsgBox 1 + UBound(Filter(NumFeld, suchwert, True, 1))

Zum Testen suchwert ersetzen.
Gruß Atilla
Antworten Top
#3
Hallo,

also "Gelbe Seiten" oder Atilla fragen. Da bin ich jetzt platt. Hatte im Netz recherchiert und bislang nichts brauchbares gefunden.

Habe mir dann selbst etwas gebastelt, Kopf zerbrochen und jetzt das! Vielen Dank!!!

Noch eine Frage: Weißt du vielleicht auch einen Trick wie man alle Positionen des Suchwertes mit einem Schlag ermitteln kann.

Ich könnte WorksheetFunction.Match nehmen, müßte dann aber wieder basteln, da ich damit nur immer die erste Fundstelle bekomme.
Antworten Top
#4
Hallo,

Antwort wieder gelöscht, da Frage fehlinterpretiert.

Nachtrag: Mit einer Schleife

PHP-Code:
Sub x()
   
Dim lngC As LonglngA As Long
   ReDim numfeld
(1 To 100)
   
   For 
lngC 0 To UBound(numfeld)
      If 
numfeld(lngC) = "Suchwert" Then lngA lngA 1
   Next lngC
   MsgBox 
"Der Suchwert wurde " lngA " mal gefunden."

End Sub 
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#5
Hallo,

die Positionen müssten in einer Schleife ermittelt werden aber nicht mit Match. Match würde Dir, wie Du selber feststellst nur die erste Position ausgeben.
Eine Lösung, wie es auf einen Schlag geht kenne ich nicht.

@Stefan
mit der Filter Function brauchst Du keine Schleife.
Gruß Atilla
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste