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

Excel array Formal als Makro darstellen

Forumthread: Excel array Formal als Makro darstellen

Excel array Formal als Makro darstellen
11.11.2013 11:25:53
Thomas
Hallo,
ich habe folgende array Formel in meinem Excel Sheet:
{=IF(ISERROR(INDEX(INDIRECT(A5&"!G:G");MATCH(B5&C5&D5&E5&F5;INDIRECT(A5&"!B:B")&INDIRECT(A5&"!C:C") &INDIRECT(A5&"!D:D")&INDIRECT(A5&"!E:E")&INDIRECT(A5&"!F:F");0)))=TRUE;"";INDEX(INDIRECT(A5&"!G:G"); MATCH(B5&C5&D5&E5&F5;INDIRECT(A5&"!B:B")&INDIRECT(A5&"!C:C")&INDIRECT(A5&"!D:D")&INDIRECT(A5&"!E:E") &INDIRECT(A5&"!F:F");0))) }
Diese Formal wird in der Spalte G5 bis G100 aufgerufen.. sowie in den Spalten H5.. H100, I5..I100, J5...J100 und K5...K100
Das macht mein Excel Sheet aber total langsam, da er nach jeder Eingabe in Spalte A - F alle neu berechnet.
Wie kann man die oben erwähnte Formel als Makro schreiben?
Viele Grüße,
Thomas

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel array Formal als Makro darstellen
11.11.2013 13:42:32
Arthur
Hallo Thomas.
Dass diese Formel Excel beschäftigt ist klar. Eine einfache Art der Verbesserung geht, indem nicht die gesamten Spalten, sondern nur die 'benutzten' Zellen einbezogen werden. Da 'Indirect' schon in der Formel ist, schränke per CountA den Bereich ein.
Bsp:
Anstelle INDIRECT(A5&"!C:C")
dieses INDIRECT(A5&"!C1:C"&CountA(C:C))
Gruß, Arthur

Anzeige
AW: Excel array Formal als Makro darstellen
11.11.2013 13:52:52
Daniel
Hi
eine Möglichkeit wäre, die Formel per Makro einzufügen und dann die Formelergebnisse durch ihren Wert zu ersetzen.
die Aktualisierung der Daten erfolgt dann zwar immer bei Aufruf des Makros, aber du musst dann nicht bei jeder Eingabe die Neuberechnung abwarten.
hierzu ist am einfachsten, wenn du die Formel noch mal in einer weitern Zelle hinterlegst (bspw G4, dort bleibt sie auch immer stehen) und von dort per Copy-Paste in die Restlichen Zellen überträgst.
Sub Aktualiseren()
With Range("G5:K100")
Range("G4").Copy
.PasteSpecial xlpasteformulas
.copy
.PasteSpecial xlpastevalues
End With
End Sub
Gruß Daniel
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18