Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Spaltensumme - Zirkelbezug

786 views
Skip to first unread message

Rudolf Witt

unread,
Sep 13, 2011, 7:10:04 AM9/13/11
to
Hallo Newsgroup,

ich stehe vor folgendem Problem:

meine Tabelle bezieht ihre Daten aus einer externen Datenbank. Ich weiß also
nicht, wie viele Zeilen (Datensätze) sie nach einer jeweiligen
Aktualisierung enthalten wird.

In Spalte B stehen numerische Werte, über die ich eine Summe bilden möchte
[also im Prinzip SUMME(B:B)]. Allerdings soll die Zelle mit dieser Summe
nicht irgendwo, sondern genau in Zelle B1 dargestellt werden, damit ich sie
beim Scrollen immer schön im Blick behalten kann ("Fenster fixieren").
Natürlich funktioniert die Summenformel dann nicht mehr ohne weiteres, denn
es entsteht ein Zirkelbezug.

Meine Lösung ist bisher eine Formel wie SUMME(B2:B99999), wobei 99999 einen
fiktiven Wert darstellt, der größer ist, als die maximal anzunehmende Anzahl
von Datensätzen. Das funktioniert, ist aber nicht sehr elegant, weil
Ressourcen verschwendet werden, was man ab einer bestimmten Tabellengröße
oder -Komplexität deutlich spürt.

Gibt es eine bessere Lösung?

Danke für Eure Vorschläge.

Gruß Rudi


Claus Busch

unread,
Sep 13, 2011, 7:31:00 AM9/13/11
to
Hallo Rudolf,

Am Tue, 13 Sep 2011 13:10:04 +0200 schrieb Rudolf Witt:

> Meine Lösung ist bisher eine Formel wie SUMME(B2:B99999), wobei 99999 einen
> fiktiven Wert darstellt, der größer ist, als die maximal anzunehmende Anzahl
> von Datensätzen. Das funktioniert, ist aber nicht sehr elegant, weil
> Ressourcen verschwendet werden, was man ab einer bestimmten Tabellengröße
> oder -Komplexität deutlich spürt.

wegen Zirkelbezug musst du leider in B2 mit deiner Summe beginnen.
Du könntest die exakte Größe des Bereichs angeben, indem du in B1
eingibst:
=SUMME( und dann in B2 klickst und mit STRG+Shift + Pfeil nach unten
den genauen Bereich angibst. Allerdings müsstest du dies bei jeder
Aktualisierung machen.
Deswegen bleibt dir nur, den wahrscheinlich größten Bereich in der
Summenformel anzugeben.


Mit freundlichen Grüßen
Claus Busch
--
Win XP Prof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2

Peter Schuerer

unread,
Sep 13, 2011, 11:38:43 AM9/13/11
to
Hallo Claus,

Am 13.09.2011 13:31, schrieb Claus Busch:

> wegen Zirkelbezug musst du leider in B2 mit deiner Summe beginnen.

ich habe mal folgende Formel in B1 eingegeben:
=summe(b:b)-b1
und unter Optionen, Berechnung habe ich die Iteration aktiviert mit
Iterationsanzahl 1.
Funktioniert ohne Zirkelbezug und bis jetzt noch keine Probleme.
Oder sehe ich da etwas falsch?

MfG
Peter

Claus Busch

unread,
Sep 13, 2011, 11:56:09 AM9/13/11
to
Hallo Peter,

Am Tue, 13 Sep 2011 17:38:43 +0200 schrieb Peter Schuerer:

> ich habe mal folgende Formel in B1 eingegeben:
> =summe(b:b)-b1
> und unter Optionen, Berechnung habe ich die Iteration aktiviert mit
> Iterationsanzahl 1.
> Funktioniert ohne Zirkelbezug und bis jetzt noch keine Probleme.
> Oder sehe ich da etwas falsch?

es ist immer noch ein Zirkelbezug, der allerdings durch die Iteration
keine Fehlermeldung mehr bringt. Mit der Iteration kann man Probleme
bekommen und ich würde nicht einen Fehler durch einen anderen beheben
wollen.
Ich würde dann für eine Lösung eher zu VBA greifen.

Alexander Wolff

unread,
Sep 14, 2011, 4:11:58 PM9/14/11
to
Hallo Rudolf,

- Gehezu B1
- Einf�gen Namen Def. SummeNachfolgend bezSichAuf:
=SUMME(B2:B65536)

jetzt kannst Du verwenden:
B1: =SummeNachfolgend

Funktioniert ohne �nderungen auch in A1 oder C1 bis IV1, da
Vektorformel

Weiterer Vorteil: Einf�gen und L�schen von Zeilen �ndert nichts.
--
Moin+Gruss Alexander - www.xxcl.de -
mso2000sp3 -50---5----60---5----702

Rudolf Witt

unread,
Sep 15, 2011, 5:15:19 AM9/15/11
to
Hallo Peter,

"Peter Schuerer" <pit...@gmx.net> schrieb im Newsbeitrag
news:j4nte4$sp5$1...@solani.org...
...
> und unter Optionen, Berechnung habe ich die Iteration aktiviert mit
> Iterationsanzahl 1.
...

Das mit der Iteration hatte ich auch schon ins Auge gefaßt. Allerdings ist
es wohl so, daß man in den Optionen die Iteration nicht erst ausdrücklich
aktiviert, sondern lediglich Einfluß auf ihren Ablauf nimmt (Zitat aus der
Excel2003-Hilfe: "Sofern nichts Gegenteiliges angegeben ist, hält Excel nach
100 Iterationen an, oder wenn sich alle Werte um weniger als 0,001 ändern.")

Da sich die Veränderungen, di ich hier eintrage, auf die ganze Tabelle
beziehen würden, füchte ich, daß an anderer Stelle Probleme mit der
Rechengenauigkeit oder bestimmten Funktionen auftreten könnten. Insofern
stimme ich Claus zu, daß man den Fehler nicht wirklich beseitigt.

Trotzdem natürlich danke für den Hinweis.

Gruß
Rudi


Rudolf Witt

unread,
Sep 15, 2011, 5:20:58 AM9/15/11
to
Hallo Alexander,

danke für den Tip.

"Alexander Wolff" <oo...@gmx.de> schrieb im Newsbeitrag
news:4e710b38$0$30112$8e6e...@newsreader.ewetel.de...
...
> =SUMME(B2:B65536)

Hast Du Erfahrungen gesammelt, wie die Ressourcenbelastung durch diesen
fiktiven großen Summenbereich ist?

Mir ist nämlich aufgefallen, daß Excel signifikant langsamer wurde, wenn ich
bei meiner Lösung (s. Ausgangsposting) in komplexen Tabellen mit mehreren
solchen Bereichen den fiktiven Wert für das Bereichsende sehr hoch wählte,
um auf Nummer sicher zu gehen.

Gruß
Rudi


Claus Busch

unread,
Sep 15, 2011, 5:22:01 AM9/15/11
to
Hallo Rudolf,

warum sollte ein fester Bereich wie z.B. dein =SUMME(B2:B99999) mehr
Resourcen verbrauchen als =SUMME(B:B) bei der doch die Summe über
1.048.576 Zellen geht?
Aber zu Alexanders Vorschlag möchte ich noch sagen, dass du den Namen
dynamisch gestalten könntest, so dass der Namen immer den aktuellen
Bereich beinhaltet und dann mit =SUMME(MeinBereich) die Summe errechnen
lässt.

Claus Busch

unread,
Sep 15, 2011, 5:33:44 AM9/15/11
to
Hallo Rudolf,

zu dem dynamischen Bereichsnamen muss ich noch ergänzen, dass du den
nicht direkt über Spalte B erstellen kannst, da du dann schon wieder
eine Zirkelbezugswarnung bekommst.
Aber ich denke, dass deine Tabelle auch in Spalte A im gleichen Bereich
wie Spalte B befüllt ist, dann könntest du einen Namen erstellen, indem
du z.B. für den Namen eingibst "MeinBereich" und dann bei "bezieht sich
auf" die Formel:
=BEREICH.VERSCHIEBEN($A$2;;1;ANZAHL2($A:$A))
Dann kannst du in B1 schreiben:
=SUMME(MeinBereich) und summierst immer den aktuellen Bereich.

Rudolf Witt

unread,
Sep 15, 2011, 5:44:43 AM9/15/11
to
Hallo Claus,

"Claus Busch" <claus...@t-online.de> schrieb im Newsbeitrag
news:j4sg45$nan$1...@news.albasani.net...
...
> warum sollte ein fester Bereich wie z.B. dein =SUMME(B2:B99999) mehr
> Resourcen verbrauchen als =SUMME(B:B) bei der doch die Summe über
> 1.048.576 Zellen geht?
...

Vielleicht liege ich falsch, aber ich bilde mir ein, daß Excel für Zellen,
die zwar auf dem Tabellenblatt grundsätzlich vorgesehen sind und daher
angesprungen werden könnten, aber nicht aktiv benutzt werden, keinen
Speicherplatz reserviert, solange sie nicht explizit irgendwie angesprochen
wurden.

Sonst könnte (nach meinem Verständnis) eine Tabelle, in der nur die Zelle A1
benutzt wird, [in der man aber trotzdem den Cursor schon in Zelle IV4000
positionieren kann - wobei ich nicht wirklich ausprobiert habe, wo die
effektive untere rechte Ecke des Tabellenblattes ist :-)) ], als Datei nicht
so viel kleiner sein, als eine, die über x Spalten und Zeilen geht.

