Brauchen Sie Hilfe?
Web:     Online-Formular
E-Mail:  
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Tel:       +49(0)151 / 164 55 914

Nutzen Sie für Ihre Anfrage unser Online-Formular oder senden Sie uns eine E-Mail an Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!. Gerne können Sie aber auch direkt telefonisch Kontakt aufnehmen.

   
     Referenzen
 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe
   

Unikate aus Liste extrahieren

In diesem Beispiel liegt eine Liste vor, die einen Eintrag jeweils mehrfach enthält. Ziel ist nun, aus der Liste jeden der mehrfach vorkommenden Werte jeweils nur ein einziges mal auszulesen und in einer separaten Tabelle darzustellen. Die Lösung ist formelbasiert und funktioniert ohne VBA.

Die folgend Abbildung zeigt die Ausgangstabelle:

Ziel ist nun, aus der Spalte "Ort" jeden Ortsnamen ein einziges mal in einer separaten Tabelle auszulesen.

Die Lösung finden Sie in der Beispieldatei, welche Sie am Ende der Lösung herunterladen können.

Lösungsweg

Das Arbeitsblatt Demonstration zeigt den Lösungsweg. Es werden einige Hilfsspalten für Nebenrechnungen benötigt (Spalten A, B, C und D). In Zelle A2 wird die Zeilenanzahl der Ursprungstabelle mit der Formel 65536-COUNTBLANK(Ausgangssituation!C:C)-1 ermittelt. (Hinweis: Der Wert 65536 ist für Excel 2003, nicht für Excel 2007 zutreffend.)

In Spalte C wird in der obersten Zelle zunächst als Startwert die Zeilennummer der ersten Tabellenzeile eingetragen. In den folgenden Zeilen sollen die Positionen der folgenden Unikate in der Ursprungstabelle ermittelt werden. Für Duplikate wird die Position 0 vergeben.
Die Formel in B3 lautet
WENN(UND(NICHT(ISTLEER(Ausgangssituation!C3)),Ausgangssituation!C3<>"",
ISTNV(VERGLEICH(Ausgangssituation!C3,BEREICH.VERSCHIEBEN(Ausgangssituation!$C$2,0,0,
ZEILE(Ausgangssituation!C3)-$B$2,1),0))),ZEILE(Ausgangssituation!C3),0)
.

Diese Formel untersucht, ob drei Kriterien (UND) erfüllt sind. Die ersten beiden Kriterien fragen, ob die aktuelle Zelle in der Ursprungstabelle nicht leer ist bzw. eine leere Zeichenkette enthält. Das soll verhindern, dass leere Zellen oder leere Zeichenketten als Unikat gezählt werden.

Das dritte Kriterium ist die Prüfung, ob der Wert der aktuellen Zelle in der Ursprungstabelle weiter oben (BEREICH.VERSCHIEBEN) schon einmal vorgekommen ist (VERGLEICH). Wenn das nicht zutrifft, handelt es sich um ein Unikat, und die Zeilennummer wird eingetragen, sonst 0.

In der Hilfsspalte C wird mit der Formel WENN(B2<>0,"U","D") ein Kennzeichen eingetragen, ob es sich um ein Unikat ("U") oder Duplikat ("D") handelt. In D2 wird zunächst die Startzeile eingetragen. Darunter werden die Positionen der Unikate aufgelistet. Das erledigt die Formel

WENN(ODER(D2=MAX(B:B),D2=0),0,BEREICH.VERSCHIEBEN(BEREICH.VERSCHIEBEN($B$2,D2-2,0,1,1),VERGLEICH("U",BEREICH.VERSCHIEBEN($C$2,D2-1,0,$A$2-D2+1,1),0),0,1,1)).

Die Formel prüft zunächst, ob die bisher ermittelte Position bereits die letzte Position (MAX) oder 0 (Ende-Kennzeichen) ist. Wenn ja, wird 0 gesetzt. Sonst wird die nächste Position aus Spalte B übernommen, für die der Wert in Spalte C "U" ist.

Hinweise/Bemerkungen

Die Spalten A, B, C und D sind Hilfsspalten und können ausgeblendet werden. Das Ergebnis ist im Arbeitsblatt Ergebnis beispielhaft dargestellt.

Die Ergebnistabelle kann maximal so viel Zeilen haben wie die Ursprungstabelle. Deshalb wurden hier 20 Zeilen für das Ergebnis eingetragen. Wenn die Ursprungstabelle variabel ist, muss immer in der Ergebnistabelle geprüft werden, ob genügend viele Zeilen da sind. Dazu muss Spalte D eingeblendet sein. Das erste Auftreten von 0 kennzeichnet das Ende der Unikat-Liste.

Das Ergebnis sehen Sie in der folgenden Abbildung:

 

Die Lösung stammt von wilfert.de und wird mit ausdrücklicher Genehmigung auf Excel-Inside.de veröffentlicht.

Hier können Sie die Beispieldatei herunterladen.

   

Relevante Artikel

  • Bezug der Summenformel soll erhalten bleiben

      207051     A B C 1 10 =SUMME(A1:A5) =SUMME(INDIREKT("A1"):INDIREKT("A5")) 2 10     3 10     4 10     5 10       Wird nach der Zeile 3 eine neue Zeile eingefügt, passiert folgendes: Variante in Zelle B1: Der Summenbereich erweitert...

  • Tabellen dynamisch auswerten

    Dieses Beispiel zeigt, wie eine Tabelle individuell ausgewertet werden kann. In Abbildung 1 sehen Sie die Ausgangstabelle. Abbildung 1 Aufgabe ist nun, den Mittelwert für die Jahre 2010 bis 2013...

  • Fortlaufende Nummerierung bei ausgeblendeten Zeilen

    In diesem Beitrag habe ich bereits vor einiger Zeit einen Lösungsvorschlag für eine laufende Nummerierung bei Verwendung des Autofilters vorgestellt. Heute möchte ich Ihnen zeigen, wie Sie die fast...

  • Den letzten Wert einer Spalte ermitteln

    207062   Diese Funktion stimmt solange, solange sich keine Leerzeilen in der Liste befinden.   A B 1 a =INDIREKT("A"&ANZAHL2(A:A)) 2 b   3 c   4 d   5 e   6 f   Das Ergebnis dieser Funktion lautet "f"Die...

  • Zellen-Adresse für Werte aus einer Matrix ermitteln

    Dieses Beispiel zeigt, wie sich die Zellen-Adresse für das Ergebnis eines Verweises beziehungsweise für das Ergebnis einer Berechnung ermitteln lässt.Als Ausgangspunkt dient eine kleine Matrix mit...

   

Excel-Inside auf Facebook Excel-Live News blog Excel-Inside RSS-Feed Twitter Account für Excel-Inside Mail an Excel-Inside 

Programmierung
Excel Auftragsprogrammierung Access Auftragsprogrammierung
Word Auftragsprogrammierung Outlook Auftragsprogrammierung
   
Unsere Produkte
Office Schulungen VBA, Excel, Access
E-Book Formeln und Funktionen Excel 2013