Auswertung von Druckstatistiken

Hallo an Alle

ich habe mal wieder ein Problem.

Produktivumgebung:
Windows 7 Professional mit SP 1
LibreOffice 4.1.0.4 (bis jetzt problemlos)

Testumgebung:
Debian 6.0.7 "Squeeze" mit KDE 4.5.5
LibreOffice 3.5.4.2

Situation:
Ich habe eine Calc-Mappe mit 13 Grafik- und 13 Wertetabellen. 12
Wertetabellen sind alle wie hier aufgebaut (aber deutlich länger):

Tabelle Juni
lfd. Nr Name Blatt Flaeche
Drucker 1 g1100924 15 1,85
Drucker 2 g11001971 75 7,27
Drucker 3 g50000469 10 0,81
Drucker 4 g11007159 2 0,12
Drucker 5 g50001989 60 3,74
Drucker 89 g50002499 0 0,00
    gesamt 162 13,79

Die Spalte "lfd. Nr" ist die Spalte A, "Name" ist Spalte B, "Blatt" ist
Spalte C und "Flaeche" ist Spalte D. Drucker 1 ist in der Zeile 3 alle
folgenden sind ohne Lücken dahinter.
Die 13. Wertetabelle gibt eine Gesamtübersicht, dh eine Auflistung der
Zeile "gesamt" der Einzeltabellen.

Die 13 Grafiktabellen sind Balkengrafiken, damit die Zahlen KLV-fähig sind.

Bei den Wertetabellen ändert sich naturgemäß die Liste der Drucker.
Drucker, die defekt sind, werden ausgetauscht, neue Drucker kommen hinzu,
nicht mehr benötigte Drucker fallen weg (kommt sehr/zu selten vor). Das
heißt, dass die Liste mal länger, mal kürzer ist und auch andere Drucker
drin stehen. Was hier unter geht, sind die Drucker die überhaupt nicht
genutzt werden. Diese sind mal rein prophylaktisch angelegt worden und
kosten nur. Sie müssen irgendwann entfernt werden. Kandidat dafür wäre oben
Drucker 89. Nach einem Druckeraustausch könnte die Tabelle dann
folgendermaßen aussehen:

Tabelle Juli
lfd. Nr Name Blatt Flaeche
Drucker 1 g11000924 15 1,85
Drucker 2 g11001971 75 7,27
Drucker 4 g11007159 2 0,12
Drucker 5 g50001989 60 3,74
Drucker 7 g50005469 10 0,81
Drucker 8 g11005479 10 0,81
Drucker 9 g11005489 10 0,81
Drucker 89 g50002499 0 0,00
    gesamt 182 15,41

Drucker 89 ist wieder dabei, obwohl nicht genutzt. Die Schwierigkeit dabei
ist, zu erkennen ob der Drucker 89 nur vorübergehend nicht genutzt wird
oder gar nicht. Dies ließe sich feststellen, wenn die Drucker über einen
längeren Zeitraum auf summiert werden würden. Außerdem ließe sich dadurch
feststellen, welche Drucker besonders belastet sind und eventl eine
vorsorgliche Wartung oder ein Austausch nötig ist. Mit anderen Worten:
Ich benötige eine Tabelle, die folgendermaßen aussieht und aus den Tabellen
Januar bis Dezember abgeleitet ist:

lfd. Nr Name Blatt Flaeche
Drucker 1 g11000924 x y
Drucker 2 g11001971 x y
Drucker 3 g50000469 x y
Drucker 4 g11007159 x y
Drucker 5 g50001989 x y
Drucker 7 g50005469 x y
Drucker 8 g11005479 x y
Drucker 9 g11005489 x y
Drucker 89 g50002499 x y

Die Spalte "lfd. Nr." kann wegfallen.
Die Spalte "Name" ist die Liste der Druckernamen aus den jeweiligen
Wertetabellen, wobei jeder Drucker nur einmal aufgelistet sein darf.
Die Spalte "Blatt" ist eine Aufsummierung der Werte aus der Spalte "Blatt"
aus den jeweiligen Wertetabellen, genauso wie die Spalte "Flaeche"

Ich habe keine Ahnung wie man das mit LO realisieren könnte. Ich bin zwar
Programmierer, kenne mich mit der Makrosprache oder den anderen angebotenen
Varianten (BeanShell, Java-Script, Phython) nicht aus. Ob das als Formel
realisierbar ist, weiß ich auch nicht, habe aber meine Zweifel.

Ich könnte es mit den Rohdaten wahrscheinlich als Shell- oder Tcl/Tk-Script
realisieren, müsste dann aber von Hand einen Import in LO machen.

Ich bitte um einen Lösungsansatz, entweder als Makro oder als Formel.

Hallo Matthias,

ich habe mal wieder ein Problem.

Produktivumgebung:
Windows 7 Professional mit SP 1
LibreOffice 4.1.0.4 (bis jetzt problemlos)

Testumgebung:
Debian 6.0.7 "Squeeze" mit KDE 4.5.5
LibreOffice 3.5.4.2

Situation:
Ich habe eine Calc-Mappe mit 13 Grafik- und 13 Wertetabellen. 12
Wertetabellen sind alle wie hier aufgebaut (aber deutlich länger):

Warum nimmst Du für eine reine Datensammlung mit wenig Rechnung eine
Tabellenkalkulation?
Seit kurzem geht auch wieder die Darstellung von Diagrammen in
Berichten, so dass das Ganze eigentlich nach einer Datenbank ruft. Da
ist die Einzigartigkeit der Drucker sicher gewährleistet.

Lösungen mit Calc - dazu müssen andere etwas schreiben. Für mich ist
Calc ein Programmteil, in dem mit wenig Dateneingaben viel gerechnet
werden muss.

Gruß

Robert

Hallo Matthias,

Tabelle Juni
lfd. Nr Name Blatt Flaeche
Drucker 1 g1100924 15 1,85
Drucker 2 g11001971 75 7,27
Drucker 3 g50000469 10 0,81
Drucker 4 g11007159 2 0,12
Drucker 5 g50001989 60 3,74
Drucker 89 g50002499 0 0,00
    gesamt 162 13,79

Frage: Woher kommen die Laufenden Nummern? Sind die einigermaßen
aufeinander folgend? Oder gibt es große Lücken? Werden Nummern neu
vergeben, falls der zugehörige Drucker "stirbt"?

Eine einfache Lösung wäre mit folgender Idee zu realisieren:

a) Nimm die "Gesamt-Zeile" nach oben. So hast du sie (egal wie lang die
Tabelle ist) an einer definierten Stelle.

b) Darunter dann eine Zeile pro Drucker, wobei in jeder Tabelle jeder
Drucker in der gleichen Zeile steht (z.B. 1 in Zeile 4, 2 in Zeile
5, ...).

Nun ist es relativ einfach, die Werte eines Druckers zusammen zu
bekommen.

Andere Möglichkeit:

Für jeden Drucker eine Zeile in _einer_ Tabelle und dahinter dann
jeweils Blatt/Fläche für Januar, Blatt/Fläche für Februar,...

Dann ist es einfacher, eine Zeile einzufügen, falls Nummern neu belegt
oder Drucker ausgemustert werden. Auch hier empfiehlt sich, die Summe
nach oben zu versetzen.

Nur so als Grundgedanke,
Michael

Hallo Robert,

> Wertetabellen sind alle wie hier aufgebaut (aber deutlich länger):
Warum nimmst Du für eine reine Datensammlung mit wenig Rechnung eine
Tabellenkalkulation?

Weil die Zählerei und Rechnerei beim Verdichten der Daten vor dem Einfügen
in die Tabelle passiert.
Und ganz wichtig, weil ich in Calc am einfachsten die Balkengrafiken
erstellen konnte.

Seit kurzem geht auch wieder die Darstellung von Diagrammen in
Berichten,

Seit wann ist "seit kurzem"?

so dass das Ganze eigentlich nach einer Datenbank ruft.

Die Auswertung mit Calc gibt es jetzt bereits seit 2 Jahren

Da
ist die Einzigartigkeit der Drucker sicher gewährleistet.

Dass wir uns richtig verstehen: hier geht es nicht um sowas wie unique
constraints, sondern ich will zu einem gegebenen Drucker die
Gesamtdruckleistung über einen bestimmten Zeitraum (hier 6 Monate)

Lösungen mit Calc - dazu müssen andere etwas schreiben. Für mich ist
Calc ein Programmteil, in dem mit wenig Dateneingaben viel gerechnet
werden muss.

Im Prinzip richtig, aber gerechnet wird woanders.

Danke erst mal für deine nicht ganz von der Hand zu weisenden Kritik.

Hallo Michael

Hallo Matthias,

> Tabelle Juni
> lfd. Nr Name Blatt Flaeche
> Drucker 1 g1100924 15 1,85
> Drucker 2 g11001971 75 7,27
> Drucker 3 g50000469 10 0,81
> Drucker 4 g11007159 2 0,12
> Drucker 5 g50001989 60 3,74
> Drucker 89 g50002499 0 0,00
>
> gesamt 162 13,79

Frage: Woher kommen die Laufenden Nummern? Sind die einigermaßen
aufeinander folgend? Oder gibt es große Lücken? Werden Nummern neu
vergeben, falls der zugehörige Drucker "stirbt"?

Die laufenden Nummern sind nur eine Zählung und für die Auswertung
vollkommen unwichtig. Sie sind nur da um leichter zählen zu können.

Eine einfache Lösung wäre mit folgender Idee zu realisieren:

a) Nimm die "Gesamt-Zeile" nach oben. So hast du sie (egal wie lang die
Tabelle ist) an einer definierten Stelle.

b) Darunter dann eine Zeile pro Drucker, wobei in jeder Tabelle jeder
Drucker in der gleichen Zeile steht (z.B. 1 in Zeile 4, 2 in Zeile
5, ...).

Das wäre vermutlich realisierbar, voraus gesetzt ich habe die Idee richtig
begriffen. Wenn ein Drucker aber am 31. März stirbt habe ich in dieser
Zeile ab April ein Loch. Für jeden Drucker, der weg kommt entsteht ab dem
Folgemonat ein Loch, da die Namen eindeutig sind und nicht wieder vergeben
werden.

Das Problem ist hier die Datenverdichtung, die monatlich aus einer
Statistikdatei erstellt wird. Dabei werden Vormonate nicht berücksichtigt.

Nun ist es relativ einfach, die Werte eines Druckers zusammen zu
bekommen.

Andere Möglichkeit:

Für jeden Drucker eine Zeile in _einer_ Tabelle und dahinter dann
jeweils Blatt/Fläche für Januar, Blatt/Fläche für Februar,...

Das läuft auf die gleichen Probleme raus.

Ich muss mal sehen ob nicht irgendwas über die Auswertung der Rohdaten
gemacht werden kann.

Danke erst mal für die Ideen.

Hallo Matthias,

Seit kurzem geht auch wieder die Darstellung von Diagrammen in
Berichten,

Seit wann ist "seit kurzem"?

Die Darstellung von Diagrammen verschwand mit der Version 3.5.0 Beta1.
Lionel hat das am 3.5.2013 gefixt. Die Versionen 3.6.7, 4.0.4 und 4.1.0
haben diesen Bug nicht mehr. Allerdings lässt sich das nicht in der
4.0.4 überprüfen, weil dort der Start des Report-Builders zum
Totalabsturz führt. Mit 4.0.5.1 und die 4.1.0 kann ich auf jeden Fall
wieder Diagramme sehen.

so dass das Ganze eigentlich nach einer Datenbank ruft.

Die Auswertung mit Calc gibt es jetzt bereits seit 2 Jahren

Wenn da etwas schon länger zufriedenstellend läuft würde ich natürlich
auch überlegen, ob sich da ein Neuanfang lohnt. Ist immer eine Frage von
Aufwand und Nutzen. Aber vor 2 Jahren tat's ja auch die Diagrammfunktion
in Base sowieso nur mit LO < 3.5

Gruß

Robert

Du suchst die Funktion 'Daten => Konsolidieren'.

Wenn die Datenblätter durchnummeriert sind ('Tabelle1', 'Tabelle2' usw.)
oder ähnlich aufgebaut sind, kannst Du es Dir einfach machen. Dann
brauchst du nur die die 'gesammt'-Zeile, wie Michael schon vorgeschlagen
hat, nach oben schieben, und kannst direkt die o. g. Funktion aufrufen.

Andernfalls legst Du Dir sinnvollerweise zuerst für die 12 Monate je
einen Bereich an, indem Du je Datenblatt die Daten inklusive
Überschriften (aber *ohne* die Spalte 'Name') markierst, also ab dem
Feld B2 ('Name') bis hinunter zu dem '0,00' für 'Drucker 89' o. ä. Dann
öffnest Du 'Daten => Bereich festlegen' und gibst dort 'Januar' (bzw.
'Februar' usw.) ein. Anschließend öffnest Du ebenfalls die o. g. Funktion.

Hier stellst Du folgendes ein:

Berechnungsvorschrift: Summe

Quelldatenbereich: Entweder Du wählst nacheinander alle Monatsnamen in
dem /linken/ Eingabefeld aus, und fügst sie per 'Hinzufügen' hinzu, oder
Du klickst auf das kleine Symbol rechts neben den /rechten/ Eingabefeld,
markierst in der ersten Tabellenblatt den Bereich B2:D500 o. ä. (groß
genug, daß auf allen Blättern der Datenbereich garantiert erfasst wird),
klickst 'Hinzufügen', änderst den Tabellennamen ('Tabelle1' => 'Telle2'
usw.), klickst wieder 'Hinzufügen', usw, bis Du alle Tabellen drin hast.

Ergebnis ausgeben ab: in das /rechte/ Eingabefeld 'Tabelle13.A1' (oder
wo du sie ausgegeben haben möchtest)

Optionen => [X] Zeilenbeschriftungen
            [X] Spaltenbeschriftungen

Dann müsste eine Ausgabetabelle erscheinen, in der genau die von Dir
gewünschte Liste ausgegeben wird.

'Müsste' deswegen, weil ich bei meinen Versuchen hier etwas
Schwierigkeiten hatte, ein vernünftiges Ergebnis (oder überhaupt eines)
zustande zu bringen. Zuerst wurden überhaupt keine Werte angezeigt (lag
wie ich heraus fand daran, daß wegen den Spaces vor den Zahlen in Deiner
Email diese als Text importiert wurden). Dann hate ich teilweise das
Problem, daß entweder die Spalte mit den Druckernamen leer blieb, oder
es wurden die Werte für 'Blatt' und 'Fläche' nicht aufsummiert. Und
ehrlich gesagt hab ich beim Rumprobieren ziemlich wahllos im Nebel
herumgestochert, und mir dabei nicht gemerkt, was genau ich zuletzt oder
insgesamt geändert hatte. Irgendwie waren da teilweise doch noch Texte
dabei. Dann war ausgerechnet der eine Drucker, den ich mir zwecks
Überprüfen der Werte ausgesucht hatte, falsch geschrieben ('g1100924'
statt 'g11000924'; da fehlt eine Null in Deiner Email :frowning: ); und was
weiß ich noch alles. Irgenwann hatte ich die Übersicht verloren, was
woran lag, und was nicht. Sorry, aber ich habe diese Funktion jetzt auch
erst zum ersten mal angewendet.

Falls Du auch Probleme hast, dann ist ein anscheinend funktionierender
Workaround (sofern keine Texte unter den Zahlen sind) alle Fälle, zuerst
eine Konsolidierung mit '[X] Zeilen / [_] Spalten' durchzuführen (gibt
die Druckernamen, aber keine Spaltenüberschriften, und summiert auch
nicht auf; wobei ich nicht sagen kann, ob letzteres nicht eventuell doch
nur an dem falschen Namen lag, denn manchmal tat es das irgendwie doch),
und dann gleich nochmal darüber eine mit '[_] Zeilen / [X] Spalten'
(gibt keine Namen aus, löscht diese aber auch nicht, liefert aber dafür
die Spaltenüberschriften, und summiert auch auf; merkwürdigerweise auch
den falsch geschriebenen Drucker).

Wolfgang

Hallo Wolfgang,

snip

Du suchst die Funktion 'Daten => Konsolidieren'.

snip: Ausführliche Beschreibung

Vielen Dank dafür. Werde mich nächste Woche mal damit näher beschäftigen
und auch dann berichten.

Könnte was sein.

Hallo,

snip

Du suchst die Funktion 'Daten => Konsolidieren'.

Volltreffer, versenkt.

Das war's in der Tat was ich brauchte und mangels Wissen nicht bekommen
habe. Habe eine Weile damit gespielt, äh geforscht, meine Anforderungen
sind erfüllt.