Frage von Infamous25, 39

Hi zusammen, ich habe eine Problem mit Excel (Formel/Marko). Tabelle mit mehreren Sheets vorhanden. Kann mit wer helfen?

Wie gesagt eine Tabelle mit mehrern Sheets. In einem Sheet stehen Daten aus 4 Abteilungen (A,B,C,D): Abteilung, Name, Meister usw. Nun möchte ich ein Übersichtsblatt gestalten, wo ich dann einmal alle Werte mit Abteilung A sehe mit den danebenstehenden Zeilen. Daneben dann dasselbe für B,C und D jeweils mit Name, Meister etc. Wie stelle ich das am besten an? Mit Formeln oder einem MAkro? Was ist einfacher zu bewerkstelligen in dem Fall?

Danke und Gruß :)

Expertenantwort
von schmiddi1967, Community-Experte für Excel, 24

Naja, ohne zu wissen wie deine einzelnen Sheets aussehen, sprich ab wann geht wo deine Tabelle in welchem Sheet los ist es schwer dir eine passende Formel zu liefern.

Aber das lässt sich ganz leicht mit einer Wenn Formel regeln, da ja wohl (rate ich jetzt mal) deine Abteilungen in Spalte A stehen und alles andere rechts daneben.

Dann könnte man mit folgender Formel alle Daten aus Sheet (Keine Ahnung wie der für Abteilung A heisst) Abteilung A in der Gesamtübersicht auflisten:

Ich gehe davon aus das du in Spalte 1 deine Überschriften hast, dann kannst du einfach in dein Tabellenblatt Gesamt oder wie auch immer gehen und da in Zelle A1 folgende Formel eintragen. Die Überschriften werden auch mit aufgelistet, brauchst du nicht vorher Eintragen.

=WENN(Tabelle1!A1="";"";Tabelle1!A1)

Tabelle 1 ist jetzt der Name für Abteilung A, diese dann einfach nach rechts und nach unten ziehen und du hast deine Daten von Abteilung A in deiner Gesamtübersicht.

Das machst du dann mit der selben Formel daneben, nur dann musst du Tabelle1 in der Formel mit dem Namen von Tabellenblatt Abteilung B anändern. Das kannst du dann auch wieder einfach nach rechts und nach unten ziehen.

Und schon ist Abteilung B auch aufgelistet.

Das wenn habe ich da mit rein gemacht, damit wenn keine Daten mehr in der Abteilung drin sind da keine 0 auftaucht, sondern die Zelle einfach leer bleibt.

Kommst du so klar damit?

Kommentar von Infamous25 ,

Hi,

ich habe mich vielleicht nicht genau genug beschrieben was das Ziel sein soll. Danke zwar erst mal für diese Formel, allerdings passt es so noch nicht. Ich erkläre nochmal genau was ich will:

Also Sheet 1 ist Gesamt und bereits mit Daten befüllt.

In diesem Gesamt Sheet sind 4 Abteilungen gelistet, A,B,C und D mit den jeweiligen Daten dahinter (18 Spalten von denen ich zirka 6 brauche)

Nun möchte ich ein zweiten Sheet Abteilung A nennen und dort sollen auch nur die Daten aus dem Gesamt Sheet welche Gruppe A betreffen einfließen.

Dasselbe dann für Gruppe B, Gruppe C und Gruppe D.

Kommentar von schmiddi1967 ,

Dann nimm deine Gesamttabelle und kopiere sie einfach 4 x, diese neuen Tabellenblätter dann einfach nach Abteilung filtern und die überflüssigen Spalten löschen oder ausblenden. Sorry aber wenn du nichts über die Aufmachung schreibst, oder ein Muster, Beispiel oder so zeigst kann die Antwort nur so ausfallen.

Kommentar von Infamous25 ,

Hi,

das ist mein Makro was ich durchlaufen lasse und was auch funktioniert.

Sub DatenInExtraBlatt()
Dim wksQ As Worksheet
Dim wksZ As Worksheet
Dim lngLZQ As Long
Dim lngLZZ As Long
Dim zell As Range
Dim Dic As Object
Dim keyD As Variant

Set Dic = CreateObject("Scripting.Dictionary")
Set wksQ = Worksheets("data_in") 'ggf. ANPASSEN

For Each wksZ In Worksheets
Dic(wksZ.Name) = ""
Next

lngLZQ = wksQ.Cells(wksQ.Rows.Count, 1).End(xlUp).Row '3=SpalteC

For Each zell In wksQ.Range("C2:C" & lngLZQ)
If zell.Value <> "" Then
If Not Dic.Exists(zell.Value) Then
Dic(zell.Value) = "clear"
Set wksZ = Worksheets.Add(After:=Sheets(Sheets.Count))
wksZ.Name = zell.Value
Else
Set wksZ = Worksheets(zell.Value)
If Dic(zell.Value) <> "clear" Then
Dic(zell.Value) = "clear"
wksZ.UsedRange.Clear 'Zieltabelle säubern
End If
End If
lngLZZ = wksZ.Cells(wksZ.Rows.Count, 1).End(xlUp).Row '3=SpalteC
zell.EntireRow.Copy wksZ.Range("A" & lngLZZ + 1)
End If
Next

End Sub

Der einzige Fehler der momentan noch vorliegt ist, dass er mir jetzt für jede Zeile ein neuen Sheet macht und nicht nur für A, B, C und D... Wo muss ich jetzt noch am Stellrad drehen um nur 4 Sheets statt guten 200 zu kreieren?

Expertenantwort
von Oubyi, Community-Experte für Excel, 13

Angenommen die Übersicht ist in Sheet 1. Die Abteilungen in Spalte A.
Dann schreibe in dem Sheet für die erste Abteilung  in A1 den Namen der Abteilung, also z.B. Abteilung A.
Dann in B1 diese Formel und runterkopieren, soweit wie nötig:

{=WENNFEHLER(INDEX('Sheet 1'!$B$1:$B$1000;KKLEINSTE(WENN('Sheet 1'!$A$1:$A$1000=$A$1;ZEILE('Sheet 1'!$A$1:$A$1000));ZEILE(A1)));"")}

**ACHTUNG!**
Das ist eine Matrixformel.
Das bedeutet: Die geschweiften Klammern {} NICHT mit eingeben, sondern die Eingabe der Formel NICHT mit ENTER abschließen, sondern mit:
STRG & SHIFT & ENTER (alle drei gleichzeitig).
DAS erzeugt die { } und macht die Formel zu einer Matrixformel.

Für die nächste Spalte aus Sheet 1 dann diese Formel in C1 und runterkopieren:

{=WENNFEHLER(INDEX('Sheet 1'!$C$1:$C$1000;KKLEINSTE(WENN('Sheet 1'!$A$1:$A$1000=$A$1;ZEILE('Sheet 1'!$A$1:$A$1000));ZEILE(A1)));"")}

usw.

Klappt es?

Kommentar von Iamiam ,

hätte ich auch so oder ähnlich vorgeschlagen. Eine Formel hat zwei Vorteile gegenüber einem Makro:

1. ist sie wesentlich schneller

2. aktualisiert sie sich selbsttätig.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten