185 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo!

Ich verwende in einer Tabelle Matrixformeln. Wenn ich diese mit einem Makro sortieren will kommt die Meldung: Microsoft Visual Basic, Laufzeitfehler 1004, Teile eines Arrays können nicht geändert werden.

Hatte vorher die Verknüpfungen nicht durch Matrixformeln, sondern durch direkte Verknüpfung mit den einzelenen Zellen, da hat das mit dem Sortieren funktioniert.

Gibt's da eine Möglichkeit die Tabelle mit den Matrixformeln zu sortieren, da es für mich wesentlich einfacher ist, eben mit diesen Matrixformeln zu arbeiten als alle Zellen einzeln zu verknüpfen.

Beste Grüße

13 Antworten

0 Punkte
Beantwortet von raisix Mitglied (151 Punkte)
Hallo,

vielleicht könntest du alternativ mittels Formeln sortieren (z.B. über SORTIEREN). Ich persönlich würde immer eine Formel-Lösung bevorzugen, wenn dies möglich ist. So ist es für "jeden" schnell möglich die Schritte nachzuvollziehen und es ist weniger fehleranfällig.

Ich glaube es wird nicht möglich sein, die Sortierung sonst mittels Makro durchzuführen, da das Array dies in deinem Fall immer verhindern wird.

Beste Grüße
0 Punkte
Beantwortet von
Okay, vielen Dank für Deine Antwort. Das habe ich mir schon fast gedacht.

Beste Grüße
0 Punkte
Beantwortet von
Falls die Matrixformel selbst nicht sortiert werden muss (weil sie sich aus Feldern berechnet die sortiert werden oder mit diesen verweist)

könntest Du diese an den "Rand" verschieben und nur den Rest sortieren
0 Punkte
Beantwortet von
Hi, die Matrixformel mtrans übernimmt aus einem Excelblatt Artikel, die in einer Zeile stehen und überträgt sie in ein anderes excelblatt in eine Spalte A. Neben diesen Artikeln in der Spalte A stehen dann Menge (Spalte B) und Preise (Spalte C) der Artikel. Dann erfolgt die Sortierung der drei Spalten nach Menge, wobei die Menge 0 nach der Sortierung nicht erscheint.

 Da die Spalte A (mit den Matrixformeln) mit sortiert werden soll, funktioniert das wohl nicht.
0 Punkte
Beantwortet von raisix Mitglied (151 Punkte)

Hallo,

du kannst auch die Matrix-Formel austauschen und so das Problem umgehen.

Hier mal eine alternative Idee:

=INDIREKT("Artikel!"&ADRESSE(SPALTE(A1);ZEILE(A1);4;1))

Vgl. Beispieldatei.

https://supportnet.de/forum/?qa=blob&qa_blobid=6665605975286498962

Beste Grüße

0 Punkte
Beantwortet von
Hallo Raisix

Super Idee, werde ich mal ausprobieren.

Vielen Dank für den Vorschlag
0 Punkte
Beantwortet von
Hallo Raisix!

Ich habe mal Deine Beispieldatei ausgefüllt und dann versucht bei Auswertung die drei Spalten nach Menge zu sortieren, funktioniert leider nicht. Egal ob ich nach Menge oder Preise sortieren will.

Sortiert er vielleicht nicht, weil die Formeln darin stehen.

Habe die Formeln auch bei mir eingegeben, aber auch bei mir sortiert er nicht. Sortierung erfolgt bei mir über ein Makro, aber das ist wohl egal ob über Makro oder die Sortierung über die Excel Sortierung.

Als ich die Matrixformeln statt der "Indirekt" Formeln stehen hatte, hat er ja auch nicht sortiert, aber mit der oben genannten Fehlermeldung.

Mit den jetzt eingefügten "Indirekt" Formeln kommt zwar keine Fehlermeldung, aber er sortiert auch nicht.

Vielen Dank für Deine Mühe

Beste Grüße
0 Punkte
Beantwortet von raisix Mitglied (151 Punkte)

Hallo,

anbei eine neue Datei mit leicht geänderter Formel. So geht es!

https://supportnet.de/forum/?qa=blob&qa_blobid=7502438368711070600

Alternativ habe ich eine weitere Lösung (Blatt "Auswertung2") beigefügt. Mit dieser kannst du Zellbezüge mittels Formel erstellen. Damit hättest du "echte" Bezüge und keine mittels INDIREKT. Das Endergebnis der 3 Schritte kannst du natürlich im Bereich der Spalten A-C einfügen.

Beste Grüße

0 Punkte
Beantwortet von
Hallo Raisix!

Was für eine Mühe Du Dir machst.

Vielen Dank, mit der geänderten Formel funktioniert's.

Herzlichen Dank dafür, Du ersparst mir damit eine Menge Arbeit.

Beste Grüße
0 Punkte
Beantwortet von
sofern Du über eine neuere Excelversion verfügst sollte sich das Ganze auch über

SORTIEREN(MTRANS(Artikel!B1:K3);2;1;0)

lösen lassen
...