27.12.2021, 11:04
Hallo,
ich habe folgendes Problem:
Aus einer Datentabelle mit 100 Zeilen und 20 Spalten möchte ich mittels MTRANS() alle Daten in Blöcken á 20 Zeilen in eine einzige Spalte transferrieren. Diese Spalte hat somit 20x100=2000 Zeilen. Ich überprüfe anhand eines Divisors die Blockgrenzen, sodass immer an der korrekten Stelle ein neuer Zeilenblock beginnt. Das Problem nun: MTRANS() generiert mir einen Überlauf, sodass ich nicht per Copy-Paste die Formel über alle 2000 Zeilen ziehen kann. Selbst, wenn ich mittels einer WENN-DANN-Abfrage versuche, MTRANS() nur auf die entsprechenden Blockgrenzen zu legen, wird der Überlauf angezeigt. Gibt es da eine elegante Lösung, wie ich das Problem lösen kann oder muss ich tatsächlich alle 100 Blockgrenzen manuell mit der Formel befüllen?
Hier der Code (In Spalte $A steht in jeder 20.sten Zeile ein Wert):
ich habe folgendes Problem:
Aus einer Datentabelle mit 100 Zeilen und 20 Spalten möchte ich mittels MTRANS() alle Daten in Blöcken á 20 Zeilen in eine einzige Spalte transferrieren. Diese Spalte hat somit 20x100=2000 Zeilen. Ich überprüfe anhand eines Divisors die Blockgrenzen, sodass immer an der korrekten Stelle ein neuer Zeilenblock beginnt. Das Problem nun: MTRANS() generiert mir einen Überlauf, sodass ich nicht per Copy-Paste die Formel über alle 2000 Zeilen ziehen kann. Selbst, wenn ich mittels einer WENN-DANN-Abfrage versuche, MTRANS() nur auf die entsprechenden Blockgrenzen zu legen, wird der Überlauf angezeigt. Gibt es da eine elegante Lösung, wie ich das Problem lösen kann oder muss ich tatsächlich alle 100 Blockgrenzen manuell mit der Formel befüllen?
Hier der Code (In Spalte $A steht in jeder 20.sten Zeile ein Wert):
Code:
=WENN($A1<>"";MTRANS(BEREICH.VERSCHIEBEN(N_MatrixKalkulationÜber;VERGLEICH($A1;T_Kalkulationen[Kalkulationen];0)-1;0;1;SPALTEN(N_MatrixKalkulationÜber)));"")