Re: [de-users] Writer/Calc: echte relative Referenzierung in Tabelle

2015-01-06 Diskussionsfäden Wolfgang Jäth
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

2015-01-06 Diskussionsfäden Ben Dietze
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