Ich habe jetzt diverse Tests gemacht und kann die Ursache eines Fehlers nicht finden.
Falls jemand von euch Lust hat einen Blick auf die Formel D2=WENNS(A2="";"";(BRTEILJAHRE(A2;_geburtsdatum))<56;BRTEILJAHRE(A2;_geburtsdatum);WAHR;56) zu werfen, freue ich mich.
Sobald ich A2 durch den Namen des benannten Bereiches der Spalte A "_test" ersetze erhalte ich den Fehler "#NAME?"
25.07.2019, 15:07 (Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2019, 15:07 von Ego.)
Hallo i...,
der Fehler ist, dass die Funktion BRTEILJAHRE als ersten Parameter ein Datum benötigt und mit einer Liste nichts anfangen kann.
Der implicite Bezug klappt zwar bei Operatoren aber nicht bei Parametern von Funktionen.
Ich würde empfehlen, anstelle den Spalten manuell Namen zu geben, mit strukturierten (intelligenten) Tabellen zu arbeiten (Strg+T). Über den Zugriff mit strukturierten Verweisen kannst du auch eine lesbare Formel erreichen.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
(25.07.2019, 15:07)Ego schrieb: der Fehler ist, dass die Funktion BRTEILJAHRE als ersten Parameter ein Datum benötigt und mit einer Liste nichts anfangen kann.
Da verstehe ich noch nicht was Du meinst. Ein Name ist (in meinem bisherigen Verständnis) doch nichts als ein Platzhalter für einen Wert. In diesem Fall für einen Datumswert. Was meinst Du bitte mit "Liste".
Zitat:Der implicite Bezug klappt zwar bei Operatoren aber nicht bei Parametern von Funktionen.
Zitat:Ich würde empfehlen, anstelle den Spalten manuell Namen zu geben, mit strukturierten (intelligenten) Tabellen zu arbeiten (Strg+T). Über den Zugriff mit strukturierten Verweisen kannst du auch eine lesbare Formel erreichen.
Das hatte ich anfangs sogar überlegt. Mich stört zum einen, dass man in den Spaltenköpfen den Ausklapppfeil nicht deaktivieren kann und mir war weiterhin nicht klar, wie ich prägnante eigene Namen für Zellen und Bereiche angeben kann, die sich von den Spaltenüberschriften unterscheiden.
Man sieht an Deiner Formel ja, dass die Verwendung der vollen Spaltenüberschriften mit den vielen eckigen Klammern die Lesbarkeit und Wartbarkeit mindert. Oder wie siehst Du das?
ich habe deine Erklärung mal selbst ausprobiert und komme auf eine andere Einschätzung. Namen sind für die kompletten Spalten A und B vergeben; es werden Daten subtrahiert.
Arbeitsblatt mit dem Namen 'Tabelle1'
A
B
C
1
grund
variabel
ergebnis
2
01.01.2019
01.02.2019
31
3
02.01.2019
01.02.2019
30
4
03.01.2019
01.02.2019
29
5
04.01.2019
01.02.2019
28
Name
Bezug
Grund
=Tabelle1!$A:$A
variabel
=Tabelle1!$B:$B
Zelle
Formel
C2
=variabel-Grund
C3
=variabel-Grund
C4
=variabel-Grund
C5
=variabel-Grund
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
25.07.2019, 17:04 (Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2019, 17:05 von silex1.)
Hallo,
wie steve1da schon Dir mitteilte, setzt BRTEILJAHRE() EINEN Wert vorraus. Keine Bereiche. Selbst wenn Du dort Bereiche eintragen würdest, käme nie #NAME? als Fehler (es sei denn, der NAME ist nicht definiert!!), sonst kann es nur #WERT! als Fehler sein.
Ist Ausgangsdatum oder Enddatum kein zulässiges Datum, gibt BRTEILJAHRE den Fehlerwert #WERT! zurück.
Und selbst mit meinem Vorkriegsmodell, zeigt es mir nicht den Fehler #NAME? an, sondern #WERT!.
meine Tests sind auch in der Beispieldatei erfolgreich. Ich habe, exakt wie es im Eröffnungsbeitrag angefragt wurde, nachträglich A2 mit dem vergebenen Namen ersetzt. Ergebnis:
25.07.2019, 18:08 (Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2019, 18:08 von Ego.)
Hallo i...,
zu:
Zitat:Der implicite Bezug klappt zwar bei Operatoren aber nicht bei Parametern von Funktionen.
Sorry, das muss heißen "Die implizite Schnittmenge" ( https://exceljet.net/glossary/implicit-intersection ). Ausserdem gibt es schon Funktionen, die, obwohl ein einzelner Wert benötigt wird, auch mit der impliziten Schnittmenge als Parameter arbeiten können (zB die Funktion JAHR), aber nicht alle.
zu:
Zitat:... wie ich prägnante eigene Namen für Zellen und Bereiche angeben kann, die sich von den Spaltenüberschriften unterscheiden.
Das geht meines Wissens nicht, aber ich bevorzuge prägnante Spaltenüberschriften.
ps. Falls du deine Spaltennamen beibehalten willst, kanst du als ersten Parameter für die Funktion BRTEILJAHRE
Code:
INDEX(_messdatum;ZEILE())
nutzen.
Hallo Günter
Zitat:Sobald ich A2 durch den Namen des benannten Bereiches der Spalte A ... ersetze erhalte ich den Fehler ...
Was ist bitte an meinem Umgang mit dem benannten Bereich falsch?
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen." Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.