Am 03.03.2016 um 09:51 schrieb Andreas Heinlein:
>
> ich habe ein Problem mit einer Calc-Tabelle und bin mir nicht sicher, ob
> ich zu doof bin oder das ein Bug ist.
>
> Die Datei hat zwei Tabellen, eine "Daten"-Tabelle mit Personendaten,
> u.a. Name und Geburtsdatum. Die zweite soll diverse Daten auswerten,
> u.a. aus dem Geburtsdatum das Alter berechnen, und zwar immer
> zeilenweise entsprechend, d.h. in Zeile 2 der Auswertungstabelle steht
> das Alter der Person in Zeile 2 der Datentabelle.
>
> In der Auswertungs-Tabelle habe ich folgende Formel:
> =JAHRE(Daten.B2;HEUTE();1). Diese wird nach unten ausgefüllt, also:
> =JAHRE(Daten.B2;HEUTE();1)
*Nochmal* B2?
> =JAHRE(Daten.B3;HEUTE();1)
> =JAHRE(Daten.B4;HEUTE();1)
> =JAHRE(Daten.B5;HEUTE();1)
> ... usw...
>
> Wenn ich jetzt in der Daten-Tabelle z.B. Zeile 3 lösche, ändern sich die
> Bezüge in der Auswertungs-Tabelle so:
> =JAHRE(Daten.B2;HEUTE();1)
> =JAHRE(Daten.B3;HEUTE();1)
> =JAHRE(Daten.B3;HEUTE();1)
> =JAHRE(Daten.B4;HEUTE();1)
> =JAHRE(Daten.B5;HEUTE();1)
Das ist auch verständlich und korrekt; durch Löschen der Zeile 3 in der
Quelltabelle verschieben sich natürlich alle darauf folgenden Zeilen,
sprich die ehemals *vierte* Zeile wird zur jetzt *dritten* Zeile. Die
Verweise werden entsprechend angepasst.
> Mache ich die Löschung rückgängig, ändern sich die Bezüge erneut:
Logisch; alle nachfolgenden Zeilen verschieben sich erneut, mit
entsprechender Anpassung der Nummerierung.
> Das ist absolut nicht mein Ansinnen, die Bezüge in der Auswertung sollen
> einfach so bleiben.
*Wie* bleiben, sprich was genau willst Du worauf verwiesen haben?
*Momentan* bleiben die relativen Verweise 'as is' erhalten, d. h. wenn
in der verweisenden Tabelle /vorher/ auf die Zeile "Nudeln" der
Quelltabelle verwiesen wird, dann wird auch /nachher/ auf die Zeile
"Nudeln" verwiesen sein, und nicht etwa auf die Zeile "Sauce".
Wenn ich Dich richtig interpretiere, willst Du aber, dass nicht der
*Verweis* sondern der *Index* erhalten bleibt, sprich die Zelle dann auf
die Zeile "Sauce" verweisen soll. Dann kannst Du nicht mit direkten
Verweisen arbeiten, sondern musst entweder über INDEX gehen:
| =JAHRE(INDEX(Daten.$B$2:$B$100;ZEILE()-1;1);HEUTE();1)
oder über VERSCHIEBUNG:
|
=JAHRE(VERSCHIEBUNG(Daten.$B$2;ZEILE()-ZEILE(Auswertung.$B$2);0);HEUTE();1)
oder über die explizite Berechnung der Adresse (aber das ist, naja ...):
| =JAHRE(INDIREKT(ADRESSE(ZEILE(); SPALTE($B$2);4));HEUTE();1;1;"Daten")
oder aber (wohl am besten) über VERWEIS bzw SVERWEIS:
| =JAHRE(SVERWEIS(Auswertung.A2;Daten.$A$2:$B$7;2;0);HEUTE();1)
Wichtig ist dabei, dass die Angaben der Quellbereiche usw. wirklich als
*absolute* Adressen angegeben werden, damit diese beim Kopieren von
Zelle zu Zelle eben genau *nicht* mit angepasst werden.
Im Zweifelsfall schaust Du Dir erst mal in einer oder mehreren
Hilfsspalten an, welche Adresse überhaupt gebildet wird
("=ADRESSE(ZEILE(); SPALTE($B$2);4)"), auf welchen Zellinhalt dadurch
verwiesen wird, usw.
BTW ist die gleiche Vorgehensweise ganz allgemein erforderlich, wenn auf
Daten *außerhalb* des eigenen Datensatzes
Wolfgang
--
--
Liste abmelden mit E-Mail an: [email protected]
Probleme?
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert