Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Umweg vermeiden

Umweg vermeiden
siegfried
Hallo zusammen,
ich möchte die Häufigkeit des Vorkommens einer Zahl aus verschiedenen Zellen (in unterschiedlichen Zeilen und unterschiedlichen Spalten) wissen. Nicht alle Zellen der Matrix enthalten
z.Z fasse ich die Zahlen aus den fraglichen Zellen per VBA zu einem String zusammen
(z.B. 29 236 269 19 1368 zu "29236269191368").
Dann zerlege ich den String in seine einzelnen Elemente, wobei ich jedes Element untereinander in eine Spalte schreibe. Nun kann ich die Häufigkeit bestimmen.
(also: 1 = 2x; 2 = 3x; 3 = 2x; 6 = 3x; 8 = 1x; 9 = 3x).
Kann man per VBA die Häufigkeit auch direkt ermitteln? Und wie?
Gruß Siegfried

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Umweg vermeiden
13.10.2011 20:57:24
Josef

Hallo Siegfried,
so?

Sub test2()
  Dim rng As Range
  Dim strTmp As String
  Dim intIndex As Integer
  
  For Each rng In Selection.Cells
    If rng <> "" Then strTmp = strTmp & rng.Text
  Next
  
  For intIndex = 0 To 9
    Debug.Print intIndex; Len(strTmp) - Len(Replace(strTmp, CStr(intIndex), ""))
  Next
  
End Sub



« Gruß Sepp »

Anzeige
AW: Umweg vermeiden
13.10.2011 22:33:01
siegfried
Hallo Sepp,
Danke, so klappts.
Im zweiten Schritt ermittle ich nun die Fundstellen (Zeile und Spalte), die die Zahlen enthalten, die genau 2mal vorkommen. In meinem Beispiel also die "1" und die "3".
29 236 269
19 1368
Dazu habe ich zwei verschachtele For Schleifen geschreiben ( äußere Schleife von 1 bis Anzahl Zeilen (im Beispiel = 3) und innere Schleife von 1 bis Anzahl Spalten (im Beispiel = 3).
Die erste Schleife beende ich frühzeitig (ergibt die 1. Fundstelle), die zweite Schleife lasse ich durchlaufen (ergibt die 2. Fundstelle).
Eigentlich müsste man das auch eleganter hinkriegen. Kannst Du mir auch da weiterhelfen?
Oder ein anderer?
Gruß Siegfried
Anzeige
AW: Umweg vermeiden
14.10.2011 22:18:13
Josef

Hallo Siegfried,
beschreibe doch zuerst einmal, was du genau erreichen willst. Mir kommt das alles etwas spanisch vor.

« Gruß Sepp »

vielleicht mit Formellösung...
17.10.2011 11:24:08
ingoG
Hallo Siegfried,
wenn es auch eine Formellösung tut:
im Beispiel werden die vorkommenden Ziffern in a1:d10 gezählt.
dazu in F1 bis f10 die Ziffern 0 bis 9 eintragen und in G1 folgende Matrixformel:
=SUMME(LÄNGE($A$1:$D$10))-SUMME(LÄNGE(WECHSELN($A$1:$D$10;F1;"")))
(Eingabe abschließen mit Strg-Shift-Enter)
anschließend die formel bis zeile 10 nach unten kopieren.
Gruß Ingo
PS eine Rückmeldung wäre nett...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige