Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: MTRANS oder INDIREKT

MTRANS oder INDIREKT
16.07.2015 09:50:03
Nik
Hallo zusammen,
ich habe eine große Tabelle mit ziemlich vielen Zellbezügen über mehrere Arbeitsblätter verteilt.
Habe bei einigen die INDIREKT Formel benutzt, da ich in dem einen Arbeitsblatt die Formel nach Rechts ziehen wollte, aber der Zellbezug sich vertikal auf ein anderes Arbeitsblatt bezog und sich ie Zeilenzahl enstprechend erhöhen sollte.
=INDIREKT("transit!H"&SPALTE(Transit!AS$7))
Ich habe jetzt gelesen, dass INDIREKT ziemlich viel Rechenpower frisst und wenn ich noch ein Excel File mit denselben Formeln aufmache, dann kann es sein, dass Excel abstürzt.
Ich habe nun erfahren, dass ich auch mit der Array Formel MTRANS arbeiten kann. Dazu müsste ich mir aber die Mühe machen alles manuell einzutragen. Und das sind ca. 800 - 1200 Zeilen (!).
Frage:
1. Welches ist die bessere Formel, welche weniger Rechenpower frisst?
2. Liegt es überhaupt an der INDIREKT Formel, dass Excel beim kopieren und diversen Eingaben in die Knie geht? Da ich auch wirklich viele driekte Zellbezüge im File habe.
Für eure Tipps und Infos schon mal vorab Vielen Dank!
Gruß
Nik

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
weder noch, nutze INDEX() ...
16.07.2015 09:59:16
der
Hallo Nik,
... einfach so: =INDEX(transit!$H:$H;SPALTE(E1)) wenn Du die Daten beginnend z.B. ab Zeile5 aus transit!$H:$H übernehmen willst und ziehe die Formel kopierend nach rechts.
Gruß Werner
.. , - ...

AW: MTRANS oder INDIREKT
16.07.2015 10:08:18
Daniel
Hi
das Problem bei Indirekt ist, dass alle Formeln, die ein Indirekt beinhalten, bei jeder Zellwertänderung neu berechnet werden.
normalerweise prüft Excel bei einer Zellwertänderung, ob eine Formel von dieser Änderung betroffen ist und berechnet die Formel nur dann neu, wenn dies der Fall ist.
Enthält die Formel jedoch Indirekt, dann kann Excel nicht direkt erkennen, welche Zellen für diese Formel relevant sind, daher werden Formeln mit Indirekt immer neu berechnet.
ob das jetzt ein Performance-Problem darstellt oder nicht, hängt davon ab, wieviele Formeln du davon hast und ob du sie mit anderen rechenzeitintensiven Formeln kombiniert hast (z.B. ZählenWenn, SVerweis mit 4.Parameter = 0)
in den meisten Fällen kann Indirekt aber durch INDEX ersetzt werden.
Indirekt ist nur dann zwingend erforderlich, wenn der Tabellenblattname variabel ist und berechnet wird.
Ist das Tabellenblatt jedoch fix, ist INDEX die bessere Variante.
für dein Beispiel:
=Index(transit!$H:$H;SPALTE(Transit!AS$7);1)
Gruß Daniel

Anzeige
AW: MTRANS oder INDIREKT
17.07.2015 12:01:51
Nik
Erstmal einen Dank an euch beide. Mit dem INDEX funktioniert es einwandfrei.
Weitere Formeln die ich im File nutze sind:
SUMME, SUMMEWENN, WENN in Kombination mit ODER, WENN in Kombination mit INDEX, eine Menge direkte Zellbezüge in mind. 6 verschiedenen Reitern und bestimmt 8 verschiedene VBA Macros.
Ich denke ich werde es testen müssen, um sagen zu können, ob mein Geschwindigkeitsproblem sich im Nachhinein auflöst.
Ich werde definitiv berichten.
Gruß
Nik

Anzeige
AW: MTRANS oder INDIREKT
21.07.2015 11:06:03
Nik
Hallo nochmal,
wie versprochen die Rückmeldung.
Die Geschwindigkeit hat sich seit Nutzung der Formel INDEX anstatt INDIREKT mehr als verdoppelt, was an sich schon enorm ist.
Was aber umso beachtlicher ist, ist der Umstand, dass EXCEL jetzt wesentlich stabiler läuft (!)
Das ist dem Umstand geschuldet, dass, wie Daniel schon sagte, jetzt nicht mehr jede Zellwertänderung neu berechnet werden muss.
Bei mir ist dadurch nämlich EXCEL, auch bei kleinsten Aktionen durch simples Kopieren das ganze System in derart in die Knie gegangen, dass manchmal sogar Abstürze mit Datenverlust zu verkraften waren.
Deshalb, nochmal ein grosses Danke an euch ! :-)
Gruß
Nik

Anzeige
Deine Aussage ist natürlich Öl auf meine Mühle ...
21.07.2015 12:59:45
der
Hallo Nik,
... denn ich werde nicht müde, immer wieder für den Einsatz von INDEX() anstelle INDIREKT() zu werben, wo es möglich ist. Natürlich gibt es immer noch Anwendungsfälle, wo INDIREKT() eingesetzt werden muss, weil es keine entsprechende Alternative dafür gibt, aber mE kann in den meisten Fällen INDEX() eingesetzt werden.
Der Kern Deiner Aussage war mir persönlich nicht neu, aber es ist gut, sie von unabhängiger Seite immer mal wieder bestätigt zu bekommen.
Danke für Deine Rückmeldung.
Gruß Werner
.. , - ...
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

MTRANS oder INDIREKT: Die bessere Wahl für deine Excel-Formeln


Schritt-für-Schritt-Anleitung

  1. Verwendung von INDIREKT: Wenn Du die INDIREKT-Funktion nutzen möchtest, achte darauf, dass diese Formel bei jeder Zellwertänderung neu berechnet wird. Dies kann die Leistung deines Excel-Dokuments erheblich beeinträchtigen. Ein Beispiel für die Verwendung der INDIREKT-Funktion könnte so aussehen:

    =INDIREKT("transit!H"&SPALTE(Transit!AS$7))
  2. Wechsel zu INDEX: Statt INDIREKT solltest Du überlegen, die INDEX-Funktion zu verwenden, um die Leistung zu verbessern. Ein Beispiel für die Verwendung von INDEX wäre:

    =INDEX(transit!$H:$H;SPALTE(E1))
  3. MTRANS verwenden: Wenn Du mit Matrizen arbeiten möchtest, ist die MTRANS-Funktion eine gute Wahl, um die Transponierung von Daten zu ermöglichen. Diese Funktion könnte in einem Array von Zellen wie folgt verwendet werden:

    =MTRANS(A1:B2)

    Beachte, dass MTRANS als Array-Formel eingegeben werden muss, also mit Strg + Shift + Enter.


Häufige Fehler und Lösungen

  • Hohe Rechenleistung durch INDIREKT: Wenn Du feststellst, dass dein Excel-Dokument langsam wird oder abstürzt, könnte das an der Verwendung von INDIREKT liegen. In diesem Fall solltest Du die Umstellung auf INDEX in Betracht ziehen.

  • Arrays mit MTRANS: Wenn Du die MTRANS-Funktion verwendest, stelle sicher, dass Du die Formel als Array eingibst. Andernfalls erhältst Du möglicherweise unerwartete Ergebnisse.


Alternative Methoden

  • Verwendung von INDEX anstelle von INDIREKT: Wenn Du die Möglichkeit hast, INDEX zu verwenden, ist dies oft die bessere Wahl. INDEX benötigt weniger Rechenleistung und ist stabiler als INDIREKT.

  • Kombination von Funktionen: Du kannst auch die WENN-Funktion in Kombination mit INDEX verwenden, um komplexe logische Prüfungen durchzuführen.


Praktische Beispiele

  1. Beispiel für INDEX: Angenommen, Du hast in deinem Arbeitsblatt transit Daten in Spalte H und möchtest die Werte ab Zeile 5 übernehmen:

    =INDEX(transit!$H:$H;SPALTE(E1))
  2. Beispiel für MTRANS: Wenn Du eine Matrix von Werten transponieren möchtest:

    =MTRANS(A1:B2)

    Gib diese Formel als Array-Formel ein, um die Transponierung korrekt durchführen zu können.


Tipps für Profis

  • Vermeide zu viele Zellbezüge: Wenn möglich, begrenze die Anzahl der Zellbezüge in deinen Formeln. Dies kann die Leistung deines Excel-Dokuments erheblich steigern.

  • Teste deine Formeln: Wenn Du von INDIREKT auf INDEX oder MTRANS umsteigst, teste die Geschwindigkeit und Stabilität deines Excel-Dokuments nach jeder Änderung.

  • Nutze die Excel-MTRANS-Funktion effektiv: Wenn Du oft mit Matrizen arbeitest, mache Dich mit der MTRANS-Funktion vertraut, um deine Daten effizient zu verwalten.


FAQ: Häufige Fragen

1. Was ist der Vorteil von INDEX gegenüber INDIREKT?
Die INDEX-Funktion benötigt weniger Rechenleistung und ist stabiler, da sie nur bei relevanten Zellwertänderungen neu berechnet wird.

2. Kann ich MTRANS auch in englischer Excel-Version nutzen?
Ja, die MTRANS-Funktion ist auch in der englischen Version von Excel verfügbar. Die Syntax bleibt gleich, es gilt jedoch, die Funktionsnamen in Englisch zu verwenden (z. B. TRANSPOSE).

3. Wie gebe ich eine Formel als Array-Formel ein?
Um eine Formel als Array-Formel einzugeben, drücke Strg + Shift + Enter anstelle von nur Enter.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige