Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1252to1256
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

Zählenwenn beschleunigen

Zählenwenn beschleunigen
Jan
Hallo zusammen,
mein Problem ist folgendes:
Ich möchte die Werte in Spalte A zählen mit der Formel in B: =ZÄHLENWENN($A$1:A1;A1) (Kommt ein Wert zum zweiten Mal vor, dann erhält er den Wert 2, beim dritten mal die 3 etc.)
Soweit klappt auch alles, aber wenn ich 60.000 Zeilen habe, dauert es ewig und 3 Tage bis ich die Ergebnisse habe.
Hat jemand von euch Ideen, wie ich die Rechenoperation beschleunigen kann? Gern auch in VBA (Ergebnis gleich als Wert wäre auch super). Oder über andere Formeln.
Gruß Jan

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
0,4 sekunden ok ?
18.03.2012 17:47:45
ransi
Hallo Jan
Hier mal ein Ansatz:
Werte in A1:A60000
Tabelle1

 AB
4641
5201
6181
7681
8202
9941
10101
11801
12203
13301
14291
15571
16731
17204
18151
19601
2021
21452
22241
2371
24682
25511


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Dieser Code macht die Ausgabe in B1:B60000:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit


Public Sub machs()
    Dim Arr As Variant
    Dim L As Long
    Dim myDic As Object
    'Dim T As Double
    'T = Timer
    Set myDic = CreateObject("Scripting.Dictionary")
    Arr = Range("A1:A60000")
    Redim out(1 To UBound(Arr), 1 To 1)
    For L = LBound(Arr) To UBound(Arr)
        myDic(Arr(L, 1)) = myDic(Arr(L, 1)) + 1
        out(L, 1) = myDic(Arr(L, 1))
    Next
    Range("B1").Resize(UBound(out), 1) = out
    'MsgBox Timer - T
End Sub


ransi
Anzeige
AW: 0,4 sekunden ok ?
18.03.2012 20:45:39
Jan
Hallo Ransi,
genau das habe ich gebraucht. Spitzenklasse !!!! Das Hilft mir auf jeden Fall schon einmal sehr viel weiter.
Mir ist da gerade noch ein Gedankengang gekommen. Evtl. kannst du mir dabei auch helfen. Ich hätte vielleicht gleich schreiben sollen, was ich genau machen will, dachte aber den Rest bekomm ich alleine hin
Habe eine Beispielsdatei hochgeladen und dein Makro angepasst.
Im Sheet "Daten" sind in Spalte C die Artikelnummern, Spalte B wird durch dein Makro gezählt + die Buchstaben "NR" dahinter gesetzt. In Spalte A sollen nun Spalte B & Spalte C verbunden werden. Soweit von der Geschwindigkeit OK, auch bei so vielen Zeilen.
Mein Problem ist nun noch folgendes: Im Sheet "Ergebnis" soll jede Artikelnummer nur einmal vorkommen (Makro dafür habe ich aber nicht hier daheim) und per Sverweis die Daten aus Sheet "Daten" rübergezogen werden (Toll wenn es wieder nur Werte wären) . Hab es mal etwas farbig gemacht.
Hier habe ich nun wieder das Geschwindigkeitsproblem bei 60.000 Zeilen. Hast du da evtl. auch so eine tolle Lösung für?
https://www.herber.de/bbs/user/79432.xls
Jan
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige