Erstellung Kreuztabelle
Betrifft: Erstellung Kreuztabelle
von: Cello
Geschrieben am: 23.09.2014 13:31:23
Hallo zusammen,
ich habe ein Problem bei der Aufstellung einer Kreuztabelle.
Ich habe eine Tabelle in der in der ersten Spalte eine Identifizierungsnummer (Ident) steht und in einer zweiten Spalte eine Orga-Nummer. Jetzt möchte ich gerne eine Kreuztabelle aufstellen, in der die vertikale Spalte aus den Orga-Nummern besteht und die horizontale aus den Identnummern. Immer wenn die Orga-Nummer zu der Identnummer gehört, soll in der Kreuztabelle eine 1 stehen. Ansonsten leer.
Es kann und soll auch sein, dass mehrere Orga-Nummer zu einer Identnummer gehören
Ein Beispiel ist anbei.
https://www.herber.de/bbs/user/92767.xlsx
Kann mir einer bei dem Thema helfen?
Vielen Dank
Betrifft: Pivot-Tabelle owT
von: Rudi Maintaire
Geschrieben am: 23.09.2014 13:45:10
Betrifft: AW: Erstellung Kreuztabelle
von: Hajo_Zi
Geschrieben am: 23.09.2014 13:59:47
Pivot ist wohl der bessere Ansatz.
Tabelle2
| A | B | C | D | E | F |
1 | Ident | 2 | 11 | 39 | 97 | 111 |
2 | 375 | 0 | 0 | 0 | 0 | 0 |
3 | 1547 | Formeln teilweise in Zeile 1 nach Rechts und unten ziehen | | | | |
verwendete Formeln | |
Zelle | Formel | Bereich | N/A |
B2:F2 | =N(SUMMENPRODUKT((Tabelle1!$B$2:$B$2580=$A2)*(Tabelle1!$A$2:$A$2580=B$1))>0) | | |
Zahlenformate |
Zelle | Format | Wert |
B1 | '0;; | 2 |
C1 | '0;; | 11 |
D1 | '0;; | 39 |
E1 | '0;; | 97 |
F1 | '0;; | 111 |
B2 | '0;; | 0 |
C2 | '0;; | 0 |
D2 | '0;; | 0 |
E2 | '0;; | 0 |
F2 | '0;; | 0 |
Zellen mit Format Standard werden nicht dargestelltExcel-Inn.de |
Hajo-Excel.de |
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007 |
Add-In-Version 18.15 einschl. 64 Bit |

Betrifft: AW: Erstellung Kreuztabelle
von: Cello
Geschrieben am: 23.09.2014 14:50:45
Vielen Dank!
Ich möchte die Pivot-Tabelle jetzt auswerten und untersuchen, welche Orga mit welcher Orga zusammen die selbe Ident-Nummer haben und dies auch in einer Kreuztabelle mit 1 oder "" darstellen. Sowohl die Vertikale als auch Horizontale soll dazu die Orga-Nummern haben und wenn sie die selbe Ident-Nummer haben, soll die Kreuz-Zelle eine 1 enthalten.
Jede Orga kann dabei mit mehreren Orgas die selbe Identnummer haben.
Darüber hinaus sollte der Schnittpunkt einer Orga, die ja in der vertikalen und horizontalen Achse stehen, möglichst auch leer.
Hat hierzu jemand eine Idee?
Besten Dank
Betrifft: AW: Erstellung Kreuztabelle
von: Hajo_Zi
Geschrieben am: 23.09.2014 15:15:56
nach Deinem Beispiel ist
Waagerecht Ident
Senkrecht Orga
Werte Help
Gruß Hajo
Betrifft: AW: Erstellung Kreuztabelle
von: Cello
Geschrieben am: 23.09.2014 15:19:32
Ja genau,
die beschriebene Pivot-Tabelle nutze ich jetzt als Hilfsmittel, um die Orga-Orga Beziehung, wie oben beschrieben, mit Hilfe einer zweiten Kreuzmatrix darzustellen.
Die Frage ist aber, wie stelle ich die zweite Kreuztabelle (Orga-Orga Beziehung) dar?
Als Aussage weiß ich nachher, welche Orga mit welchen weiteren Orgas eine Beziehung hat.
Betrifft: AW: Erstellung Kreuztabelle
von: Hajo_Zi
Geschrieben am: 23.09.2014 15:21:49
dazu kann ich nichts schreiben, in der Datei steht die Orga in einer Spalte, da kann ich nicht sehen wie die einzelnen Zellen verknüpft sind.
Gruß Hajo
Betrifft: AW: Erstellung Kreuztabelle
von: Cello
Geschrieben am: 23.09.2014 15:38:55
Zunächst einmal Danke Hajo für die Unterstützung!
Ich habe anbei ein Beispiel:
https://www.herber.de/bbs/user/92768.xlsx
In dem Bsp.Ergebnis steht schließlich, ob eine Orga mit einer anderen Orga eine Beziehung hat und mit welcher bzw. mit wie vielen.
Zusammenfassung:
Reiter Ausgangstabelle: Ist die Datenstruktur, die ich habe
Reiter Zw.Schritt Pivot: Stellt die Beziehung Orga zu Ident her
Reiter Bsp_Ergebnis: Stellt die Beziehung Orga zu anderen Orgas her
Vielen Dank!
Betrifft: AW: Erstellung Kreuztabelle
von: Rudi Maintaire
Geschrieben am: 24.09.2014 11:45:04
Hallo,
also wenn A eine Beziehung mit C und D hat, und D eine mit F und G, dann hat A auch eine mit F und G sowie C mit F und G?
Geht imho nur per Code.
Sub cello()
Dim arrTmp, objId As Object, objOrga As Object
Dim arrDaten(), arrOrga, arrID
Dim i As Long, j As Long, k As Long
Dim XPOS As Long, YPOS As Long, x, y
Set objId = CreateObject("scripting.dictionary")
Set objOrga = CreateObject("scripting.dictionary")
Range("A1").Sort key1:=Range("B2"), order1:=xlAscending, Header:=xlYes
arrTmp = Cells(1, 1).CurrentRegion
For i = 2 To UBound(arrTmp)
If InStr(objId(arrTmp(i, 1)), arrTmp(i, 2)) = 0 Then
objId(arrTmp(i, 1)) = objId(arrTmp(i, 1)) & "|" & arrTmp(i, 2)
End If
objOrga(arrTmp(i, 2)) = 0
Next
arrOrga = objOrga.keys
ReDim arrDaten(1 To objOrga.Count + 1, 1 To objOrga.Count + 1)
For i = 0 To UBound(arrOrga)
arrDaten(i + 2, 1) = arrOrga(i)
arrDaten(1, i + 2) = arrOrga(i)
Next
arrID = objId.items
For i = 0 To UBound(arrID)
arrTmp = Split(arrID(i), "|")
For j = 1 To UBound(arrTmp) - 1
If IsNumeric(arrTmp(j)) Then
x = arrTmp(j) * 1
Else
x = arrTmp(j)
End If
XPOS = Application.Match(x, arrOrga, 0) + 1
For k = j + 1 To UBound(arrTmp)
If IsNumeric(arrTmp(k)) Then
y = arrTmp(k) * 1
Else
y = arrTmp(k)
End If
YPOS = Application.Match(y, arrOrga, 0) + 1
arrDaten(XPOS, YPOS) = "X"
arrDaten(YPOS, XPOS) = "X"
Next
Next
Next
With Worksheets.Add
.Cells(1, 1).Resize(UBound(arrDaten), UBound(arrDaten, 2)) = arrDaten
.Rows(1).Orientation = 90
.Columns.AutoFit
End With
End Sub
Gruß
Rudi
Beiträge aus den Excel-Beispielen zum Thema "Erstellung Kreuztabelle"