Discussion:
Dynamische Größe einer Berechnungstabelle
(zu alt für eine Antwort)
Andreas
2013-11-05 08:43:05 UTC
Permalink
Hallo zusammen,

ich habe in einem Excel Sheet mehrere Berechnungstabellen angelegt (Excel 2010: Einfügen/Tabelle). Spalte A ist eine Datumsspalte, welche nicht Bestandteil der Berechnungstabellen ist. Die Datumsspalte verlängert sich mit jeder Periode automatisch (Datenimport). Innerhalb der Berechnungstabellen befinden sich ausschließlich Formeln. Ich suche nun eine Möglichkeit die Berechnungstabellen automatisch zu erweitern - d.h. die Formeln nach unten zu kopieren - sobald in der Datumsspalte eine neuer Wert hinzugefügt wird.

Natürlich könnte ich die Formeln in den Berechnungstabellen bereits im Vorfeld nach unten kopieren, allerdings habe ich tausende Zeilen und hunderte Spalten, sodass ich so wenig Zeilen wie nötig befüllen will, da die Performance sonst stark leidet und das Sheet extrem groß wird (Speicherplatz).

Ich suche also eine Möglichkeit die Größe der Berechnungstabelle dynamisch zu bestimmen. Ich hatte schon mit der INDIREKT Funktion gearbeitet und die letzte Zeilennummer der Datumsspalte in die Größenbestimmung der Berechnungstabelle eingefügt. Die INDIREKT Funktion als volatile Funktion scheint mir in diesem Bereich aber extrem an der Performance des Sheets zu zehren.

Wer hat eine Idee?

Gruß
Andreas
Claus Busch
2013-11-05 09:15:35 UTC
Permalink
Hallo Andreas,
Post by Andreas
ich habe in einem Excel Sheet mehrere Berechnungstabellen angelegt (Excel 2010: Einfügen/Tabelle). Spalte A ist eine Datumsspalte, welche nicht Bestandteil der Berechnungstabellen ist. Die Datumsspalte verlängert sich mit jeder Periode automatisch (Datenimport). Innerhalb der Berechnungstabellen befinden sich ausschließlich Formeln. Ich suche nun eine Möglichkeit die Berechnungstabellen automatisch zu erweitern - d.h. die Formeln nach unten zu kopieren - sobald in der Datumsspalte eine neuer Wert hinzugefügt wird.
Natürlich könnte ich die Formeln in den Berechnungstabellen bereits im Vorfeld nach unten kopieren, allerdings habe ich tausende Zeilen und hunderte Spalten, sodass ich so wenig Zeilen wie nötig befüllen will, da die Performance sonst stark leidet und das Sheet extrem groß wird (Speicherplatz).
Ich suche also eine Möglichkeit die Größe der Berechnungstabelle dynamisch zu bestimmen. Ich hatte schon mit der INDIREKT Funktion gearbeitet und die letzte Zeilennummer der Datumsspalte in die Größenbestimmung der Berechnungstabelle eingefügt. Die INDIREKT Funktion als volatile Funktion scheint mir in diesem Bereich aber extrem an der Performance des Sheets zu zehren.
als Tabelle formatierte Daten sind dynamisch und erweitern sich bei
Eingabe. Du musst nur die Datums-Spalte in die Tabelle integrieren.


Mit freundlichen Grüßen
Claus
--
Win XP Prof SP3 / Vista Ultimate SP2
Office 2003 SP3 /2007 Ultimate SP3
Andreas
2013-11-05 09:36:14 UTC
Permalink
Hallo Andreas, als Tabelle formatierte Daten sind dynamisch und erweitern sich bei Eingabe. Du musst nur die Datums-Spalte in die Tabelle integrieren.
Hallo Claus,

