Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zählenwenn zweidimensionales Array

Zählenwenn zweidimensionales Array
22.03.2016 15:56:35
SteffenS
Hallo,
ich habe folgendes Problem, wo ich noch keine Lösung gefunden habe und darum Eure Hilfe brauche.
Und zwar habe ich ein zweidimensionales Array mit 4 Spalten.
In der vierten Spalte möchte ich gern die Häufigkeit der Werte in Spalte 3 Zählen.
Wie kann ich dies erreichen.
Mein aktueller Ansatz ist bis jetzt:
For i = LBound(spArray) To UBound(spArray)
spArray(k, 1) = aArray(i) 'Wert
spArray(k, 2) = Mid(aArray(i), 2, 2)
spArray(k, 3) = Mid(aArray(i), 5, 5)
spArray(k, 4) = Application.WorksheetFunction.CountIf(spArray(1, 1), spArray(k, 3))
Next i
Danke Euch schon mal.
VG Steffen Schmerler

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bin weiter aber habe noch eine Frage
22.03.2016 16:39:40
SteffenS
Hallo Zusammen,
ich habe es jetzt bis hierher geschafft:
Dim tmpAray As Variant
tmpArray = Application.WorksheetFunction.Index(spArray, 0, 3)
For i = LBound(spArray) To UBound(spArray)
If spArray(i, 1) "" Then
spArray(i, 4) = Application.WorksheetFunction.CountIf(tmpArray, spArray(i, 3))
End If
Next i
Leider erscheint bei der Ausführung immer die Meldung Objekt erforderlich.
Was mache ich falsch.
VG SteffenS

Anzeige
tmpArray ist kein (Range-)Objekt! Gruß owT
22.03.2016 19:04:16
Luc:-?
:-?

was meinst Du
23.03.2016 09:23:14
SteffenS
Hallo,
was meinst Du mit der Antwort, stehe irgendwie auf Schlauch.
Was kann ich tun damit es funktioniert
Danke nochmal
VG SteffenS

CountIf benötigt zwingend einen Bereich ...
23.03.2016 10:51:41
Luc:-?
…als 1.Argument, Steffen,
kein Variant-Datenfeld, wenn nicht gewährleistet ist, dass es ZellBezüge enthält.
Ansonsten siehe Rudis AW!
Luc :-?
Besser informiert mit …

Anzeige
AW: Zählenwenn zweidimensionales Array
23.03.2016 10:00:29
Rudi
Hallo,
das würde ich so machen:
Sub aaa()
Dim arr, oC As Object, i As Long
arr = Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp).Offset(, 2))
ReDim Preserve arr(1 To UBound(arr), 1 To 4)
Set oC = CreateObject("scripting.dictionary")
For i = 1 To UBound(arr)
'Spalte 3 zählen
oC(arr(i, 3)) = oC(arr(i, 3)) + 1
Next
For i = 1 To UBound(arr)
'Anzahl eintragen
arr(i, 4) = oC(arr(i, 3))
Next
'Mach weiter
End Sub

Gruß
Rudi

Anzeige
Danke
23.03.2016 13:27:58
SteffenS
Mit der Lösung von Rudi hat es funktioniert.
Vielen lieben Dank schon mal.
VG SteffenS
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige