Microsoft Excel

Herbers Excel/VBA-Archiv

Eindeutige Werte mit Bedingung wiedergeben


Betrifft: Eindeutige Werte mit Bedingung wiedergeben von: DMe
Geschrieben am: 17.09.2019 10:51:49

Hallo,

folgendes Problem:

Ich habe zwei Spalten mit mehreren hundert Daten. In Spalte "A" sind 5-stellige Rechnungsnummern enthalten, die auch mehrmals vorkommen können. In Spalte B sind 3-4 stellige Buchstabenkürzel eingetragen. Diese können auch mehrmals pro Rechnungsnummer vorkommen. Es kann beispielsweise sein, das Rechnung 23860 mehrmals an unterschiedlichen Stellen in Spalte A vorkommt, der Kürzel aber nicht beim ersten Mal auftaucht, sondern erst später.

Nun möchte ich in Spalte C jede Rechnungsnummer einmal wiedergeben, die in Spalte B einen Kürzel zugeordnet haben. In Spalte D entsprechend das Kürzel.

Hoffentlich habe ich mich verständlich ausgedruckt.

Hier eine Beispielsdatei:
https://www.herber.de/bbs/user/132067.xlsx

Danke für Eure Hilfe.

  

Betrifft: Makrolösung eine Option? von: 1713431.html
Geschrieben am: 17.09.2019 11:25:22

Hallo,

dann so:

Public Sub Test()
 Dim loLetzte As Long
 
 Application.ScreenUpdating = False
 
 With Worksheets("Tabelle1")
     loLetzte = .Cells(.Rows.Count, "B").End(xlUp).Row
     .Range(.Cells(1, "A"), .Cells(loLetzte, "B")).AutoFilter field:=2, Criteria1:="<>"
     With .AutoFilter.Range
         .Offset(1).Resize(.Rows.Count - 1).Copy Worksheets("Tabelle1").Cells(2, "C")
     End With
     .AutoFilterMode = False
     loLetzte = .Cells(.Rows.Count, "D").End(xlUp).Row
     .Range("$C$1:$D$" & loLetzte).RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
 End With
 End Sub
Gruß Werner
  

Betrifft: AW: Makrolösung eine Option? von: 1713436.html
Geschrieben am: 17.09.2019 11:30:56

Hallo Werner,

danke für deine Antwort und Mühe. Eine Formel-Lösung würde ich bevorzugen. Falls das nicht geht oder zu kompliziert wird, dann versuche ich es mit deiner Makrolösung.

Gruß, Daniel

  

Betrifft: AW: Eindeutige Werte mit Bedingung wiedergeben von: 1713449.html
Geschrieben am: 17.09.2019 12:08:14

Moin,

mit Power Query sind das ca. 5 Mausklicks ...
=> https://www.herber.de/bbs/user/132072.xlsx

Gruß
Günther

  

Betrifft: AW: Eindeutige Werte mit Bedingung wiedergeben von: 1713479.html
Geschrieben am: 17.09.2019 14:57:30

Hallo Günther,

danke für den Hinweis, das hat auch ganz gut geklappt.
Dennoch hoffe ich noch auf eine Lösung mit Formel.

Gruß, Daniel

  

Betrifft: AW: die von Dir gewünschte Formellösung ... von: 1713544.html
Geschrieben am: 17.09.2019 20:52:43

Hallo Daniel,

... lässt sich mit zwei Matrixfunktion(alität)sformeln, die keines spez. Formelabschluss wie eine klassische Matrixformel benötigen, realisieren. Wobei der Einfachheit halber zusätzlich Dein Text in C1 durch die Zahl 0 ersetzt wird, der ein benutzerdefinierte Zahlenformat zugewiesen wird, so dass es wieder wie der Text aussieht.

Beide Formeln ziehend weit genug nach unten kopieren.
Zu raten wäre noch dazu, dass Du Deine Quelldaten in A:B zu einer "intelligenten" Tabelle formatierst und die Formeln dafür anpasst werden(mit dem Vorteil, die Formel passt sich auf evtl. Datenerweiterung automatisch selbst an).

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCD
1R.-NrAgentAusgabe 1Ausgabe 2
223779MKi23779MKi
323779MKi23800EG
423860 23855HAAL
523860 23857ARPL
623800EG23858ARPL
723852 23860EDLI
823854 23957ARPL
923854 23958ARPL
1023854 23959ARPL
1123857ARPL  
1223957ARPL  
1323958ARPL  
1423959ARPL  
1523860   
1623858ARPL  
1723858ARPL  
1823859   
1923860   
2023860EDLI  
2123876   
3023855   
3123855HAAL  
3223855   

ZelleFormatWert
;;"Ausgabe 1"#0

ZelleFormel
C2=WENNFEHLER(AGGREGAT(15;6;A$2:A$999/(B$2:B$999<>"")/(A$2:A$999>C1);1);"")
D2=WENN(C2="";"";INDEX(B:B;AGGREGAT(15;6;ZEILE(B$2:B$999)/(A$2:A$999=C2)/(B$2:B$999<>"");ZÄHLENWENN(C$1:C2;C2))))
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg


Gruß Werner
.. , - ...

Beiträge aus dem Excel-Forum zum Thema "Eindeutige Werte mit Bedingung wiedergeben"