Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: INDIREKT liefert immer "#BEZUG"

INDIREKT liefert immer "#BEZUG"
19.02.2005 14:30:59
Lorenz
Hallo Formelprofis!
=SUMME(INDIREKT("'"&TEXT(1;"T.")&":"&TEXT(MONATSENDE(TagDatum;0);"T.")&"'!DV"&ZEILE())) -->liefert als Ergebnis "#BEZUG" (was mache ich nur falsch?)
(so schaut die Formel original aus: =SUMME('1.:31.'!DV16)) "TagDatum = Benannter Bereich" wo Datum drin steht.
Tabellennamen aus denen die Summe gebildet wird: sind 1., 2., 3.,.....usw.
Danke im Voraus
Grüsse Lorenz
Anzeige
AW: INDIREKT liefert immer "#BEZUG"
Hübi
Hi Lorenz,
versuche mal das
=SUMME(INDIREKT("'"&TEXT(1;"T.")&":"&TEXT(MONATSENDE(HEUTE();0);"T.")&"'!DV"&ZEILE()))
Dabei liefert TEXT(MONATSENDE(HEUTE();0);"T.") im Februar 28.
ruß Hübi
AW: INDIREKT liefert immer "#BEZUG"
Lorenz
Hallo Hübi!
Ist mit Absicht nicht "HEUTE()", weil sonst nur im aktuellen Monat der Monatsletzte drinsteht
mit HEUTE() liefert`s genauso "BEZUG"
Gruss Lorenz
Anzeige
AW: INDIREKT liefert immer "#BEZUG"
Hübi
Hi Lorenz,
habe probiert und probiert - kriege es so auch nicht hin.
Was willst du hiermit TEXT(1;"T.")&":"&TEXT(MONATSENDE(TagDatum;0);"T.") erreichen?
Außerdem verstehe ich das MONATSENDE(TagDatum;0) auch nicht.
Vielleicht gibt es eine einfachere Art, zum Ziel zu kommen.
Z. B. bringt das {=SUMME(SUMME(SUMMEWENN(INDIREKT("Tabelle"&ZEILE(1:31)&"!DV"&ZEILE());"&lt10000000000")))} keine Fehlermeldung, wenn alle Tabellenblätter existieren.
Ohne das Wort "Tabelle" und nur Zahlen als Blattname klappt´s auch nicht ;-((
Kannst ja selbst mal dort http://www.excelformeln.de/formeln.html?welcher=234 schauen.
Gruß Hübi
Anzeige
AW: INDIREKT liefert immer "#BEZUG"
Luc
Hallo Lorenz,
also nach Test kann ich nur feststellen, das funktioniert offensichtlich nicht mit benannten Bereichen, die Datumsangaben enthalten. Ein direkter Bezug auf den Bereich klappt hingegen. Irgendwie wird wohl die Formatierung nicht berücksichtigt. Vielleicht hängt das Ganze damit zusammen, dass benannte Bereiche eigentlich benannte Formeln außerhalb des Arbeitsblattes sind (fangen deshalb auch mit = an, vgl Website von John Walkenbach, Excel-Oddities). Da entsteht jedenfalls der Fehler!
Gruß Luc
Anzeige
AW: INDIREKT liefert immer "#BEZUG"
Lorenz
Hallo Luc!
Am benannten Bereich alleine liegts nicht, denn wenn im zweiten Segment der Formel so eingegeben wird "TEXT(31;"T.")" liefert`s genauso #BEZUG
Gruss Lorenz
AW: INDIREKT liefert immer "#BEZUG"
Luc
Richtig Lorenz,
aber das ist dann schon der 2.Fehler. Ich weiß ja nicht, was die Notation des Tabellennamens eigentlich bedeuten soll. Wenn es nur 1 Tabelle sein soll, ist der Name nicht zulässig, weil er : enthält. Aber da dir das XL mitgeteilt hätte, wirst du wohl mehrere Tabellen ("1." bis "31.") ansprechen wollen. Darauf deutet ja auch Summe() hin. Das geht aber so nicht, d.h., die Schreibung ist falsch. Besser wären evtl Namen, bei denen mit Platzhaltern gearbeitet wdn könnte (wenn das funktioniert). Sowas habe ich aber noch nicht ausprobiert. Als Lösung könnte ich dir vorerst auf XL-Arbeitsblattformelebene nur anbieten, versuch's mal mit einer vollständigen Tabellenintervallangabe wie '1.'!DV1:'31.'!DV1, wenn das Sinn hätte. Dann gibt's aber die Fehlermeldung #WERT!. Ich denke, INDIREKT() kann diesen Bezug nicht verarbeiten. Hatte wohl selber mal ein ähnliches Problem. Deshalb habe ich mir eine Ersatzfunktion für INDIREKT() geschaffen. Die scheint aber leider in deinem speziellen Fall auch nicht anwendbar zu sein.
Tut mir leid! Gruß Luc
Anzeige
Danke an Luc u. Danke an Hübi O.T
Lorenz
AW: Danke an Luc u. Danke an Hübi O.T
Luc
Hallo Lorenz,
habe mich noch mal damit befasst und eine Funktion geschrieben, mit der du INDIREKT() ersetzen kannst, mit dem Ergebnis, dass das erledigt wird, was du erreichen willst. Bei Interesse melde dich hier in diesem Thread einfach noch mal.
Gruß Luc
Das war doch noch ein Lösungsangebot! owT
Luc
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

INDIREKT-Funktion: Umgang mit dem Fehler "#BEZUG"


Schritt-für-Schritt-Anleitung

Um den Fehler "#BEZUG" bei der Verwendung der INDIREKT-Funktion in Excel zu beheben, kannst du folgende Schritte ausführen:

  1. Überprüfe den Bezug: Stelle sicher, dass alle Arbeitsblätter, auf die die Formel verweist, tatsächlich existieren. Der Fehler "#BEZUG" tritt auf, wenn Excel einen ungültigen Bezug nicht auflösen kann.

  2. Nutze die korrekte Syntax: Die grundlegende Syntax für die INDIREKT-Funktion lautet:

    =INDIREKT(Bezug)

    Beispiel: Wenn du auf Zelle A1 im Blatt "1." zugreifen möchtest, verwende:

    =INDIREKT("'1.'!A1")
  3. Tabellennamen anpassen: Wenn du mehrere Tabellen auf einmal adressieren möchtest, wie in deinem Fall von "1." bis "31.", stelle sicher, dass die Tabellennamen gültig sind und keine Sonderzeichen wie ":" enthalten.

  4. Verwende TEXT und MONATSENDE korrekt: In deinem Beispiel könnte die Verwendung von MONATSENDE mit einem Datum, das in einem benannten Bereich gespeichert ist, problematisch sein. Stelle sicher, dass der benannte Bereich richtig definiert ist.


Häufige Fehler und Lösungen

  • Fehler: "#BEZUG"
    Lösung: Überprüfe die Tabellennamen und stelle sicher, dass sie korrekt eingegeben sind. Oft kann der Fehler auch durch ungültige Datumsformate oder nicht vorhandene Blätter verursacht werden.

  • Fehler: "#WERT!"
    Lösung: Dies passiert häufig, wenn die verwendeten Bezüge nicht kompatibel sind. Versuche, die Bezüge in der Formel so zu ändern, dass sie eindeutig sind.


Alternative Methoden

Falls die INDIREKT-Funktion weiterhin Probleme bereitet, kannst du alternative Methoden ausprobieren:

  1. SUMMEWENN mit INDIREKT:

    {=SUMME(SUMMEWENN(INDIREKT("Tabelle"&ZEILE(1:31)&"!DV"&ZEILE());"<10000000000"))}

    Diese Methode kann helfen, die Berechnung ohne den Fehler "#BEZUG" durchzuführen.

  2. Verwende benannte Bereiche: Manchmal ist es sinnvoll, einen benannten Bereich zu erstellen, der die gewünschte Zelle oder den Bereich umfasst, um Verwirrung zu vermeiden.


Praktische Beispiele

  1. SUMME über mehrere Tabellen:

    =SUMME(INDIREKT("'1.:31.'!DV16"))

    Dies summiert die Zellen DV16 über die Tabellen von "1." bis "31.". Achte darauf, dass die Tabellennamen richtig eingegeben sind.

  2. Verwendung von TEXT und MONATSENDE:

    =SUMME(INDIREKT("'"&TEXT(1;"T.")&":"&TEXT(MONATSENDE(HEUTE();0);"T.")&"'!DV"&ZEILE()))

    Achte darauf, dass die Datumsformate korrekt sind, um Fehler zu vermeiden.


Tipps für Profis

  • Kombiniere Funktionen: Nutze die Kombination aus INDIREKT, SUMME und WENN, um dynamische Berechnungen über mehrere Tabellen hinweg zu erstellen.

  • Fehlerbehandlung mit WENNFEHLER: Um den Fehler "#BEZUG" zu vermeiden, kannst du die WENNFEHLER-Funktion verwenden:

    =WENNFEHLER(SUMME(INDIREKT("'1.:31.'!DV16")); 0)
  • Überprüfung der Datentypen: Stelle sicher, dass die Zellen, auf die du zugreifst, die korrekten Datentypen besitzen, um unerwartete Fehler zu vermeiden.


FAQ: Häufige Fragen

1. Warum erhalte ich immer den Fehler "#BEZUG"?
Der Fehler tritt auf, wenn Excel versucht, auf einen ungültigen Zellbezug oder ein nicht vorhandenes Arbeitsblatt zuzugreifen.

2. Wie kann ich den Fehler "#BEZUG" als 0 anzeigen?
Verwende die WENNFEHLER-Funktion, um sicherzustellen, dass ein Fehler durch 0 ersetzt wird:

=WENNFEHLER(INDIREKT("dein Bezug"); 0)

Mit diesen Anleitungen und Tipps solltest du in der Lage sein, die Probleme mit der INDIREKT-Funktion in Excel zu beheben und den Fehler "#BEZUG" zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige