Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
760to764
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
760to764
760to764
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA; eindeutige Datensätze

VBA; eindeutige Datensätze
09.05.2006 09:00:19
Günter
Guten Morgen liebe Excelgemeinde!
Ich trage noch ein uraltes Problem mit mir rum.
Wie könnte folgendes Problem über VBA gelöst werde:
Vorgabe: Exceldatei mit 2 Arbeitsblätter "A" und "B".
Aufgabe: Im Arbeitsblatt "A" in ganzer Spalte "A" soll über VBA eine Zählung
der einmalig vorkommenden Einträge gemacht werden und diese
Anzahl ins Arbeitsblatt "B" in Zelle "A3" geschrieben werden.
Diese Einträge sehen etwas so aus: "R232" oder "A332" oder "X21"
oder "K5" und ähnlich.
Das heißt also, ich möchte keine Duplikate gezähl bekommen.
Meine Recherche bei Herber hat zu diesem speziellen Problem keine Lösung gehabt.
Schöne Grüße
Günter

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA; eindeutige Datensätze
09.05.2006 09:40:41
u_
Hallo,
{=SUMME(WENN(ZÄHLENWENN(Tabelle1!A1:A1000;Tabelle1!A1:A1000)=1;1/ZÄHLENWENN(Tabelle1!A1:A1000;Tabelle1!A1:A1000);0))}
Matrixformel! {} nicht eingeben sondern Formel mit shift+strg+enter abschließen.
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
AW: VBA; eindeutige Datensätze
09.05.2006 09:48:00
Günter
Danke erst mal!
Super, aber bei ca. 45000 Zeilen dauert das sehr sehr lange.
Dachte mir, in VBA könnte es schneller gehen.
Gruss
Günter
AW: VBA; eindeutige Datensätze oder so
09.05.2006 09:45:34
u_
Hallo,

Function Eindeutig(myRange As Range) As Integer
Dim rng As Range
For Each rng In myRange
If WorksheetFunction.CountIf(myRange, rng) = 1 Then Eindeutig = Eindeutig + 1
Next rng
End Function

Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
Anzeige
AW: VBA; eindeutige Datensätze oder so
09.05.2006 09:51:33
Günter
Danke..
Werde VBA mal testen..
merci
Günter
AW: VBA; eindeutige Datensätze
09.05.2006 10:33:19
Günter
Hallo, habe mal getestet!
Ein kleines Mißverständnis.
Durch die Funktion zählt nur die, welche nur einmalig
vorhanden sind.
Dachte mir aber, dass alle gezählt werden und die Duplikate
außen vor gelassen werden.
Gruss
Günter
AW: VBA; eindeutige Datensätze
09.05.2006 12:31:22
Erich
Hallo Günter,
probier mal (x1 schreibt eine Formel in D3 des aktiven Blatts):
Option Explicit
Sub x1()
'                    Anzahl der unterschiedlichen Einträge in Blatt Qu, A1:A100
[d3].FormulaArray = _
"=SUM(IF(Qu!R1C1:R100C1<>"""",1/COUNTIF(Qu!R1C1:R100C1,Qu!R1C1:R100C1)))"
End Sub
Sub tst1()
MsgBox OhneDubl("Qu", "A", 2)
MsgBox OhneDubl("Qu", "A", "2")
MsgBox OhneDubl2("Qu!A2:A100")
MsgBox OhneDubl2("A2:A100")
End Sub
Function OhneDubl(blat As String, spal As String, abZe As Long)
'                    Anzahl der unterschiedlichen Einträge in Blatt, Spalte, ab Zeile
'                    Aufruf: xy = OhneDubl("Qu", "A", 2)
Dim lngR As Long, ttt As String
lngR = Sheets(blat).Cells(Rows.Count, spal).End(xlUp).Row
ttt = blat & IIf(blat = "", "", "!") & spal & abZe & ":" & spal & lngR
OhneDubl = Evaluate("SUM(IF(" & ttt & ">"""",1/COUNTIF(" & ttt & "," & ttt & ")))")
End Function
Function OhneDubl2(ber As String)
'                    Anzahl der unterschiedlichen Einträge in Bereich ber
'                    Aufruf: xy = OhneDubl2("Qu!A2:A100")
OhneDubl2 = Evaluate("SUM(IF(" & ber & ">"""",1/COUNTIF(" & ber & "," & ber & ")))")
End Function
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: VBA; eindeutige Datensätze
09.05.2006 12:37:40
Günter
Danke erstmal.
Werde Testen ...
Gruss
Günter aus Frankfurt/a.M.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige