Benannte Bereiche in Formeln verwenden

Hallo,

ich such mir einen Wolf…
Wie bekomme ich in einer Formel aus einem Benannten Bereich eine bestimmte Zeile referenziert?
Es gibt ja das Konstrukt [#Diese Zeile] mit dem ich (innerhalb eines Benannten Bereichs) andere Zellen der gleichen Zeile referenzieren kann. Bereichsname[[#Diese Zeile];[Spaltenname]].
(Es geht auch kürzer mit Bereichsname[Spaltenname])

Wo ist denn das dokumentiert?

Ich habe eigentlich das Problem, dass ich in der ersten Zeile eines Bereichs etwas anderes (z.B. einen Übertrag) anzeigen möchte,
oder dass sich Werte dieser Zeile aus der vorigen Zeile errechnen.
So was wie =Bereichsname[[#Diese Zeile] - 1;[Spaltenname]]
Ich will ja eigentlich nicht wieder die herkömmliche Zellreferenz (“A1”) verwenden.

Moin,
in meinem Beispiel heißt der benannte Bereich DATA.
Ich würde sagen, mit der Funktion INDEX() und zwar als Matrixformel.
D.h. nach Eintippen der Formel =INDEX(DATA;H2) in Feld H4 drückst du, während sich der Cursor noch in der Eingabezeile befindet, STRG+SHIFT+ENTER gleichzeitig. Das es sich um eine Matrixformel handelt, erkennst du nun an den geschweiften Klammern.


Zeile_in_benanntem_Bereich.ods (33.2 KB)

Eventuell hier:

Handbücher

oder hier:

Willkommen bei der Hilfe zu LibreOffice Calc

Ich vermute mal, dass Du einen 2-dimensionalen Bereich $A$1:$D$10 mit =$A$1:$D$10 referenzierst. Ob man den Bezug jetzt benannt hat oder nicht macht keinen Unterschied. Sogenannte “Bereichsnamen” sind einfach nur Aliasnamen für Formelausdrücke und bieten außer Lesbarkeit keinen Mehrwert.

Der Bezug =$A$1:$D$10 gibt 40 Werte zurück (4 Spalten x 10 Zeilen), eine Zelle kann aber nur einen Wert darstellen. Der Fehlerwert #WERT! zeigt daher einen falschen Datentyp an. Du bekommst diese 40 Werte als Rückgabewert, indem Du den Bezug als Matrixformel eingibst mit Strg+Umsch.+Eingabe statt nur Eingabe zu drücken.

Referenzierst Du jedoch einen Vektor, also einen 1-dimensionaler Bereich wie =$A$1:$A$10, dann bekommst Du Den Wert dieser Spalte aus der gleichen Zeile, sofern der Bezug eine gemeinsame Zeile mit der referenzierten Spalte hat, ansonsten wieder #WERT!.

Das gleiche gilt analog für den Bezug =$A$1:$D$D1 unterhalb des referenzierten Bereichs.

Das ist für Excel dokumentiert, habe ich in Calc noch nie gesehen und halte ich auch für überflüssig. Bessere Lesbarkeit/Verstehbarkeit ändert nichts daran, dass Tabellenkalkulationen zwar eine verlockende, letzten Endes aber eine sehr schlechte Wahl sind, um Datensätze zu speichern und auszulesen.

Das Feature nennt sich “strukturerierte Verweise” und funktioniert auch mit Calc.
struct_ref.ods (62.7 KB)

Ja, tut es.
Ich habe in deinem Beispiel den Bereich “tabelle” genannt und um eine Spalte erweitert, in der ich die Values aufsummiere.
struct_ref.ods (88,8 KB)

Dann gibt es in Sum (Spalte E) die Formel
=tabelle[[#Diese Zeile];[Value]]+WENN(ISTZAHL(E1);E1;0)

Das liest sich (besonders bei breiten Tabellen) wesentlich besser als
=D1+WENN(ISTZAHL(E1);E1;0)

Aber

      WENN(ISTZAHL(tabelle[[#Vorige Zeile];[Sum]]);tabelle[[#Vorige Zeile];[Sum]];0)

würde sich besser lesen.

Am liebsten würde ich schreiben
=WENN(ZEILE()=ZEILE(tabelle[#Erste Zeile])+1; tabelle[[#Diese Zeile];[Value]]; tabelle[[#Diese Zeile];[Value]]+tabelle[[#Vorige Zeile];[Sum]])

Ich weiß nicht, wie #Erste Zeile in Excel heißt, aber Calc macht daraus #header und versteht es dann nicht.

Da Calc aber #Diese Zeile (oder im Englischen #This Row) versteht, bin ich davon ausgegangen, dass es irgendwo dokumentiert ist.
Das finde ich aber nicht.

Für mich ist das einfach nur Gedöns. Es ist wohl deshalb nicht dokumentiert weil das nur beim Import von Excel-Dateien eine Rolle spielt.
Ein verwandtes Excel-Feature, das wirklich und wahrhaftig nützlich ist sind R1C1-Bezüge (dt. Z1S1). Nutzt niemand, aber man kann das für sich selbst aktivieren.

Jein. Tabellen Strukturierte Referenzen sind im ODF Formel-Standard nicht spezifiziert und werden deswegen beim Speichern in ODF .ods durch normale Referenzen ersetzt. Es ist also lediglich als temporäres UI-Feature vorhanden und insofern nicht dokumentiert.

Es gibt kein #Erste Zeile, was du vielleicht meinst ist #Headers (#Kopfzeilen), das funktioniert aber nur, wenn der Datenbankbereich (! nicht benannter Bereich / Ausdruck) auch mit solchen definiert ist. Ebenso gibt es kein #Vorige Zeile. Valide keywords sind (en - (de)):

  • #All - (#Alle)
  • #Headers - (#Kopfzeilen)
  • #Data - (#Daten)
  • #Totals - (#Summe)
  • #This Row - (#Diese Zeile)

Siehe auch Verwenden von strukturierten Verweisen für Excel-Tabellen - Microsoft-Support.

…interessiert mich nicht. Meine Frage war, wo das dokumentiert ist.

Danke.
Dass ich bei Microsoft nachsehen muss, wenn ich Fehlermeldungen in Calc erhalte (und es in Excel geht), hatte ich nicht erwartet. Offenbar hatte Calc #Headers mit #header ersetzt und dann eine Fehlermeldung ausgegeben … daher auch meine Frage, wo das dokumentiert ist.
Da ist wohl noch ein Problem beim Öffnen vom Excel-Tabellen in Calc

Da müsstest du schon mal das Dokument an deine Frage anhängen, damit das beantwortet werden könnte.