Artkikel aus Verschiedenen Bereichen Filtern?
#1
Hallo,

eine kurze FRage,

ich habe eine Große Liste und versuche diese zu Filtern.

Das sieht als kleines beispuel so aus,

Nr.        Ort.
1234     FB
7890     XL
1234     SG
1234     PR
7639     SG

Ich möchte nun alle Nr. haben die nicht in Ort FB und XL vorkommen.  Würde also Ort FB rausfiltern. Nr. 1234 liegt aber zugleich noch bei zwei anderen Orten. Hier SG und PR. Und diese Zeilen sollen dann auch mit raus.    Also ist die Nr. in FB oder XL Vorhanden, fliegt diese komplett aus der Liste mit allen anderen Orten die es dazu evtl. noch gibt.
Bekomme das nur sehr umständlich hin. Und die Liste ist dafür zu Groß.
Ideen?

Danke
Top
#2
Hi,

deine Nummern sind in Spalte A, die Orte in B? Dann schaffe ein Hilfsspalte mit Formel
Code:
=A1&B1
und filtere nach dieser.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#3
Hallo,

damit hätte ich dann etwa:

A            B        C
Nr.        Ort.      Hilfsspalte
1234     FB         1234FB
7890     XL         7890XL
1234     SG         1234SG
1234     PR         1234PR
7639     SG         7639SG

Aber ich sehe noch nicht wie mir das hilft.   Wenn 1234 in FB Vorkommt  auch alle anderen 1234 zu entfernen.
Wenn ich nun Nummern finden will, die nicht im FB oder XL Vorkommen.
Übrig bleiben dürfte dann am Beispiel nur 7639 in SG
Top
#4
Hi,

ja, ich hatte dich missverstanden - mein Vorschlag passt natürlich nicht.

Allerdings erschließt sich mir auch die zweite Erklärung (noch) nicht ganz. Du schreibst:


Zitat:Wenn 1234 in FB Vorkommt  auch alle anderen 1234 zu entfernen.

Was ist, wenn 1234 nicht in FB vorkommt? Bleibt dann diese Zeile ungefiltert und sollen dann die anderen ebenfalls erhalten bleiben?
Oder sollen trotzdem alle weggefiltert werden, die nicht in FB und XL vorkommen?

Vielleicht erklärst du besser an einem realen Beispiel, was du eigentlich erreichen willst. Ich denke, deine Zahlen in Verbindung mit den Buchstabenkombinationen sind reine Platzhalter für dein eigentliches Problem.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#5
Hi

Würde ich mit dieser Hilfsspalte Versuchen.
 
____|____A___|___B__|_C_|_D_|
   1|Filter  |      |   |   |
   2|FB      |XL    |   |   |
   3|        |      |   |   |
   4|Nr.     |Ort.  |   |   |
   5|    1234|FB    |  1|   |
   6|    7890|XL    |  1|   |
   7|    2000|PR    |  0|   |
   8|    1234|PR    |  1|   |
   9|    7639|SG    |  0|   |
  10|    7890|PR    |  1|   |
  11|    5892|FB    |  1|   |
  12|    1234|SG    |  1|   |
 
C5    =ZÄHLENWENNS($B$5:$B$12;$A$2;$A$5:$A$12;A5)+ZÄHLENWENNS($B$5:$B$12;$B$2;$A$5:$A$12;A5)  'nach unten kopieren
Und jetzt nach Spalte C  = 0 Filtern
Top
#6
(08.03.2018, 23:43)WillWissen schrieb: Hi,

ja, ich hatte dich missverstanden - mein Vorschlag passt natürlich nicht.

Allerdings erschließt sich mir auch die zweite Erklärung (noch) nicht ganz. Du schreibst:



Was ist, wenn 1234 nicht in FB vorkommt? Bleibt dann diese Zeile ungefiltert und sollen dann die anderen ebenfalls erhalten bleiben?
Oder sollen trotzdem alle weggefiltert werden, die nicht in FB und XL vorkommen?

Vielleicht erklärst du besser an einem realen Beispiel, was du eigentlich erreichen willst. Ich denke, deine Zahlen in Verbindung mit den Buchstabenkombinationen sind reine Platzhalter für dein eigentliches Problem.

Hallo,
richtig das sind nur Platzhalter. Sollte aber gut zeigen was ich meine. Die Datenliste ist um einiges Größer. ca 200.000 zeilen. Und ich möchte wissen, was nicht In bestimmten Orten vorkommt. Also muss alles was bereits vorkommt, rausgefiltert werden.
Kommt 1234 in FB vor, fällt es komplett aus der Liste. egal an welchen orten es sonst noch vorkommt.  Gibt es 1234 nicht in FB bleiben alle anderen 1234 erhalten.
Top
#7
(09.03.2018, 00:02)Elex schrieb: Hi

Würde ich mit dieser Hilfsspalte Versuchen.
 
____|____A___|___B__|_C_|_D_|
   1|Filter  |      |   |   |
   2|FB      |XL    |   |   |
   3|        |      |   |   |
   4|Nr.     |Ort.  |   |   |
   5|    1234|FB    |  1|   |
   6|    7890|XL    |  1|   |
   7|    2000|PR    |  0|   |
   8|    1234|PR    |  1|   |
   9|    7639|SG    |  0|   |
  10|    7890|PR    |  1|   |
  11|    5892|FB    |  1|   |
  12|    1234|SG    |  1|   |
 
C5    =ZÄHLENWENNS($B$5:$B$12;$A$2;$A$5:$A$12;A5)+ZÄHLENWENNS($B$5:$B$12;$B$2;$A$5:$A$12;A5)  'nach unten kopieren
Und jetzt nach Spalte C  = 0 Filtern

Hallo,   ja das könnte ein Ansatz sein. ich Probiere das mal aus.  Gäbe es vielleicht auch eine möglichkeit mit Pivot Table?
Top
#8
Hi,

ich denke, dass bei 200.000 Zeilen eine PT nicht (mehr) das erste Mittel der Wahl ist. Ich würde es folgendermaßen filtern:

Arbeitsblatt mit dem Namen 'Tabelle2'
ABCDE
1Nr. Ort.1234FB
21234FBx
37890XL        
41234SG        
51234PR        
67639SG        

ZelleFormel
C2=WENN(UND(A2=$D$1;B2=$E$1);"x";"")
Verwendete Systemkomponenten: [Windows (32-bit) NT :.00] MS Excel 2013
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Wenn die verlangte Kombination vorhanden ist, nach "x" wegfiltern; danach nach Spate A filtern. Falls die Kombi nicht auftritt, brauchst du ja auch nichts weiteres mehr filtern - es bleibt alles beim alten.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#9
@Günter

müßte es nicht "oder" sein

Code:
=WENN(oder(A2=$D$1;B2=$E$1);"x";"")


Gab es Versuche mit "Autofilter"? 

Zuerst in Spalte B nach "Fb" und "Xl" filtern, dann alle Codes in Spalte A auslesen. Im dritten Schritt alle Zeilen mit den gefundenen Codes löschen.

mfg
Top
#10
Hallo,

für das gezeigte Beispiel geht:


Code:
Sub F_en()
Dim DD As Object
Set DD = CreateObject("Scripting.Dictionary")
For i = 2 To 6
   DD.Item(CStr(Cells(i, 1))) = vbNullString
Next i
With Cells(1).CurrentRegion
   .AutoFilter 2, "FB", xlOr, "XL"
   ar = .Offset(1).Columns(1).SpecialCells(12)
For Each r In ar
'Debug.Print r
   If DD.exists(CStr(r)) Then DD.Remove CStr(r)
Next r
arr = DD.keys

'Debug.Print Join(DD.keys, ", ")
   .AutoFilter
   .AutoFilter Field:=1, Criteria1:=Array(arr), Operator:=xlFilterValues
   .Copy Sheets(2).Cells(1, 1)
   .AutoFilter
End With

End Sub


Das Ergebnis wird nach Sheet(2) geschrieben.

mfg
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste