Seite 1 von 1

Feldwert als Feldadresse in Formel

Verfasst: Di 21. Dez 2021, 04:11
von TheJJJ42
Hi
Ich habe diverse Formeln, die immer wieder auf verschiedene Datenabschnitte angewendet werden sollen.
Jetzt würde ich gern in einem Feld angeben, für welchen Datenbereich alle Formeln eines Tabellenblatts gelten sollen.

Tabellenblatt 1 enthält 10.000 Zeilen.
Alle Formeln auf den folgenden Tabellenblättern sollen nur Abschnitte davon verwenden.
Tabellenblatt 2 soll beispielsweise die Zeilen 1 - 2397 betrachten.
Hier würde ich gern in A1 und A2 eintragen:1 und 2397.
Alle Formeln auf der Seite sollen sich dann bei A1 und A2 bedienen:
= SUMME(A[Wert von A1]:A[Wert von A2])

So bräuchte ich auf allen Tabellenblättern nur 2 Zahlen anzugeben statt dutzende Formeln zu ändern.

Re: Feldwert als Feldadresse in Formel

Verfasst: Di 21. Dez 2021, 05:34
von Mondblatt24
Hallo,
TheJJJ42 hat geschrieben:
Di 21. Dez 2021, 04:11
= SUMME(A[Wert von A1]:A[Wert von A2])
=SUMME(INDIREKT("A"&A1):INDIREKT("A"&A2))

Re: Feldwert als Feldadresse in Formel

Verfasst: Di 21. Dez 2021, 10:35
von TheJJJ42
Vielen Dank!

Da ich das gleiche Problem in google Tabellen hatte, erhielt ich dort die Antwort, dass man INDIREKT möglichst vermeiden soll und lieber INDEX verwenden.
Dies gibt es auch für LibreOffice:

https://help.libreoffice.org/4.4/Calc/S ... s/de#INDEX

Wünsche schöne Weihnachten

Re: Feldwert als Feldadresse in Formel

Verfasst: Di 21. Dez 2021, 12:57
von Mondblatt24
Antwort zurückgezogen.

Re: Feldwert als Feldadresse in Formel

Verfasst: Di 21. Dez 2021, 17:45
von Helmut_S
Hallo TheJJJ42, weil grad Weihnachten ist, anbei etwas selbst-gebasteltes zur Bescherung ;)
Nach dem Vorschlag von @Mondblatt23.
Die bedingte Formatierung dient nur zur Kontrolle was da zusammen gezählt wird.
Gruß und frohe Weihnachten, Helmut

Re: Feldwert als Feldadresse in Formel

Verfasst: Di 21. Dez 2021, 21:06
von mikele
Hallo,
das vermeiden von INDIREKT() hat den Hintergrund, dass diese Funktion volantil ist, also immer neu berechnet wird, wenn irgendwo etwas geändert wird (egal ob die Funktion gerade davon betroffen ist oder nicht).
INDEX() ist nicht volantil, wird also nur dann neu berechnet, wenn sich in einer Zelle auf die sich diese Funktion bezieht etwas ändert. Damit hat dieses Variante einigen Performancevorteil bei umfangreichen Tabellen.
Leider ist auch VERSCHIEBUNG() volantil, sodass ein Wechsel auf diese Funktion bzgl. Perfomance nichts bringt.
Du kannst deine Summe aber per INDEX() bilden.
Die Zahlen mögen sich in Tabelle1 Spalte A befinden. In z. B. Tabelle2 steht in A1 der Wert 1000 und in B1 der Wert 2000.
Mit

Code: Alles auswählen

=SUMME(INDEX(Tabelle1.A:A;A1):INDEX(Tabelle1.A:A;B1))
wird in nun der Bereich Tabelle1.A1000:A2000 summiert.
(Ich bin immer wieder fasziniert, dass dieser Syntax INDEX():INDEX() funktioniert, sprich in dieser Konstruktion den Bereich liefert, wohingegen INDEX() allein den Wert der jeweiligen Zelle liefert)
edit: In der Hilfe steht ja eindeutig: "Je nach Kontext ergibt INDEX einen Bezug oder Inhalt." :shock:

Re: Feldwert als Feldadresse in Formel

Verfasst: Di 4. Jan 2022, 00:40
von TheJJJ42
Hey Leute, ihr seid echt die Wucht!

@mikele: dein Beispiel trifft es nicht nur auf den Kopf, sondern löst mein nächstes Problem gleich mit. :-))

@Helmut_S: man, diese bedingte Formatierung in deinem Beispiel ist wirklich praktisch. Sobald ich das durchblicke, werde ich es in diverse Dokumente integrieren, wo es leicht zu Fehlern kommt.

Wünsche schönes 2022!