Hallo Robert und Gerhard,
danke für eure Tipps und Hinweise, durch welche ich einen selbst
gemachten Fehler jetzt entdeckt habe:
Ich schrieb als Referenz fälschlicherweise "=Tabelle1.$A$1" und nicht
richtigerweise "=$Tabelle1.A1". Jetzt bleibt der Bezug erhalten, wenn
ich in der referenzierten Tabelle irgendwo eine Zeile einfüge.
Aber das hilft mir nicht wirklich weiter, denn wenn man die
referenzierte Tabelle neu sortiert, z.B. absteigend, dann gehen die
Referenzen leider wieder verloren. Aber dies scheint ein grundsätzliches
- und ungelöstes - Problem von Tabellenkalkulationsprogrammen zu sein.
Im CALC-Handbuch heißt es dazu auf Seite 444:
"[...] Wenn eine Zelle während eines Sortiervorgangs verschoben wird,
werden externe Referenzen mit der Zelle nicht aktualisiert. [...] Ebenso
haben wir kein Tabellenkalkulationsprogramm gefunden, das, während der
Sortierung, ein anderes Verhalten für Referenzen darlegt. [...]"
Tja, da habe ich wohl erst mal Pech gehabt, aber ich habe mir schon
einen Workaround überlegt:
Ich führe in der Bauteile-Tabelle eine Spalte ein, die einfach nur die
Zeilennummer der jeweiligen Zeile enthält. Auf die so sortierte
Bauteile-Tabelle mache ich dann die Referenzen der Bauteile-Tabellen der
einzelnen Schaltungen. Wenn in die Bauteile-Tabelle doch mal noch ein
neues Bauteil hinzukommt, wird es einfach unten an die Tabelle angefügt.
Auf diese Weise kann ich die Tabelle so sortieren, wie ich es eben
gerade benötige:
Sollen die Referenzen stimmen, wird nach der "Zeilen"-Spalte sortiert.
Will ich die Bauteile sortiert haben (Widerstände, Transistoren, ICs et
cetera), weil ich ein bestimmtes Bauteil suche, wird mal kurz nach den
anderen Spalten-Überschriften sortiert - und anschließend wieder nach
den Zeilennummern, wodurch die Referenzen wieder stimmen. Ich weiß
schon, "elegant geht anders", aber manchmal ist "quick & dirty" auch
angemessen, wenn man einfach nicht mehr Funktionalität benötigt.
Zu der Problemlösung mit BASE:
Meine Bauteileliste umfasst gerade mal 270 Zeilen und da kommt kaum noch
etwas hinzu und geändert wird auch kaum noch was, da die meisten
Schaltungen gemacht sind und kaum noch neue hinzu kommen. Da ist mir
zurzeit der Aufwand mit BASE einfach zu groß, da das Ganze doch eher
mehr eine statische Datensammlung ist. Und ich habe zurzeit auch keine
anderen "Vorhaben", mit denen ich mich auf BASE abstützen
wollte/sollte/müsste ...
Grüße
Hans-Werner
------ Originalnachricht ------
Von: "Gerhard Weydt" <gerhard.weydt@t-online.de>
An: users@de.libreoffice.org
Gesendet: 18.10.2017 21:07:19
Betreff: Re: [de-users] CALC-Daten (externer Tabellen) verknüpfen
Hallo Hans-Werner,
ich gebe Robert recht, dass du dich lieber ein bisschen mit Base
beschäftigen solltest. Du musst ja z.B. in Calc, wenn du neue Einträge
in Tab. B oder C machst, jeweils für jeden den Bezug wieder herstellen
und darfst dich dabei nicht verklicken. In deinem Beispiel unten
müsstest du gleich für drei Felder den Bezug herstellen. In Base
hättest du die Tabellen über Schlüsselspalten verknüpft (in deinem Fall
wohl die Artikelnummer), Preis und Artikelbezeichnung wären dann
automatisch passend, und du stellst den Bezug nicht über das
fehlerträchtige Referenzieren von Zellen her, sondern durch Auswahl der
Artikelnummer (bei Verwendung einer geschickten Listbox auch mitsamt
Bezeichnung und Preis möglich). Die erste Beschäftigung mit Base
erfordert etwas Anlaufaufwand, aber das macht sich bald bezahlt; und
Base macht Spaß!
Wenn du gar nichts von Base weißt, bietet das zugehörige Kapitel des
Handbuchs "Erste Schritte" eine Einführung. Das habe ich für die
Version 5.2 praktisch fertig und kann es dir gerne vorab schicken. Wenn
du schon ein bisschen was weißt oder sonst einen geeigneten Hintergrund
hast, kannst du auch gleich das Base-Handbuch von Robert herunterladen,
eine wahre Fundgrube für das Thema!
Aber zu Calc will ich dir auch eine Antwort bieten:
Ich habe die Aufgabenstellung erst einmal auf das absolute Minimum
reduziert: Tab. 1 mit den Zeilen
A1: "ursprünglich Zelle A1"
A2: "ursprünglich Zelle A2"
Tab. 2 mit de einzigen Eintrag:
A1: "=Tabelle1.A2" (siehst du im Eingabefeld oberhalb der Tabelle, die
Anzeige ist natürlich: "ursprünglich Zelle A2")
Die Tabellen haben auch wirklich die Namen "Tabelle1" und "Tabelle2",
wie sie standardmäßig vergeben werden, diese Namen müssen ja beim Bezug
verwendet werden.
Wenn ich nun in Tabelle 1 vor der Zeile 2 eine neue Zeile einfüge und
dann auf Tabelle 2 schaue, steht in der einzigen gefüllten Zelle immer
noch "ursprünglich Zelle A2". Und wenn du auf das Eingabefeld schaust,
steht dort "Tabelle1.A3". Der Bezug ist angepasst worden!
Ich denke, das ist das, was du willst, und du kannst das sicher leicht
auf deine Aufgabe übertragen.
Dein Problem lässt sich also sicher in Calc lösen (auch der Bezug zu
anderen Tabellen muss gehen, obwohl ich es noch nicht selbst gemacht
habe, da steht was in der Hilfe; aber da ist immer das Problem, wenn
eine der Tabellen verschoben wird!), aber ich sehe Calc eher als gut
geeignet, wenn die Dateninhalte häufig geändert werden, die Strukturen
aber eher selten.
Ich habe in der Arbeit mal so etwas mit Excel gemacht: die Daten wurden
mit einem anderen Programm extrahiert und aufbereitet und dann in Excel
geladen, wo eine ganz primitive Form eines Data Warehouse realisiert
war, so dass man die Daten - die monatlich erneuert wurden - aus
verschiedenen Richtungen verdichtet anschauen konnte. Da waren lauter
Bezüge drin - ich glaube, noch ein oder zwei andere Funktionen außer
dem Bezug - , aber die Struktur blieb im Wesentlichen gleich Wenn dann
mal eine - je nachdem, wie man es darstellt - Spalte oder Zeile
dazukam, erforderte es Konzentration, dass man alle notwendigen Bezüge
u.ä. anpasst oder für die neuen Daten herstellt.
Da wäre eine Datenbank dann besser zu handhaben gewesen. Aber die
Excel-Datei konnte man einfach verschicken; eine solche Lösung kann
also in manchen Fällen auch die b este sein.
Und das Data Warehouse war zwar im Aufbau, aber so ein Brummer dauert
seine Zeit, meine Anwendung war jedenfalls drei Jahre nach meinem
Ausscheiden wegen Altersteilzeit immer noch aktiv!
Dieses Beispiel sollte noch einmal ein bisschen meine Abgrenzung
zwischen Calc und Base verdeutlichen - ich weiß nicht, ob jeder das
genauso sieht - , dass Calc ein gutes Werkzeug ist, wenn sich vor allem
die Dateninhalte öfters ändern (oder man das sowieso nur einmalig
braucht), denn da kommt man dann schnell zum Ziel. Wenn dagegen häufige
Änderungen am Datenumfang oder der Struktur erfolgen werden, ist man
bei Base besser dran, denn dann verliert man bei Calc leichter den
Überblick. Bei größeren Datenmengen wird der Vorteil von Base sowieso
immer höher. Und auch die Sicherheit spricht dann für Base: wie schnell
ist ein Bezug verhunzt; bei Base (bei Datenbankanwendungen allgemein)
sind die Beziehungen von den Daten getrennt.
Also, vielleicht machst du, nachdem du dein Problem in Calc gelöst
hast, mal einen Versuch mit Base.
Gruß
Gerhard
Am 18.10.2017 um 20:06 schrieb OoOHWHOoO:
Hallo,
ich habe die ursprüngliche Problemstellung mal vereinfacht: Eine
CALC-Datei mit 3 Tabellen "A", "B" und "C".
[1] Tabelle "A":
| A_Artikel_10 | A_ArtNr_10 | A_E-Preis_10 |
| A_Artikel_30 | A_ArtNr_30 | A_E-Preis_30 |
| A_Artikel_50 | A_ArtNr_50 | A_E-Preis_50 |
| A_Artikel_70 | A_ArtNr_70 | A_E-Preis_70 |
| A_Artikel_90 | A_ArtNr_90 | A_E-Preis_90 |
[2] Tabelle "B":
| ref_A_Artikel_10 | ref_A_ArtNr_10 | ref_A_E-Preis_10 | B_Anzahl_10 |
B_G-Preis_10 |
| ref_A_Artikel_50 | ref_A_ArtNr_50 | ref_A_E-Preis_50 | B_Anzahl_50 |
B_G-Preis_50 |
| ref_A_Artikel_70 | ref_A_ArtNr_70 | ref_A_E-Preis_70 | B_Anzahl_70 |
B_G-Preis_70 |
[3] Tabelle "C":
| ref_A_Artikel_30 | ref_A_ArtNr_30 | ref_A_E-Preis_30 | C_Anzahl_30 |
C_G-Preis_30 |
| ref_A_Artikel_90 | ref_A_ArtNr_90 | ref_A_E-Preis_90 | C_Anzahl_90 |
C_G-Preis_90 |
Die Tabellen "B" und "C" beziehen sich mit den Zellinhalten "Artikel",
"ArtNr" und "E-Preis" auf die jeweiligen Zellen in Tabelle "A".
Nach Modifikation der Tabelle "A", beispielsweise durch Einfügung von
weiteren Zeilen,
| A_Artikel_10 | A_ArtNr_10 | A_E-Preis_10 |
| A_Artikel_20 | A_ArtNr_20 | A_E-Preis_20 |
| A_Artikel_30 | A_ArtNr_30 | A_E-Preis_30 |
| A_Artikel_40 | A_ArtNr_40 | A_E-Preis_40 |
| A_Artikel_50 | A_ArtNr_50 | A_E-Preis_50 |
| A_Artikel_60 | A_ArtNr_60 | A_E-Preis_60 |
| A_Artikel_70 | A_ArtNr_70 | A_E-Preis_70 |
| A_Artikel_80 | A_ArtNr_80 | A_E-Preis_80 |
| A_Artikel_90 | A_ArtNr_90 | A_E-Preis_90 |
sollen die Inhalte "Artikel", "ArtNr" und "E-Preis" in den Tabellen
"B" und "C" unverändert bleiben.
Gibt es eine Möglichkeit in den Tabellen "B" und "C" die Zellen in der
Tabelle "A" so zu referenzieren, dass bei Modifikation der Tabelle "A"
die Zellinhalte in den Tabellen "B" und "C" erhalten bleiben ?
Gruß
Hans-Werner
-- 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
--
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.