Excel: Importieren von Zelldaten in ein anderes Blatt mithilfe der Spaltenüberschrift

Excel: Importieren von Zelldaten in ein anderes Blatt mithilfe der Spaltenüberschrift

Ich versuche, Informationen von einem Blatt in ein anderes in derselben Arbeitsmappe zu übertragen.

Ich möchte jedoch, dass die positiven Zellen mit dem Namen ihrer Spalte in die nachfolgenden Blätter importiert werden.

Zum Beispiel:

           |  Example1 | Example2 | Example3
-----------+-----------+----------+----------
List One   |     x     |          |   x
List Two   |     x     |    x     |
List Three |     x     |          |

Ich möchte also

  • in Tabelle 2 -Liste Eins

    • Beispiel 1
    • Beispiel 3

  • In Tabelle 3 -Liste Zwei

    • Beispiel 1
    • Beispiel 2

  • In Tabelle 4 -Liste Drei

    • Beispiel 1

Hoffe, das macht für irgendjemanden Sinn! Tut mir leid für die schreckliche Codierung, rostig, rostig, rostig!

Antwort1

Ich gehe davon aus, dass Ihre Titel in Zeile 1 stehen und die Daten in Zeile 2 beginnen

In der 1. Spalte(Reihe ist hier egal)Ihrer anderen Blätter, geben Sie diese Formel =OFFSET(Sheet1!$A$1,0,SMALL(IF(2:2="X",COLUMN(2:2)),COLUMN())-1)als Matrixformel mit Ctrl+ Shift+ einEnter

Kopieren Sie dies über die Zeile, und es werden die Spaltennamen aufgelistet. Das Ende ist erreicht, wenn die Formel #NUM!Fehler ausgibt.

Ändern Sie für Blatt 3 das Verhältnis 2:2 in 3:3 und so weiter für die folgenden Blätter

Antwort2

Dies ermöglicht Ihnen eine größere Anzahl von Zeilen und Spalten und setzt alles außer nur „x“ voraus. Sie können sicher sein, dass es immer „x“ ist, und dies ganz einfach ändern. Außerdem habe ich diese Namensblätter entsprechend ihrem Listennamen erstellt. Wenn keine Blätter hinzugefügt werden, können Sie diesen Teil entfernen.

Sub columnsToListSheets()
LastCol = Sheets("Sheet1").UsedRange.Columns.Count
For rowNumber = 2 To 4
i = 1
    ListName = Sheets("Sheet1").Cells(rowNumber, 1)
    Sheets.Add
     NewSheet = ActiveSheet.Name
      Worksheets(NewSheet).Cells(1, 1) = ListName
      'You may want to name the worksheet after the list
      Worksheets(NewSheet).Name = ListName

For colNumber = 2 To LastCol
                                                        '"x" may be good enough to test for
    If Worksheets("Sheet1").Cells(rowNumber, colNumber) <> "" Then
        i = i + 1
        'Worksheets(NewSheet).Cells(i, 1) = Worksheets("Sheet1").Cells(1, colNumber)
        Worksheets(ListName).Cells(i, 1) = Worksheets("Sheet1").Cells(1, colNumber)
    End If

Next colNumber
Next rowNumber
End Sub

verwandte Informationen