Excel Kreuztabelle Turnier automatisch befüllen - kleiner Fehler?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Bevor ich den Fehler suche etwas, das mir direkt ins Auge springt:

3-(ZEILE(D3)-ZEILE(D$3)

ZEILE(D$3) ist immer 3.
3-(x-3) = 6-x

Du kannst es zu 6-ZEILE(D3) vereinfachen.

______________

Mir erschließt sich zwar nicht, wie man eine Matrix / einen Bereich von einer Zahl subtrahieren kann, aber es scheint zu funktionieren.

Am Effekt gearbeitet kannst du deinen Fehler beheben, indem du auf =0 abfragst:

=LET(Matrix;MTRANS(BEREICH.VERSCHIEBEN(E7:E9;0;0;3-(ZEILE(F5)-ZEILE(F$3));)); WENN(Matrix=0;"";$C$2-Matrix) )

Gipfelstuermer 
Beitragsersteller
 08.08.2024, 16:15

Nachtrag

nein es funktioniert leider nicht jetzt funktioniert die Formel nicht mehr richtig, da wenn ich eine 0 eintrage nicht mehr auf der Gegenseite eine 1 erscheint. War also leider noch nicht die Lösung, im nachhinein betrachtet eigentlich logisch

Gipfelstuermer 
Beitragsersteller
 08.08.2024, 15:54

Hallo Suboptimierer, vielen Dank für die Antwort

3-(x-3) = 6-x

ja solche Konstrukte entstehen bei mir oft "provisorisch" weil ich sie so schreibe wie ich denke ohne zu optimieren und wie es immer ist Provisorien halten am Längsten.

Außerdem kommt hinzu, dass die zweite 3 ja ein Zellbezug ist, der wird ab und an auch mal angepasst, wenn die Matrix nämlich in einer anderen Zeile beginnt. Solange es sich nur horizontal verschiebt ist alles gut, aber sobald es vertikal geändert wird muss D$3 angepasst, da ist es für mich irgendwie einfacher dies über Zelle zu machen, als die 6 immer aufzusummieren streng genommen könnte ich die 3 ganz vorne auch noch dynamisieren, denn die 3 ist ja nur die Anzahl der Zellen der größten Zellmatrix bei einer 4X4 Kreuztabelle wäre es eine 6X6 Kreuztabelle müsste es also entsprechend eine 5 sein.

Mir erschließt sich zwar nicht, wie man eine Matrix / einen Bereich von einer Zahl subtrahieren kann, aber es scheint zu funktionieren.

Naja du subtrahierst ja nicht direkt die Matrix sondern subtrahierst von 1(Zelle C2) den Inhalt der jeweiligen Zelle innerhalb der Matrix und transponierst das Ergebnis in die entsprechende Zelle der gedrehten Matrix (Mtrans) und zwar jede einzeln für sich.

.... indem du auf =0 abfragst:

ich hätte schwören können, das hab ich gestern gemacht aber tatsache es geht.

Was sich mir dennoch nicht erschließt warum funktioniert es bei den vorherigen Formeln in D4 und E5 und F6 bringt dauerhaft eine 1

Suboptimierer  08.08.2024, 16:01
@Gipfelstuermer

Ich vermute, dass es daran liegt, dass es eine 1x1 Matrix ist, welche als Wert interpretiert wird und beim Interpretieren eine 0 herauskommt.

Ist aber schwer für mich zu sagen, weil ich wie gesagt noch keine Erfahrungen mit dem Matrixansatz habe.

Gipfelstuermer 
Beitragsersteller
 08.08.2024, 16:17
@Suboptimierer

Das ist vielleicht ein Ansatz, ich schau mal ob ich in die Richtung was raus bekomme, ob man der Wert irgendwie umformen kann.

Keien Ahnung.
Aber ich würde schon nochmal die Formatierungen checken!

Vertikal mehr als 7, Horizontal mehr als F macht auf jeden Fall keinen Sinn.
Du gehst aber teilweise auf D8, oder E9 - check das mal.

Woher ich das weiß:Recherche

Gipfelstuermer 
Beitragsersteller
 08.08.2024, 04:14
Aber ich würde schon nochmal die Formatierungen checken!

Zitat von mir aus der Frage: Formatierung steht in allen betreffenden Zellen auf Standard (vorletzte Zeile)

Vertikal mehr als 7, Horizontal mehr als F macht auf jeden Fall keinen Sinn.

Jetzt bin ich etwas verwirrt, vertikal mehr als 7? Wie kommst du auf mehr als 7? Du weißt wie -> Bereich.Verschieben funktioniert? Das macht nämlich total Sinn!

Ich gebe in Zelle E5: D6:D8 als Basis Bereich an, der 3 Parameter bestimmt die Höhe hier schreibe 3-((ZEILE(E4)-ZEILE(E$3))

Zeile(E4) ergibt logischerweise 4, Zeile(E$3) logischerweise 3 => 4-3 = 1

Also wird von 3-1 abgezogen womit 2 herauskommt, die Höhe wird als durch Bereich verschieben von D6:D8 auf D6:D7 reduziert (2 hoch). Und exakt genauso verhält sich die Formel in F6 nur das es da um 2 reduziert wird, also nur noch 1 hoch.

Sprich jede Zeile die ich weiter runter komme, wir der Bereich auf der anderen Seite des Xes in der vertikalen um 1 kürzer, was ja genau dem Prinzip einer Kreuztabelle entspricht.