Clever-Excel-Forum

Normale Version: Gezielt Umfragetexte filtern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich suche nach einer Möglichkeit in Excel die Kommentare in einer Umfrage zu filtern. Wie kann ich beispielsweise alle Kommentare von Abteilung 1 oder alle Kommentare zu Sachverhalt 3 gezielt auswählen ohne die ganzen freien Zellen zu übernehmen? Meine Tabelle hat knapp 600 Zeilen und rund 40 Spalten, händisch also schwer möglich.
[
Bild bitte so als Datei hochladen: Klick mich!
]
Hi

um Sachverhalte zu filtern nimmst du einfach die Autofilter Funktion von Excel.

Für die Abteilungen (Zeilenfilter) findest du hier zwei Varianten.
https://www.clever-excel-forum.de/thread-19039.html

Gruß Elex
Moin

Aus der Kreuztabelle muss eine Datensatzliste werden. Stichtwort: Entpivotieren.
Hallo,

anbei mal eine Entpivotisierte Tabelle mit Hilfsspalten für Index

A3 =WENN(B2<4;A2;A2+1)  hier muss die 4 anpepasst werden --> an deine tatsächlichen Anzahl Sachverhalte
B3 =WENN(B2<4;B2+1;2)

Formel einfach aufziehen -> Ist für Index(Abfrage; zeile; Spalte)
Hallo, wieso die Sache unnötig verkomplizieren (verformeln)? Man kann (und ich glaube das meinte Detlef) doch Power Query zum Entpivotieren einsetzten ... ... spart auch Platz... Und: stimmt denn deine Tabelle..?

Arbeitsblatt mit dem Namen 'Entpivotieren'
ABCDEFGHI
1ZeileSpalteAbteilungSachverhaltKommentarAbtSachverhaltKommentar
222Abteilung 1Sachverhalt 1Lorem ipsumAbteilung 1Sachverhalt 1Lorem ipsum
323Abteilung 1Sachverhalt 20Abteilung 1Sachverhalt 3Lorem ipsum
424Abteilung 1Sachverhalt 3Lorem ipsumAbteilung 2Sachverhalt 1Lorem ipsum
532Abteilung 2Sachverhalt 1Lorem ipsumAbteilung 2Sachverhalt 3Lorem ipsum
633Abteilung 2Sachverhalt 20Abteilung 3Sachverhalt 1Lorem ipsum
734Abteilung 2Sachverhalt 3Lorem ipsumAbteilung 3Sachverhalt 2Lorem ipsum
842Abteilung 3Sachverhalt 1Lorem ipsumAbteilung 4Sachverhalt 1Lorem ipsum
943Abteilung 3Sachverhalt 2Lorem ipsumAbteilung 4Sachverhalt 2Lorem ipsum
1044Abteilung 3Sachverhalt 30Abteilung 5Sachverhalt 1Lorem ipsum
1152Abteilung 4Sachverhalt 1Lorem ipsumAbteilung 7Sachverhalt 2Lorem ipsum
1253Abteilung 4Sachverhalt 2Lorem ipsumAbteilung 10Sachverhalt 1Lorem ipsum
1354Abteilung 4Sachverhalt 30Abteilung 10Sachverhalt 3Lorem ipsum
1462Abteilung 5Sachverhalt 1Lorem ipsumAbteilung 11Sachverhalt 1Lorem ipsum
1563Abteilung 5Sachverhalt 20
1664Abteilung 5Sachverhalt 30
1772Abteilung 6Sachverhalt 10
1873Abteilung 6Sachverhalt 20
1974Abteilung 6Sachverhalt 30
2082Abteilung 7Sachverhalt 10
2183Abteilung 7Sachverhalt 2Lorem ipsum
2284Abteilung 7Sachverhalt 30
2392Abteilung 8Sachverhalt 10
2493Abteilung 8Sachverhalt 20
2594Abteilung 8Sachverhalt 30
26102Abteilung 9Sachverhalt 10
27103Abteilung 9Sachverhalt 20
28104Abteilung 9Sachverhalt 30
29112Abteilung 10Sachverhalt 1Lorem ipsum
30113Abteilung 10Sachverhalt 20
31114Abteilung 10Sachverhalt 3Lorem ipsum
32122Abteilung 11Sachverhalt 1Lorem ipsum
33123Abteilung 11Sachverhalt 20
34124Abteilung 11Sachverhalt 30
35132Abteilung 12Sachverhalt 10
36133Abteilung 12Sachverhalt 20
37134Abteilung 12Sachverhalt 30

NameBezug
Abfrage=Tabelle1!$A$1:$D$13

ZelleFormel
C2=INDEX(Abfrage;A2;1)
D2=INDEX(Abfrage;1;B2)
E2=INDEX(Abfrage;A2;B2)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Entpivotisieren in VBA:


Code:
Sub M_snb()
  sn = Sheet1.Cells(1).CurrentRegion
  ReDim sp(UBound(sn) * UBound(sn, 2), 2)
    
  For j = 2 To UBound(sn)
    For jj = 2 To UBound(sn, 2)
      sp(y, 0) = sn(j, 1)
      sp(y, 1) = sn(1, jj)
      sp(y, 2) = sn(j, jj)
      y = y + 1
    Next
  Next
    
  Sheet1.Cells(20, 1).Resize(y, 3) = sp
End Sub

Ohne leere Antworten:

Code:
Sub M_snb()
  sn = Sheet1.Cells(1).CurrentRegion
  ReDim sp(UBound(sn) * UBound(sn, 2), 2)
    
  For j = 2 To UBound(sn)
    For jj = 2 To UBound(sn, 2)
      If sn(j, jj) <> "" Then
        sp(y, 0) = sn(j, 1)
        sp(y, 1) = sn(1, jj)
        sp(y, 2) = sn(j, jj)
        y = y + 1
      End If
    Next
  Next
    
  Sheet1.Cells(20, 1).Resize(y, 3) = sp
End Sub