Daraus leite ich die Vermutung ab, daß das Speichermanagement von Excel bei
SUMME() ähnlich funktioniert, nämlich bis zur letzten aktiv benutzten Zelle
geht, wenn man (B.B) angibt, während (B2:B99999) explizit dieses Volumen
umfaßt, egal wie viele unbenutzte Zellen am Ende des Bereichs stehen.

Jedenfalls deckt sich diese Vermutung mit meinem subjektiven Empfinden
bezüglich der Unterschiede im Antwortverhalten von Excel in den
beschriebenen Fällen.

> Aber zu Alexanders Vorschlag möchte ich noch sagen, dass du den Namen
> dynamisch gestalten könntest, so dass der Namen immer den aktuellen
> Bereich beinhaltet und dann mit =SUMME(MeinBereich) die Summe errechnen
> lässt.

Das wiederum leuchtet ein.

Gruß
Rudi



Rudolf Witt

unread,
Sep 15, 2011, 5:46:52 AM9/15/11
to
Hallo Claus,

da warst Du mir mit Deinen Erkenntnissen erheblich voraus :-)
aber so müßte es gehen, vielen Dank!

Gruß
Rudi

"Claus Busch" <claus...@t-online.de> schrieb im Newsbeitrag
news:j4sgq3$ntt$1...@news.albasani.net...

Rudi Gierlich

unread,
Sep 15, 2011, 12:09:24 PM9/15/11
to
Hallo Rudi,

ich habe ein ähnliches Problem mit einem Rechteck aus "Formen" gelöst.

In Zelle B1 ein Rechteck einfügen. Unter zuhilfenahme der ALT-Taste paßt es genau in die Zelle. Das Rechteck noch nach Wunsch formatieren.

In einer beliebigen freien Zelle, z.Bsp. H1, die Summe der Spalte B ( =summe(B:B) ) berechnen.

Jetzt noch in das Rechteck den Bezug auf die Zelle mit der Summenformel eingeben und schon steht in, oder korrekter über, der Zelle B1 die Summe von Spalte B.

Mit freundlichen Grüßen
Rudi

Alexander Wolff

unread,
Sep 24, 2011, 2:28:29 PM9/24/11
to
Hallo Rudolf,

Du meinst also, =SUMME(B2:B65536) in häufiger Anwendung sei langsamer als
=SUMME(B2:B100)?

Ich habe das noch nie getestet, aber Excel merkt sich eigentlich den Status
von Zellen, ob sie nämlich gefüllt sind oder auch nicht. Auch mag es
hilfreich sein, die am Ende beginnenden Leerzeilen zwischendurch immer mal
zu löschen (obwohl leer).

Man kann auch die letzte Zelle im Blatt ermitteln und damit dann

vergebener Name: =INDEX(B:B;2):INDEX(B:B;letzteZeile) bilden und dann

=SUMME(vergebenerName) verwenden.

Bezüglich Performance fährst Du aber ohne oder nur mit wenigen Namen meist
besser.

Rudolf Witt

unread,
Sep 29, 2011, 11:42:31 AM9/29/11
to
Hallo Namensvetter,

"Rudi Gierlich" <rg02...@googlemail.com> schrieb im Newsbeitrag
news:4c6c4960-759e-4313...@glegroupsg2000goo.googlegroups.com...
ich mußte zwar erst ein wenig darüber nachdenken, wie Du das mit dem
"Rechteck aus 'Formen'" meinst (was aber nicht wirklich die Erklärung ist,
warum es 2 Wochen mit meiner gedauert hat :-)) ),
aber Deine Lösung scheint mir ein eleganter Work Around zu sein. Vielen
Dank!

Gruß
Rudi


Rudolf Witt

unread,
Sep 29, 2011, 11:49:17 AM9/29/11
to
Hallo Alexander,

"Alexander Wolff" <oo...@gmx.de> schrieb im Newsbeitrag
news:j5l7g5$tjb$1...@news.albasani.net...
> Hallo Rudolf,
>
> Du meinst also, =SUMME(B2:B65536) in häufiger Anwendung sei langsamer als
> =SUMME(B2:B100)?
>

