Clever-Excel-Forum

Normale Version: Auswertung Matrix
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
[attachment=20744]


Hallo zusammen, 
jetzt habe ich mir schon die Finger wund gesucht und finde mein Thema nicht. Allerdings weiß ich auch nicht genau wonach ich suchen soll. 

Folgendes Problem habe ich:
Ich habe eine Tabelle mit folgenden Überschriften
KW, Thema, Std, Teamer 1, Teamer 2, Teamer 3, Teamer 4


Hier trage ich die Kalenderwoche ein, das Thema welches behandelt wird, die Anzahl der Stunden und bis zu 4 Teamer
und nun will ich das Ganze auswerten. 

Bislang hatte ich die gleiche Tabelle, allerdings gab es nur einen Teamer.
Ich konnte die Tabelle sehr gut mit Pivot auswerten. 
Nun habe ich aber praktische Tätigkeiten bei der mehrere Teamer eingetragen werden.
Nun habe ich keine Idee wie ich die Auswertung hinbekomme. Mit Pivot bekomme ich das nicht hin, weil Pivot immer nur die Abfrage und Berechnung für einen Teamer (Bezugsspalte) zulässt. 

Die ganze Geschichte wird jetzt auch noch durch die Größe komplex. Ich habe insgesamt eine Auswahl von 100 Teamern, wobei immer nur max. 4 Teamer eingesetzt sind. 
Ziel ist es eine gleichmäßige Belastung meiner Teamer zu erreichen um keinen zu überlasten. 

Hat jemand eine Idee wie ich das hinbekommen?
Mantra ON
Kreuztabellen können nicht pivotiert werden.
Kreuztabellen können nicht pivotiert werden.
Kreuztabellen können nicht pivotiert werden.
Kreuztabellen können nicht pivotiert werden.
Mantra OFF

Schritt 1: Kreuztabelle entpivotieren. Aus vier Teamer-Spalten eine Teamer-Spalte machen. [1]
Schritt 2: Daten mit Pivot analysieren.

[1]
Idealerweise permanent, d.h. die bisherige Kreuztabelle wird nach dem Entpivotieren entsorgt.
Ich habe etwa 10.000 Datensätze. Deinem Beispiel folgend müsste ich jeden Datensatz anfassen, kopieren und umrechnen. D.h. Wenn da 4 Teamer berechnet werden müsste ich aus einem Datensatz 4 machen.
Dann aber haut meine Berechnung der durchgeführten Stunden nicht mehr hin und es wäre sehr sehr aufwändig. 

Aber trotzdem Danke!!!
(14.11.2018, 22:19)CarstenDunkel schrieb: [ -> ]Dann aber haut meine Berechnung der durchgeführten Stunden nicht mehr hin und es wäre sehr sehr aufwändig. 
Du wirst schon wissen warum das so ist.
ja, weil ich auch die Themen mit den dazu geleisteten Stunden auswerte. So kann ich nachher feststellen, welches Thema wieviele Stunden Schulung benötigt hat.
Unabhängig davon will ich die "Belastung" der Teamer feststellen. 
Also tatsächlich etwas komplexer die ganze Sache. Smile
In einer Pivot kann man die Stunden pro KW, pro Thema oder pro Teamer auswerten.
Aber wie bereits gesagt: Du wirst schon wissen warum deine Berechnung nicht mehr hinhaut.
Die Kreuztabelle zerlegen könnte ein Makro erledigen... Allerdings solltest du es dir mit shift-del nicht verscherzen, weil der reißt hier nämlich alles im bereich Pivot- Tabelle...
leider keine Lösung in Sicht.Sad
Excel kann doch nicht alles.
Der Code entpivotiert deine Tabelle in ein neues Tabellenblatt! Danach kannst du deinen Pivottable wieder zusammensetzen! Einfach in ein Modul und starten!

Code:
Option Explicit
Sub Entpiv()
Dim LAst As Integer, LAst2 As Integer, e As Integer, i As Integer, f As Integer
Dim Da As Boolean
LAst = Sheets("Daten").Cells(Rows.Count, 1).End(xlUp).Row

For f = 1 To Sheets.Count
   If Sheets(f).Name = "Daten Entpiv" Then
      LAst2 = Sheets("Daten Entpiv").Cells(Rows.Count, 1).End(xlUp).Row
      Sheets(f).Range("A2:D" & LAst2).ClearContents
       Da = True
           Exit For
   End If
Next
   
   If Da <> True Then
           Worksheets.Add After:=Sheets(Sheets.Count)
           ActiveSheet.Name = "Daten Entpiv"
           Range("A1:C1").Value = Sheets("Daten").Range("A1:C1").Value
           Range("D1").Value = "Teamer"
   End If


LAst2 = Sheets("Daten Entpiv").Cells(Rows.Count, 1).End(xlUp).Row


For i = 2 To LAst
       
       For e = 4 To 7
               
               If Sheets("Daten").Cells(i, e).Value <> "" Then
                       Sheets("Daten Entpiv").Range("A" & LAst2 + 1 & ":C" & LAst2 + 1).Value = Sheets("Daten").Range("A" & i & ":C" & i).Value
                       Sheets("Daten Entpiv").Cells(LAst2 + 1, 4).Value = Sheets("Daten").Cells(i, e).Value
                       LAst2 = LAst2 + 1
               End If
               
       Next

Next


End Sub