Seite 1 von 22

gelöst; variable Zellenzahl ermitteln

Verfasst: Do 17. Dez 2020, 15:45
von natal
Hallo
Nachdem ich mein Problem selber nicht lösen kann (zu geringe Vorkenntnisse), bleibt mir nur übrig, mich an euch um Hilfe zu wenden.

Ich benütze ein Meßprogramm, dass mir bei jedem Durchlauf zwischen 5000 und 45000 Einzelmeßergebnisse liefert.
Die Einzelmeßergebnisse (Zahlen zwischen 0 und 200) werden in Zellen der Spalte A (Libreoffice-calc) gespeichert.
In Spalte B möchte ich nach jedem Meßdurchlauf feststellen, wieviele Zellen der Spalte A tatsächlich belegt wurden.
Das könnte ich erreichen, indem ich in Zelle B2 folgende Formel =wenn(A3=““;““;B1+1) eingebe
und danach diese Formel mit Kopieren und Einfügen in die 45000 Zellen der Spalte B übernehme.
Da ich mir eine Vorlage zum Auswerten der einzelnen Meßdurchgänge erstellen möchte, hätte das zur Folge, dass auch bei Meßdurchgängen bei denen nur 5000 Einzemessungen erforderlich sind, trotzdem 45000 Zellen der Spalte B belegt werden.
Ein unnötig großer Speicherverbrauch.
Besser ist es ein Makro zu erstellen, dass die Formel =wenn(A3=““;““;B1+1) nur solange in die nächste Zelle der Spalte B kopiert, solange die Zellen der Spalte A einen Inhalt besitzen.

Nur dieses Makro zu schreiben geht über meinen Horizont.
Könnt ihr mir dabei behilflich sein?
An Hand so eines geschriebenen Makros gelingt es mir wahrscheinlich auch eher Verständnis zum Schreiben von Makros zu entwickeln.

Gruß und Danke für Hilfe im Voraus
natal

Re: variable Zellenzahl ermitteln

Verfasst: Do 17. Dez 2020, 18:29
von nitja
natal hat geschrieben:
Do 17. Dez 2020, 15:45
… B2 folgende Formel =wenn(A3=““;““;B1+1) eingebe
und danach diese Formel mit Kopieren und Einfügen in die 45000 Zellen der Spalte B (??) übernehme. …
Was ist das Ziel? Willst Du lediglich die Zahl der belegten Zellen der Spalte A in B eintragen? Dafür probiere mal =ZÄHLENWENN(A1:A45000;"<>") in B1.

Re: variable Zellenzahl ermitteln

Verfasst: Fr 18. Dez 2020, 17:59
von natal
Vielleicht kann ich mit dieser Beschreibung meinen Wunsch verständlicher machen.

Da das Meßprogramm öfters benützt wird und bei jedem Meßprogrammdurchlauf auch mehrere Berechnungen durchgeführt werden, möchte ich dafür eine Vorlage erstellen.
Für die Vorlage und die Berechnungen ist es notwendig, dass die Zellen der Spalte B mit einem Makro folgendermaßen belegt werden:

* ein Meßprogrammdurchlauf könnte z.B. 6000 gefüllte Zellen in Spalte A ergeben
- das Makro sollte jetzt in die Zelle B1 den Inhalt 1, danach in die Zelle B2 den Inhalt 2,
danach in die Zelle B3 den Inhalt 3 u.s.w. schreiben und das so lange wiederholen bis
die Zelle B6000 erreicht ist und in die Zelle B6000 der Inhalt 6000 eingetragen wurde
und dann stoppen
* ein weiterer Meßprogrammdurchlauf ergibt z.B. 14500 gefüllte Zellen in Spalte A
- das Makro sollte jetzt in die Zelle B1 den Inhalt 1, danach in die Zelle B2 den Inhalt 2,
danach in die Zelle B3 den Inhalt 3 schreiben u.s.w. und das so lange wiederholen bis
die Zelle B14500 erreicht ist und die Zelle B14500 den Inhalt 14500 besitzt und dann
stoppen

Das Makro sollte also entsprechend der Programmdauer und der Anzahl der dabei gefüllten Zellen der Spalte A die gleiche Anzahl von Zellen der Spalte B mit Zahlen beginnend mit 1 füllen.

Re: variable Zellenzahl ermitteln

Verfasst: Fr 18. Dez 2020, 18:50
von craig
Hallo natal,
natal hat geschrieben:bei jedem Meßprogrammdurchlauf auch mehrere Berechnungen durchgeführt werden
Frage:
  1. wie werden die Meßdaten erfasst?
    1. manuelle Einträge
    2. Alle Daten eines gesamten Meßdurchlauf per c&p
    3. Automatisch z.B. per Zeitintervall durch ein externes Programm, wenn ja, in welchen Zeitabschnitten (z.B. alle 10 Sekunden)
  2. auf Basis Deiner geposteten Wenn-Funktion gehe ich davon aus, dass es beim Messen auch zu leeren Zelle in Spalte A kommt, welche nicht mitgezählt werden sollen.
    Ist dies korrekt?
Es gibt verschiedenste Methoden, wie man ein solches Makro schreiben könnte und es gibt verschiedenen Methode wie ein solches Makro reagieren soll, z.B. bei Tabellenblattereignissen, auf Knopfdruck, sonstiges.
Dies ist u.U. davon abhängig, wie die Daten erfasst werden.

Deshalb brauche ich mehr Informationen zu obengestellten Fragen.
Ausserdem kann es auch wichtig sein, ob weitere Zellen im Tabellenblatt ständig mit Daten/ Formeln belegt sind, eine Zellbereichsangabe ist das Minimum, besser eine Beispieldatei, damit wird beide auf dem gleichen Kenntnisstand sind.

Re: variable Zellenzahl ermitteln

Verfasst: Fr 18. Dez 2020, 21:03
von natal
Hallo craig

- Die Daten übernehme ich manuell von einem anderen Programm und füge sie per c&p in Spalte A ein

- außer den Daten, die ich mit c&p in Spalte A einfüge, ist Spalte A leer

- mit der Formel =wenn(A3=““;““;B1+1) wollte ich euch nur sagen (ein irreführender Versuch von mir), dass das Zählen in Spalte B beendet werden soll, wenn die Zellen in Spalte A keinen Inhalt mehr haben

- tatsächlich wäre es für mich interessant, ein Macro zu haben, dass alle belegten Zellen der Spalte A ermittelt und eines, das die Zellen der Spalte A mit dem Inhalt 0 nicht mitzählt

Ich hoffe es ist zu aufwendig für euch.

Gruß
natal

Re: variable Zellenzahl ermitteln

Verfasst: Fr 18. Dez 2020, 21:48
von craig
Hallo natal,

teste dieses:
Meßdaten zählen mit Makro.ods
(10.64 KiB) 356-mal heruntergeladen
Weitere Infos in der Datei und im Makro.

Für weitere Makros empfehle ich Dir dieses Codeinspektions-Tool:
XRAY
Es handelt sich hierbei um ein deutschsprachiges Writer-Dokument,
einfach öffnen und auf den Button "Installieren" klicken.
Die beschriebene SDK, als auch die Einbindung der API ist nicht erforderlich. Einfach ignorieren.

eBooks:
https://www.uni-due.de/~abi070/count.ph ... eutsch.pdf
https://docs.oracle.com/cd/E19064-01/so ... 7-3924.pdf

http://www.starbasicfaq.de/index.html

API Dokumentation:
LibreOffice API
AOO API

Re: variable Zellenzahl ermitteln

Verfasst: Fr 18. Dez 2020, 22:31
von nitja
bsp 4 natal @ LO-F.ods
(16.49 KiB) 234-mal heruntergeladen
*oops* sehe gerade, dass craig auch schon ein Beispiel rein gestellt hat.
Nimm halt das, was Dir besser gefällt oder das, was auch bei zig-tausend Zeilen immer noch schnell läuft.

Re: variable Zellenzahl ermitteln

Verfasst: Sa 19. Dez 2020, 17:02
von Wanderer
natal hat geschrieben:
Do 17. Dez 2020, 15:45
...
, dass auch bei Meßdurchgängen bei denen nur 5000 Einzemessungen erforderlich sind, trotzdem 45000 Zellen der Spalte B belegt werden.
Ein unnötig großer Speicherverbrauch.
Besser ist es ein Makro zu erstellen, dass die Formel =wenn(A3=““;““;B1+1) nur solange in die nächste Zelle der Spalte B kopiert, solange die Zellen der Spalte A einen Inhalt besitzen.
Wenn Speicherplatz eine Rolle spielt, warum willst Du den Inhalt von =Zeile(A3) überhaupt speichern, denn mehr als eine Zeilennummer erzeugst Du ja nicht?
(Dabei bin ich davon ausgegangen, dass eigentlich B2+1 gemeint war)

Mfg, Jörn

Re: variable Zellenzahl ermitteln

Verfasst: Mo 21. Dez 2020, 10:26
von natal
Hallo, Danke für Eure Antworten.
Dass ich mich bisher nicht gemeldet habe, liegt daran, dass ich mit Euren Makrolösungsvorschlägen bei meinen Vorkenntnissen nicht weis, wie ich sie benützen sollte.
Erwartet hatte ich mir eine Formel, die ich in eine Zelle eingeben kann.
Aber das habe ich mir offentsichtlich zu einfach vorgestellt.
Entweder ich muß die Lösung meiner Frage so lange vertagen, bis ich mir die notwendigen Kenntnisse angeeignet habe, oder Ihr könnt mir auf einfache Art klar machen wie ich weiter vorgehen sollte.

@ wanderer
da hast Du natürlich recht.
Aber mir geht es, außer Speicherplatzschonung, darum zu verstehen, wie man mit einem Makro ein Programm starten kann, dass sich selbstständig, bei erreichen einer bestimmten Voraussetzung, beendet.

Gruß
natal

Re: variable Zellenzahl ermitteln

Verfasst: Mo 21. Dez 2020, 11:34
von mikele
Hallo,
Erwartet hatte ich mir eine Formel, die ich in eine Zelle eingeben kann.
Aber das habe ich mir offentsichtlich zu einfach vorgestellt.
Erwartest hast du ein Makro.
Meinst du so etwa so etwas einfaches:

Code: Alles auswählen

=ZÄHLENWENN(A1:A100000;">0")
Aber diese Antwort hast du ja gleich als Erstes bekommen ...