ich meine vor allem, daß =SUMME(B:B) schneller ist als =SUMME(B2:B65536),
wenn de facto nur die Zellen B2:B100 Werte enthalten. Grund: eben weil Excel
sich den Staus der Zellen (leer/ nicht leer) zu merken scheint, bei der 2.
Formel aber explizit angewiesen wird, trotzdem den gesamten Bereich zu
prüfen.

Gruß
Rudi


Rudolf Witt

unread,
Sep 29, 2011, 11:54:13 AM9/29/11
to
Da waren die Finger langsamer als der Kopf...

"Rudolf Witt" <rgw...@hotmail.com> schrieb im Newsbeitrag
news:9ejhv7...@mid.individual.net...
> Hallo Namensvetter,
> ich mußte zwar erst ein wenig darüber nachdenken, wie Du das mit dem
> "Rechteck aus 'Formen'" meinst (was aber nicht wirklich die Erklärung ist,
> warum es 2 Wochen mit meiner

Antwort

> gedauert hat :-)) ),

Sorry


Alexander Wolff

unread,
Sep 29, 2012, 4:38:58 AM9/29/12
to
Genau ein Jahr später :-) Eine Idee ist noch folgendes:

AB1: =SUMME(B:B)

AB1: Umschalt-Bearbeiten Bild kopieren
B1: Bild einfügen - Bildformel =AB1

Jetzt liegt die Summe als Objekt ÜBER, nicht IN, B1 und Du kannst ungeniert
die ganze Spalte ansprechen. In B1 oder B2 kannst Du sogar eine
Titelüberschrift verwenden, um auch noch Datenbankoperationen zu
ermöglichen. =SUMME() stört sich daran nicht.

Du kannst auch gleich einen ganzen Analyseblock in AB1:AB5 vorsehen (MIN,
MAX, STABW oder gänzlich eigenes usw.) und genauso als einzelnes Bild über
B1 legen.

Alexander Wolff

unread,
Sep 29, 2012, 4:39:06 AM9/29/12
to
Genau ein Jahr später :-) Eine Idee ist noch folgendes:

AB1: =SUMME(B:B)

AB1: Umschalt-Bearbeiten Bild kopieren
B1: Bild einfügen - Bildformel =AB1

Jetzt liegt die Summe als Objekt ÜBER, nicht IN, B1 und Du kannst ungeniert
die ganze Spalte ansprechen. In B1 oder B2 kannst Du sogar eine
Titelüberschrift verwenden, um auch noch Datenbankoperationen zu
ermöglichen. =SUMME() stört sich daran nicht.

Du kannst auch gleich einen ganzen Analyseblock in AB1:AB5 vorsehen (MIN,
MAX, STABW oder gänzlich eigenes usw.) und genauso als einzelnes Bild über
B1 legen.

Díetmar Vollmeíer

unread,
Sep 29, 2012, 9:50:28 AM9/29/12
to
Schönen Nachmittag, Alexander!

*Alexander Wolff* schrieb am 29.09.2012 um 10:38 Uhr...
> Genau ein Jahr später :-) Eine Idee ist noch folgendes:

Wenn es um Ideen geht, da hätte ich dann auch noch eine

=SUMME(BEREICH.VERSCHIEBEN(A2;;;VERWEIS(2;1/(A:A<>"");ZEILE(A:A))))

Allerdings möchte ich jetzt nicht über Geschwindigkeit und Performance
diskutieren ;)
--
Servus | Eine Sommersprosse ist noch kein Gesichtspunkt
Didi | und Kopfjucken ist noch keine Gehirntätigkeit.

Alexander Wolff

unread,
Oct 7, 2012, 5:19:25 AM10/7/12
to
> Wenn es um Ideen geht, da h�tte ich dann auch noch eine
>
> =SUMME(BEREICH.VERSCHIEBEN(A2;;;VERWEIS(2;1/(A:A<>"");ZEILE(A:A))))
>
> Allerdings m�chte ich jetzt nicht �ber Geschwindigkeit und Performance
> diskutieren ;)

Moin Didi! Long time no see!

Coole Formel ... den VERWEIS(2;...) (kommt von Excelformeln.de) verwende ich
auch irgendwo in einem FIFO-Bewertungsblatt.

Aber =SUMME(A:A) ist eben schon am klarsten ... Und Objektreferenzen darauf
kosten wohl kaum Speed.
0 new messages