Microsoft Excel

Herbers Excel/VBA-Archiv

Eindeutigkeit eines Schlüssels


Betrifft: Eindeutigkeit eines Schlüssels
von: Sven
Geschrieben am: 15.04.2019 14:49:06

Hallo zusammen,
ich würde gerne eine makrogestützte Prüfung bauen, die einen Schlüssel (bspw. Artikelnummer) auf Eindeutigkeit prüft. In einer Spalte stehen dafür etwa 1000 dieser Schlüssel. Gibt es da eine charmantere, vielleicht sogar werkseitig in Excel implementierte, Funktion, als via Schleife jeden Zellenwert mit jedem anderen abzugleichen? Immerhin ist die "Duplikate entfernen"-Funktion ja rasend schnell...

Danke und Grüße
Sven

  

Betrifft: ZÄHLENWENN, PoweQuery etc. (owT)
von: EtoPHG
Geschrieben am: 15.04.2019 14:58:27




  

Betrifft: AW: Eindeutigkeit eines Schlüssels
von: Daniel
Geschrieben am: 15.04.2019 15:14:12

Hi
was werkseitiges fällt mir nicht ein.
die Profi-Lösung wäre wahrscheinlich, die Daten in ein Dictionary einzulesen mit den Artikelnummern als Key und im Item den Wert immer um 1 zu erhöhen.
(das ist quasi ZählenWenn für alle Werte in einem durchlauf und damit wesentlich schneller)

die Anfängerorientierte elegante Variante wäre, die Liste nach den Artikelnummern aufsteigend zu sortieren (im Sortieren ist Excel sehr schnell)
dann brauchst du, um zu überprüfen ob eine Artikelnummer Eindeutig ist, diese nur mit ihren beiden Nachdbarzellen zu vergleichen und mehr mit dem ganzen Datensatz.

Gruß Daniel


  

Betrifft: AW: Eindeutigkeit eines Schlüssels
von: Sven
Geschrieben am: 15.04.2019 15:26:36

Hallo Daniel,

in die Sache mit dem Dictionary lese ich mich mal ein. Hast Du da noch weitere Tipps zu oder Erfahrung?
Da ich die Info in einer Userform brauche (grüne Ampel = eindeutig), bringen mir Pivot & Co. leider nicht viel.
Grüße


  

Betrifft: AW: Eindeutigkeit eines Schlüssels
von: Daniel
Geschrieben am: 15.04.2019 15:34:58

Hi
kommt darauf an, was für Informationen du benötigst.
wenn es dir reicht zu wissen, "Duplikate vorhanden - ja oder nein" könntest du auch die Spalte an eine freie Stelle kopieren, dort das Duplikate entfernen auf die Spalte anwenden und dann überprüfen, ob die Anzahl der einträge kleiner geworden ist (Worksheetfunction.CountA)
die Spalte kannst du ja wieder löschen.
Gruß Daniel


  

Betrifft: AW: Eindeutigkeit eines Schlüssels
von: Sven
Geschrieben am: 16.04.2019 09:20:42

Gute Idee. Probiere ich aus.


  

Betrifft: ohne VBA
von: UweD
Geschrieben am: 15.04.2019 15:24:49

Hallo

>> Gibt es da eine charmantere, vielleicht sogar werkseitig in Excel implementierte


Bedingte Formatierung??

 AB
1Schlüssel 
2aa 
3bb 
4cc 
5dd 
6aa 
7ff 
8gg 
9  
10  
11  
die bedingte Formatierung Fülleffekte, Symbole, Datenbalken
werden in dieser Tabelle nicht dargestellt

Bedingte Formatierung Haupttabelle 1  
Wird angewendet auf   Nr. Bed.  Regeltyp  Operator   Formel1   Formel2   Format Schrift Füll-farbe   Unterstrichen   Schrift- farbe Muster   Muster-farbe Typ Bereich
$A$2:$A$1001.Bed.: Formel ist =ZÄHLENWENN($A:$A;$A2)>1  255         2$A$2:$A$10
Bedingte Formatierung Haupttabelle 2 oberere/unterer Bereich    
Wird angewendet auf   Nr. Bed.  Format Zelle Anhalten Auswahl   Anzeige   Anzahl   Durchschnitt   Typ   Bereich
$A$2:$A$1001.Bed.   Falsch          2$A$2:$A$10
Die Bedingungen wurden mit Excel-Version ab 2007 ausgelesen.

http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://Hajo-Excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 25.14 einschl. 64 Bit




LG UweD