Summe eines Feldes aller Tabellen;

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

cookieey
Beiträge: 1
Registriert: Fr, 26.05.2006 22:27

Summe eines Feldes aller Tabellen;

Beitrag von cookieey »

Hallo,

ich habe folgendes Problem, komme aber einfach nicht auf die Lösung.
Ich habe mehrere Tabellen in einer Datei. Diese Tabellen besitzen jeweils in der gleichen Zelle einen Zahlenwert.
Diesen Zahlenwert möchte ich über alle Tabellen aufsummieren.
Auch wenn ich eine neue Tabelle hinzufüge und dort einen Zahlenwert eintrage, soll dieser Wert sofort automatisch mit aufsummiert werden.
Kann mir jemand helfen?

Vielen Dank im Voraus!
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Weil Du schreibst das:
Auch wenn ich eine neue Tabelle hinzufüge und dort einen Zahlenwert eintrage, soll dieser Wert sofort automatisch mit aufsummiert werden.


weiß ich nicht wie das mit normalen Mitteln zu berücksichtigen wäre, 2 Wege gingen jedoch:

1.Hilfstabelle

Lege eine Tabelle an und gib ihr einen Namen der nicht "Tabelle*" (mit * = 1, 2, 3, ...) ist und schreibe in Zelle A1:

Code: Alles auswählen

=WENN(ISTFEHLER(INDIREKT("Tabelle"&ZEILE()&".C$1"));0;INDIREKT("Tabelle"&ZEILE()&".C$1"))
wenn C1 die Zelle ist, welche in allen Tabellen addiert werden soll.

Ziehe das runter soweit Du es brauchst, also für jede Tabelle die mutmaßlich hinzukommt. Ziehe ggf. gleich bis 255 denn mehr Tabellen gehen ohnehin nicht.

Schreibe in die Ergebnissezelle dann:

Code: Alles auswählen

=SUMME(Hilfstabelle.A1:A255)
Wenn der Name der Hilfstabelle "Hilfstabelle" ist.

Nachteil:
alle jetzigen und zukünftigen Tabellen müssen "Tabelle*" (mit * = 1, 2, 3, ...) heißen

Vorteil:
Aktualisierung erfolgt 'vollautomatisch'


2.benutzerdefinierte Funktion:

erstelle in einer Bibliothek des Dokuments oder in der Bibliothek "Standard" von OOo folgende benutzerdefinierte Funktion:

Code: Alles auswählen

Function SUMALL(x)
For i = 0 To ThisComponent.Sheets.count - 1
	y = y + ThisComponent.Sheets(i).getCellRangeByName(x).Value 
Next 
SUMALL = y
End Function
Schreibe in die Ergebniszelle:

Code: Alles auswählen

=SUMALL("C1")
wenn wieder alle C1 addiert werden sollen. Beachte die "".

Nachteil:
zur Ergebnisaktualisierung mußt Du UMSCHALT+STRG+F9 drücken, weil das Argument der Funktion ein String ist

Vorteil:
die Namen aller Tabellen, jetziger und zukünftiger, können beliebig sein und beliebig geändert werden


Ich fürchte Besseres fällt mir im Moment nicht ein, vielleicht reicht Dir das aber.


Gruß
Stephan
mirco
Beiträge: 4
Registriert: Mi, 26.04.2006 11:02

Re: Summe eines Feldes aller Tabellen;

Beitrag von mirco »

Hi,
gibt es Möglichkeit, diese Funktion so zu gestalten, dass die Zellennamen durch Ziehen automatisch gesetzt werden? Also: ich setze in der ersten Zelle =SUMALL("C1") nach der jetzigen Funktion. Ich möchte aber gerne =SUMALL(C1), so dass ich jetzt via Maus dieses Feld nach unten und nach rechts ziehen kann, so dass Spalte und Zeile automatisch verändert werden (eigentlich also wie es normaler Weise der Fall ist). Ziehe ich nach recht steht also dort =SUMALL(D1) | =SUMALL(E1) etc.
Danke,
Mirco
Antworten