Date: prev next · Thread: first prev next last
2016 Archives by date, by thread · List index


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: users+unsubscribe@de.libreoffice.org
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

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.