LO-Calc: Wie kriege ich die Adresse der ersten leeren Zeile?

Hallo,

In einer Tabelle benutze ich:
=VERGLEICH("";Tests.A1:A20000;)-1
um die Anzahl der 'befüllten' Tab.-Zeilen zu erhalten
Allerdings sind in dieser Tabelle Test alle 20'000 Zeilen mit einer Formel versehen, die entweder eine Zahl oder "" in die Zelle schreibt.
Das Ergebnis ist also die letzte Zeile mit einer Zahl.

Wie funzt das aber bei leeren Zellen?
Das jedenfalls klappt alles nicht:
=VERGLEICH(IstLeer(..);Tests.A1:A20000;)-1
=VERGLEICH("";Tests.A1:A20000;)-1
=VERGLEICH('';Tests.A1:A20000;)-1
=VERGLEICH("0";Tests.A1:A20000;)-1
=VERGLEICH('0';Tests.A1:A20000;)-1
=VERGLEICH(NULL;Tests.A1:A20000;)-1

Hat jemand eine Idee?
Danke schon mal und einen schönen Feiertag,
Gooly

Warum umständlich über VERGLEICH? Ich würde das einfach mit

=ANZAHL(Tests.A1:A20000)

machen. Und warum das "-1" hinten nach? Wenn Du eine Überschrift o. ä.
in A1 stehen hasst, dann fang doch einfach erst bei A2 an.

Aber wenn Du unbedingt auf VERGLEICH Bestehst, dann mussst Du bei
einer *unsortierten* Liste (und das ist sie in Deinem Fall, denn ein
Leerstgring ist auf alle Fälle kleiner als jeglicher sonstige Wert,
der in einer Zelle stehen könnte) auch unbedingt den Parameter <Typ>
angeben, und zwar mit dem korrekten Wert 0. /Ohne/ Angabe wird der
Wert 1 aka eine sortierte Liste angenommen, und das auf eine
unsorierte Liste los gelassen liefert halt manchmal[tm] unerwartete
Ergebnisse. Nur wenn die Suchengine weiß, daß sie es mit einer
unsortierten Liste zu tun hat, sucht sie auch nach *genau* dem
angegebenen Wert, und nicht nach 'größer oder gleich'.

Wolfgang

Danke, das geht zwar ist aber nicht ganz ideal.

Ich will die Zeilennummern der letzten gültigen Zeile für Range-Berechnungen über Indirekt (deswegen die -1)
Und bei der Anzahl muss ich immer korrigieren (oder ein zweiten 'Kopftest' machen), wenn ich oben in der Tabelle, wo meine Auswertung ist, neue Zeilen einfügen will.

Ich hatte gehofft, ich könnte das direkt machen.
Schöne Ostern,
Gooly

Hallo Gooly

ich hatte das Problem auch schon mal und hab es mit einfachen Formeln
nicht lösen können, sondern ein kleines StarBasic Makro geschrieben. Du
kannst das ggf. einfach mit dem Makrorecorder machen. Makrorecorder
einschalten und dann mit Strg+Ende und Strg+Pfeil nach oben auf die
letzte belegte Zeile springen. Dann kannst Du Dir die Koordinaten
beschaffen. Leider habe ich das Makro nicht mehr, sonst hätte ich es
hier herein kopiert.

Viel Erfolg und frohe Ostern

Ulrich

Danke für den Hinweis!
Ist aber schon wirklich doof!!
Es ist ja auch wirklich schwierig an das Nichts zu denken und dem Nichts ein Etwas zu verleihen.
Gooly

Danke, das geht zwar ist aber nicht ganz ideal.

Ich will die Zeilennummern der letzten gültigen Zeile für
Range-Berechnungen über Indirekt (deswegen die -1)

Das verstehe ich nicht. Vielleicht beschreibst Du mal ausführlicher, was
Dir da genau vorschwebt.

Und bei der Anzahl muss ich immer korrigieren (oder ein zweiten
'Kopftest' machen), wenn ich oben in der Tabelle, wo meine Auswertung
ist, neue Zeilen einfügen will.

Wenn Du *in* die Tabelle *zwischendrin* (also z. B. zwischen der ersten
und der zweiten Zeile) irgendwo Zeilen einfügst, wird die Formel
automatisch angepasst. Nur wenn Du die neue Zeilen *vor* oder *nach* dem
Bereich einfügst, wird dieser nicht angepasst.

Wolfgang

Es ist eine zeit-sortierte Liste, zu der von Zeit zu Zeit zw. 150 und 300 Zeilen dazu kommen und alles wieder nach der Zeit sortiert wird.
In der letzte Zeile steht also der Entwicklungsstand nach der Zeitspanne. Das jetzt immerhin fast 7000 Zeilen.
Die letzte Zeile ist also wichtig für weitere Berechnungen sei es für Max(..) oder einfach für =F7000.
Dafür will ich oben auf B1 die Nummer der letzten Zeilennummer haben (Adresse also keine Anzahl, obwohl man mit der Anzahl leben kann), um dann daraus zB. zu machen: Mittelwert(Indirekt("D20:D"&B1)).

WENN ich einen Wert hätte für das NICHTS einer leeren Zelle - tja dann wäre das kein Problem.
Aber selbst:
=VERGLEICH(C1;Tests.A1:A20000;)-1
(mit C1 = leere Zelle) funktioniert das nicht.

Wie ich schon sagte - dem Nichts ward kein Sein gegeben.
Gooly

Es ist eine zeit-sortierte Liste, zu der von Zeit zu Zeit zw. 150 und 300 Zeilen dazu kommen und alles wieder nach der Zeit sortiert wird.
In der letzte Zeile steht also der Entwicklungsstand nach der Zeitspanne. Das jetzt immerhin fast 7000 Zeilen.
Die letzte Zeile ist also wichtig für weitere Berechnungen sei es für Max(..) oder einfach für =F7000.
Dafür will ich oben auf B1 die Nummer der letzten Zeilennummer haben (Adresse also keine Anzahl, obwohl man mit der Anzahl leben kann), um dann daraus zB. zu machen: Mittelwert(Indirekt("D20:D"&B1)).

WENN ich einen Wert hätte für das NICHTS einer leeren Zelle - tja dann wäre das kein Problem.
Aber selbst:
=VERGLEICH(C1;Tests.A1:A20000;)-1
(mit C1 = leere Zelle) funktioniert das nicht.

Wie ich schon sagte - dem Nichts ein Etwas verleihen hat man wohl versäumt :frowning:
Gooly

Es ist eine zeit-sortierte Liste, zu der von Zeit zu Zeit zw. 150 und
300 Zeilen dazu kommen und alles wieder nach der Zeit sortiert wird.
In der letzte Zeile steht also der Entwicklungsstand nach der
Zeitspanne. Das jetzt immerhin fast 7000 Zeilen.
Die letzte Zeile ist also wichtig für weitere Berechnungen sei es für
Max(..) oder einfach für =F7000.
Dafür will ich oben auf B1 die Nummer der letzten Zeilennummer haben
(Adresse also keine Anzahl, obwohl man mit der Anzahl leben kann), um
dann daraus zB. zu machen: Mittelwert(Indirekt("D20:D"&B1)).

WENN ich einen Wert hätte für das NICHTS einer leeren Zelle - tja dann
wäre das kein Problem.
Aber selbst:
=VERGLEICH(C1;Tests.A1:A20000;)-1
(mit C1 = leere Zelle) funktioniert das nicht.

Nein; sondern weil *Du* Dich einfach hartnäckig *weigerst*, die
*richtigen* Parameter zu verwenden.

Ich hatte Dich bereits in meinem ersten Posting darauf hin gewiesen und
ausführlich erklärt, daß bzw. warum und womit Du in Deinem Fall bei
Verwendung von VERGLEICH den Parameter <Typ> belegen musst.

Wobei ich nach wie vor nicht verstehe, was genau das Problem bei

=ANZAHL(Tests.A1:A20000)

sein soll, bzw. warum Du erwartest, daß das selbe Problem nicht auch bei
VERGLEICH auftreten würde.

Wie ich schon sagte - dem Nichts ein Etwas verleihen hat man wohl
versäumt :frowning:

Du verlangst von *anderen* die Qadratur des Kreises zu realisieren
anstatt Deine *eigenen* Fehler zu korrigieren, oder nach sinnvolleren
Alternativen zu suchen (bzw. Du musst nicht mal danach suchen, sie
werden Dir sogar angeboten). Sorry und tschüss.

Wolfgang

ups - hatte die users - adresse vergessen;
gestoen bin ich auf goolys frage, weil ich mit der ZEILE - Funktion Probleme habe -s.u.- weida jemand was zu?
Hi,

mit B1 ={MAX((ZEILE(A1:A200000)*(A1:A20000)))}
also als Matrixformel abgeschlossen ergibt die Zeilenummer der letzten gefllten Zelle,leere Werte zwischendurch sind hierbei unerheblich- hilft das?

Achtung:Die ZEILE - Funktion scheint in LO 4.2x NICHT tabellenbergreifend zu funktionieren!

mg
f

Bitte prfen Sie, ob diese Mail wirklich ausgedruckt werden mussceterum censeofines erosionibus constitutionisfines operarum imperiorumaxel fingerhut, am brckenbach 3, D-38304 wolfenbttele-mail faxel.int@gmx.net