diese Funktionalität ist mir bekannt. In meinem Sheet habe ich jedoch mehrere Berechnungstabellen nebeneinander, welche in der Größe alle abhängig von der Datumsspalte sind. Hinweis: es gibt in diesen Berechnungstabellen keine Summenspalten oder Summenzeilen.
Claus Busch
2013-11-05 09:50:31 UTC
Permalink
Hallo Andreas,
Post by Andreas
diese Funktionalität ist mir bekannt. In meinem Sheet habe ich jedoch mehrere Berechnungstabellen nebeneinander, welche in der Größe alle abhängig von der Datumsspalte sind. Hinweis: es gibt in diesen Berechnungstabellen keine Summenspalten oder Summenzeilen.
für eine Tabelle z.B. könntest du folgendes Makro verwenden. LRow ist
die Länge der Datumsspalte, LRow2 die Länge der Spalte B. Die letzte
Spalte wird jetzt noch berechnet. Wenn diese bei dir fest ist, kannst du
einfach den festen Wert dafür einragen. Bezüge für die anderen Tabellen
müsstest du anpassen oder eventuell eine Schleife über die einzelnen
Tabellenbereich laufen lassen.

Sub Ausfuellen()
Dim LRow As Long
Dim LRow2 As Long
Dim LCol As Integer

With ActiveSheet
LRow = .Cells(.Rows.Count, 1).End(xlUp).Row
LRow2 = .Cells(.Rows.Count, 2).End(xlUp).Row
LCol = .Cells(1, Columns.Count).End(xlToLeft).Column
.Range(.Cells(LRow2, 2), .Cells(LRow2, LCol)).AutoFill _
Destination:=.Range(.Cells(LRow2, 2), .Cells(LRow, LCol))
End With
End Sub


Mit freundlichen Grüßen
Claus
--
Win XP Prof SP3 / Vista Ultimate SP2
Office 2003 SP3 /2007 Ultimate SP3
Robert Feldmann
2013-11-05 18:47:10 UTC
Permalink
allo Andreas,

schau Dir mal "bereich.verschieben" in der Hilfe an. Damit erstelle ich
häufig variable Bereiche, z.B. für Diagramme (jedes Jahr ein Balken mehr)
Die einzelnen Teile dieser "Formel" können wiederum Formeln beinhalten,
z.B. Anzahl2 oder ähnliches.

=BEREICH.VERSCHIEBEN(Verteilung!$B$3;0;0;1;ANZAHL2(Verteilung!$B$3:$IU$3))
Startpunkt: B3
Versatz von B3 ausgehend: keinen Versatz
Höhe: eine Zeile verwendet
Breite: gefüllte Zellen in der Zeile ab B3

Wird eine weiter Spalte gefüllt, wird der Bereich breiter.

Gruß
Robert
Post by Andreas
Hallo zusammen,
ich habe in einem Excel Sheet mehrere Berechnungstabellen angelegt (Excel 2010: Einfügen/Tabelle). Spalte A ist eine Datumsspalte, welche nicht Bestandteil der Berechnungstabellen ist. Die Datumsspalte verlängert sich mit jeder Periode automatisch (Datenimport). Innerhalb der Berechnungstabellen befinden sich ausschließlich Formeln. Ich suche nun eine Möglichkeit die Berechnungstabellen automatisch zu erweitern - d.h. die Formeln nach unten zu kopieren - sobald in der Datumsspalte eine neuer Wert hinzugefügt wird.
Natürlich könnte ich die Formeln in den Berechnungstabellen bereits im Vorfeld nach unten kopieren, allerdings habe ich tausende Zeilen und hunderte Spalten, sodass ich so wenig Zeilen wie nötig befüllen will, da die Performance sonst stark leidet und das Sheet extrem groß wird (Speicherplatz).
Ich suche also eine Möglichkeit die Größe der Berechnungstabelle dynamisch zu bestimmen. Ich hatte schon mit der INDIREKT Funktion gearbeitet und die letzte Zeilennummer der Datumsspalte in die Größenbestimmung der Berechnungstabelle eingefügt. Die INDIREKT Funktion als volatile Funktion scheint mir in diesem Bereich aber extrem an der Performance des Sheets zu zehren.
Wer hat eine Idee?
Gruß
Andreas
--
Nicht was Du sagst ist entscheidend, sondern was verstanden wird.
Loading...