Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1336to1340
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel array Formal als Makro darstellen

Excel array Formal als Makro darstellen
11.11.2013 10: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

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

Betreff
Datum
Anwender
Anzeige
AW: Excel array Formal als Makro darstellen
11.11.2013 12: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

AW: Excel array Formal als Makro darstellen
11.11.2013 12: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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige