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


Hallo Markus,

zur Sicherheit geht die Mail auch direkt an dich, falls du nicht bei der Liste angemeldet bist. Das solltest du dann allerdings tun, weil man normalerweise nur über die Liste kommuniziert (auch damit man überhaupt die Reihenfolge mitbekommt), du würdest also Antworten sonst gar nicht bekommen.

Ich habe beim Aufräumen diese Anfrage gefunden. Ich hatte sie sicher nicht näher angeschaut, weil ich Calc praktisch nie verwende und deshalb warten wollte, ob jemand anders antwortet. Da das offensichtlich nicht der Fall gewesen ist, habe ich nun doch mal selber draufgeschaut. Ich habe auch eine Weile gesucht, bis ich darauf gekommen bin, woran das wahrscheinlich (denn ich kenne deine Datei ja nicht) liegen könnte, geholfen hat mir das parallele Ausprobieren mit DBANZAHL, das ja nur numerische Werte auswertet, da kann man das in etwas anderer Form ausprobieren. Ich denke, dass dein Problem darin liegt, dass du die übliche Spaltenzählung von Calc, wenn man nicht mit den Buchstaben arbeitet, auf diese Funktion überträgst, was naheliegt, aber laut der Beschreibung in der Hilfe

   "um die Spalte beginnend mit 1 innerhalb des Datenbankbereichs
   festzulegen"

falsch ist, die Spalten im Datenbankbereich werden beginnend mit 1 gezählt; sicher verwirrend, aber das ist das ewige Problem, ob mit 0 oder 1 begonnen wird, für beides gibt es Argumente.
Deine Aussage

   "Trage ich einen beliebigen Wert in in Spalte 0 ... ein"

ist nun nicht ganz eindeutig, aber ich gehe davon aus, dass du die erste Spalte des Datenbankbereichs, also Spalte C, meinst. Unter dieser Annahme kann ich das beschriebene Verhalten nachvollziehen: die Hilfe im Funktionsassistenten sagt, dass nur die Fälle gezählt werden, die nichtleere Zellen enthalten (zu ergänzen wäre: in der durch "Datenbankfeld" definierten Spalte), und genau das passiert, wenn meine Annahme stimmt. Die allgemeine Hilfe ist hier zwar nicht falsch, aber man muss aus "numerische oder alphanumerische Werte" erst schließen, dass dann eben leere Inhalte ausgeschlossen sind. Immer unter der genannten Annahme: deine Beschreibung lässt annehmen, dass die erste Spalte des Datenbankbereichs häufig erst einmal noch nicht gefüllt ist, so dass die Wahl von 1 als zweitem Parameter sicher nicht angebracht ist; da du offenbar die zweite Spalte des Datenbankbereichs wählen wolltest (und nur aufgrund der Annahme, dass die Zählung bei 0 losgeht, 1 gesetzt hast), solltest du es mit 2 als 2. Parameter versuchen. Wenn deine Wahl der 1 wohlüberlegt war und nur durch die Fehlinterpretation, dass auch für diese Funktion von 0 ab gezählt wird,zum falschen Ergebnis führte, sollte alles OK sein. Wenn es noch weitere Unklarheiten gibt: Diese Wahl der 2 würde bedeuten, dass du sicher bist, dass von Anfang an in dieser Spalte immer Werte stehen, was ich mangels Information zu deiner Tabelle nicht beurteilen kann. Wenn das nicht gilt, wird ein weiterer Schritt notwendig: die Funktion zählt laut Doku (ich habe das nicht detailliert getestet) nur Zeilen, die einen nicht leeren Eintrag in der durch "Datenbankfeld" definierten Spalte haben: du müsstest dann wohl eine Summenspalte einführen, die jeweils die Zeilensummen enthält, und diese abfragen (die Suchkriterien dürften ja die im Datenbankbereich leeren Zeilen ohnehin nicht erfüllen).

Es macht vielleicht das Problem etwas klarer bei der Untersuchung, wenn du statt der Spaltennummer (relativ zum Datenbankbereich, beginnend ab 1) die Zelle der Überschrift angibst (vgl. die allgemeine Hilfe), was bei dir dann wohl D9 wäre, wenn ich das richtig interpretiere. Ich gehe da immer von dem Beispiel in der Hilfe aus, das ich auf deine Angaben angepasst habe, so wie ich sie verstanden habe. Ich habe nicht ausprobiert, ob und wie das ohne Überschriften vielleicht gehen könnte.

Und die Beschreibung "Datenbankfeld gibt die Spalte an, wo die Funktion ausgeführt wird" ist jedenfalls sehr unklar, ich habe das erst nach all den Tests kapiert, dass das offenbar nur bedeutet, wo der Check über "nichtleer" bzw. bei DBANZAHL über "nicht numerisch" durchgeführt wird. Ich schaue mir die englische Doku noch an, wenn mir etwas Gescheites einfällt, werde ich auch noch eine Korrektur der Doku anregen.

Gruß

Gerhard

Am 15.02.2019 um 08:10 schrieb Markus Mueller:
Liebe Liste,

ich habe seit vielen LO-Versionen bis aktuell Version: 6.1.5.2 (x64) (Windwows 7) folgende Auffälligkeit, die ich eigentlich für einen Bug halte. Wer kann sie nachvollziehen?

Ich werte eine Tabelle mit Zahlen aus. Unter anderem ermittle ich in der zweiten Spalte (Calc fängt bei 0 an die Spalten zu zählen, in DBANZAHL2 also die "1" als 2. Argument) des Tabellenbereichs die Anzahl von Werten, die einem bestimmten Kriterium genügen, mit:

=DBANZAHL2($C$9:$AA$37;1;$Krit.$V$4:$Krit.$V$5)

Dabei zeigt sich ein merkwürdiges Verhalten. Ist die erste Spalte (Spalte "0" in Calc-Zählweise) in einer Zeile leer, so wird auch ein den Kriterien genügender Wert in der Zelle rechts daneben (gleiche Zeile, Spalte 1) NICHT gezählt (d.h. das Ergebnis von DBANZAHL2 ist um 1 zu niedrig). Trage ich einen beliebigen Wert in in Spalte 0 (selbstverständlich immer noch in der gleichen Zeile) ein, wird korrekt gezählt.

Das ganze ist insofern relevant, als dass sich die Tabelle erst mit der Zeit vollständig mit Werten füllt, die Zwischenergebnisse (also auch die mit DBANZAHL2 ermittelten Werte) aber durchaus interessant sind.

Besten Dank für Eure Beobachtungen!

Markus




--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

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.