Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1636to1640
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
Inhaltsverzeichnis

Liste filtern

Liste filtern
01.08.2018 18:02:05
Franzl
Hallo Excelfreunde,
wahrscheinlich bin ich auf einem "Holzweg".
Bei meiner Tabelle (Beispiel) wollte ich mit Index und Vergleich die Lösung haben, aber es klappt nicht.
Kurze Beschreibung:
In der Tabelle sind Namen und Vornamen, die zu bestimmten Stationen zugelost sind, mit "x" gekennzeichnet. Nun wollte ich, dass auf einem neuen Tabellenblatt die Stationen untereinander stehen und dann links davon die jeweiligen Namen aus der Spalte D aufgelistet werden, die an dieser Station mit "x" gekennzeichnet sind.
Mit Index und Vergleich komme ich nicht zur Lösung.
Beispiel: https://www.herber.de/bbs/user/123052.xlsx
Vielleicht gibt es hier einen Blitzgedanken ...
Danke
Franzl

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA
01.08.2018 20:33:48
Fennek
Hallo,
die Formel-Spezialisten können das auch mit Formeln lösen, ich aber nur mit VBA:
Sub BuPoLiBay() With Tabelle1 ls = .Cells(2, Columns.Count).End(xlToLeft).Column For j = 5 To ls .Columns(j).SpecialCells(2).Offset(, -(j - 4)).Copy Tabelle2.Cells(j - 4, 1).PasteSpecial xlPasteValues, , , True Next j .Range("E2", .Cells(2, ls)).Copy Tabelle2.Range("A1").PasteSpecial xlPasteValues, , , True End With End Sub mfg
(es wird ein zweites Blatt benötigt)
AW: Variante
02.08.2018 08:21:07
Fennek
Hallo,
die andere Version ist zwar eigenständig, aber diese "abgeguckte" Standardlösung sollte schneller sein:

Sub F_en()
With Sheets(1).Range("D2")
ls = .End(xlToRight).Column
lr = .End(xlDown).Row
fe = Range(.Offset, .Parent.Cells(lr, ls))
End With
ReDim fn(UBound(fe, 2), UBound(fe))
For j = 2 To UBound(fe, 2)
For i = 1 To UBound(fe)
If fe(i, j)  "" Then
Z = Z + 1
fn(j - 1, 1) = fe(1, j)
fn(j - 1, Z) = fe(i, 1)
End If
Next i
Z = 0
Next j
Sheets(2).Range("A1").Resize(UBound(fn), UBound(fn, 2)) = fn
End Sub
mfg
Anzeige
AW: Liste filtern
03.08.2018 13:32:07
Franzl
Hallo Fennek,
danke für die Hilfe.
Die erste Version hat auch mit 2. Tabelle nicht geklappt. Die zweite Version klappte, muss mir nun das man in der Originaldatei anschauen und testen.
VBA ist gut aber manchmal unerwünscht ;-)
Franzl
AW: eine reine Formellösung ist möglich ...
07.08.2018 12:29:56
neopa
Hallo Franzl,
... nachfolgende Formel B3 nach unten, C2 nach rechts und C3 nach rechts und unten ziehend kopieren.
Tabelle2

 ABCDEFG
1Ergebnistabelle 
2 StationTeilnehmer 1Teilnehmer 2Teilnehmer 3Teilnehmer 4 
3 Station 1Ackermann MaxAmeis MaxAnders Max  
4 Station 2Ameis MaxAngerer MaxBaldauf Max  
5 Station 3Albert MaxAnders MaxAuer Max  
6 Station 4Albrecht MaxAppel MaxAuer MaxBaldauf Max 
7 Station 5Appel MaxAuer Max   
8 Station 6Albrecht MaxBaldauf Max   
9       

Formeln der Tabelle
ZelleFormel
C2=WENN(ZÄHLENWENN(C3:C19;"?*"); "Teilnehmer "&SPALTE()-SPALTE($B2); "")
B3=WENN(ZEILE(A1)>ZÄHLENWENN(Tabelle1!$2:$2;B$2&"*"); "";INDEX(Tabelle1!$2:$2;SPALTE(Tabelle1!E2)-1+ZEILE(A1)))
C3=WENNFEHLER(INDEX(Tabelle1!$D:$D;AGGREGAT(15;6;ZEILE(Tabelle1!$D$3:$D$99)/(Tabelle1!$E$2:$Z$2=$B3)/(Tabelle1!$E$3:$Z$99="x"); SPALTE(A1))); "")


Tabelle1

 DEFGHIJK
2Name_VornameStation 1Station 2Station 3Station 4Station 5Station 6 
3Ackermann Maxx      
4Albert Max  x    
5Albrecht Max   x x 
6Ameis Maxxx     
7Anders Maxx x    
8Angerer Max x     
9Appel Max   xx  
10Auer Max  xxx  
11Baldauf Max x x x 
12Ballhaus Max       
13Banschus Max       
14Barg Max       


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige