Re: [de-users] Writer/Calc: echte relative Referenzierung in Tabelle
Am 06.01.2015 um 15:50 schrieb Ben Dietze: ich schlage mich gerade mit einem Problem herum, für das ich bisher keine saubere Lösung finden konnte. Sicherlich kann mir hier jemand auf die Sprünge helfen. Dafür schon im voraus vielen Dank! Aufgabe: In einer Writer-Vorlage gibt es eine Tabelle mit Platzhaltern in einer Zeile, die von einem externen Programm in benötigter Anzahl kopiert und mit Daten gefüllt wird (die Zeile, nicht die Tabelle) [1]. Oberhalb dieser Zeile und auch direkt darunter stehen feste Daten bzw Formeln, die Berechnungen anhand der eingefügten Daten vornehmen. Also etwa so: SpalteA | SpalteB Zeile1: NAME| ANZAHL Zeile2: name | cnt Zeile3: Summe: | sum(B2:B2) Problem: Die Vorlage weiss nicht, wie viele Zeilen eingefügt werden. Mal wird nur eine Zeile genutzt, es können aber auch ein Dutzend oder mehr Zeilen eingefügt werden. Den Beginn der Summenfunktion kann ich dabei noch direkt adressieren, doch das Ende bekomme ich nicht zu fassen. Rein logisch betrachtet ist es die Zelle oberhalb der aktuellen Zelle. Doch die angebliche relative Referenzierung ist ja faktisch eine absolute Referenzierung, die bei Verschiebeoperationen mitgezogen wird. Da Writer in Bezug auf die Tabellenfunktionen extrem begrenzt ist, Yepp; in Writer ist es wohl das sinnvollste, nicht Zeilen /einzufügen/, sondern einfach von vornherein eine /fixe/ (maximale) Anzahl Zeilen zur Verfügung zu stellen. Evtl. kannst Du dann im Nachhinein sogar noch die Höhe der leeren Zeilen auf Null setzen o. ä., dann hast Du quasi, was Du willst (nur von hinten her aufgezogen). 3) Eine Adressierung über eine benannte Zelle funktioniert sowieso nicht, da dies entweder die Überschrift wäre oder die zu kopierende Zelle mit dem Platzhalter. Beides ist hier sinnlos. Und wenn Du jeweils eine Leerzeilen einfügst, in denen sich die benannten Zellen befinden? Dies Hilfszeilen kannst Du ja notfalls ausblenden (Zeile markieren, Tabelle = Tabelleneigenschaften = Umrandung = Abstand zum Inhalt: 0; Format = Zeichen = Schrifteffekt = [X] Ausgeblendet; ist aber unschön, weil man irgend wann vergisst, dass da ein ausgeblendeter Text existiert). Kennt jemand eine Lösung für Writer, die diese Aufgabe erledigen kann? Mir geht es nicht speziell um VERSCHIEBUNG(), sondern um die Aufsummierung einer unbekannten Anzahl von Zeilen. Nein; das Problem ist, dass Writer ein Textverarbeitungsprogramm und kein Tabellenverarbeitungsprogramm ist. Tabellen und Formeln sind da nur sehr rudimentär vorhanden, und letztere werden bei Änderungen nicht wirklich gut angepasst; das musst Du im Prinzip jedes mal selber machen. Wolfgang -- -- Liste abmelden mit E-Mail an: users+unsubscr...@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
[de-users] Writer/Calc: echte relative Referenzierung in Tabelle
Hallo, ich schlage mich gerade mit einem Problem herum, für das ich bisher keine saubere Lösung finden konnte. Sicherlich kann mir hier jemand auf die Sprünge helfen. Dafür schon im voraus vielen Dank! Aufgabe: In einer Writer-Vorlage gibt es eine Tabelle mit Platzhaltern in einer Zeile, die von einem externen Programm in benötigter Anzahl kopiert und mit Daten gefüllt wird (die Zeile, nicht die Tabelle) [1]. Oberhalb dieser Zeile und auch direkt darunter stehen feste Daten bzw Formeln, die Berechnungen anhand der eingefügten Daten vornehmen. Also etwa so: SpalteA | SpalteB Zeile1: NAME| ANZAHL Zeile2: name | cnt Zeile3: Summe: | sum(B2:B2) Problem: Die Vorlage weiss nicht, wie viele Zeilen eingefügt werden. Mal wird nur eine Zeile genutzt, es können aber auch ein Dutzend oder mehr Zeilen eingefügt werden. Den Beginn der Summenfunktion kann ich dabei noch direkt adressieren, doch das Ende bekomme ich nicht zu fassen. Rein logisch betrachtet ist es die Zelle oberhalb der aktuellen Zelle. Doch die angebliche relative Referenzierung ist ja faktisch eine absolute Referenzierung, die bei Verschiebeoperationen mitgezogen wird. Da Writer in Bezug auf die Tabellenfunktionen extrem begrenzt ist, habe ich auch versucht, das Problem direkt in Calc zu lösen. Folgendes habe ich getestet: 1) relative Referenzierung: sum(B2:B2) Dies wird beim Einfügen weiterer Zeilen nicht erweitert, sondern mitgezogen. Dies war auch absehbar, da LO nicht weiss, dass es die eine Referenz belassen und die andere mitziehen soll. 2) relative + absolute Referenzierung: summe($B$2:B2) Diese Möglichkeit aus Calc bietet Writer offenbar nicht an. Doch auch in Calc wird diese Referenzierung nicht erweitert, sondern es werden beide Referenzen mitgezogen. 3) Eine Adressierung über eine benannte Zelle funktioniert sowieso nicht, da dies entweder die Überschrift wäre oder die zu kopierende Zelle mit dem Platzhalter. Beides ist hier sinnlos. 4) Adressierung über VERSCHIEBUNG() in Calc Da die Adressierung einer Zelle mitgezogen wird, dachte ich, ich könnte die erste Zelle per VERSCHIEBUNG() referenzieren. Das funktioniert sogar recht gut. Die Funktion =SUMME(VERSCHIEBUNG(D2;1;0):D3) wird beim Einfügen zweier Zeilen geändert in =SUMME(VERSCHIEBUNG(D2;1;0);D5). Leider gibt es die Funktion in Writer nicht. Kennt jemand eine Lösung für Writer, die diese Aufgabe erledigen kann? Mir geht es nicht speziell um VERSCHIEBUNG(), sondern um die Aufsummierung einer unbekannten Anzahl von Zeilen. System: LMDE 64bit, LO 4.4.0.1, deutschsprachige Oberfläche [1] Das Programm greift per UNO-Schnittstelle auf LO zu und geht dabei folgendermaßen vor: die Zeile mit den Platzhaltern wird kopiert und anschließend zeilenweise in benötigter Anzahl oberhalb der vorhandenen Zeile eingefügt. Dann werden die Platzhalter durch die entsprechenden Daten ersetzt. Gruß Ben -- Liste abmelden mit E-Mail an: users+unsubscr...@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