Leere Zellen automatisiert löschen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

andymo
*
Beiträge: 10
Registriert: Sa, 04.03.2006 15:16

Leere Zellen automatisiert löschen

Beitrag von andymo »

Hallo Forum,

ich arbeite gerade an einem etwas größeren Projekt mit Calc unter Linux (openSuSE). Hierbei werden relativ viele Einzeldaten in verschiedenen Spalten gelistet. Es kommt hierbei zwangsläufig immer wieder zu leeren Zellen, die ich absichtlich bei Nullwerten mit "" fülle, da sie später statistisch aufgearbeitet werden müssen und Nullen dabei ganz besonders störend sind :D Allerdings stören leider auch die leeren Zellen.
Ich habe daher die interessanten Werte auf ein extra Blatt übertragen, aber leider habe ich weder in der Dokumentation, in Foren oder auch Internet bisher irgendeine Funktion/Makro gefunden, das die leeren Zellen automatisch rausfiltert und die Daten nach oben schiebt, wie beim normalen Löschen der Zellen. Musste bisher alles per Hand machen :cry:
...und das ist echt ekelhaft!
Leider bin ich auch bei Basic-Programmierung absolut talentfrei. Damit ging's wahrscheinlich relativ leicht.
Für einen Tipp oder Link wäre ich wahnsinnig dankbar.
Vielleicht erbarmt sich einer? Wäre super nett.
Gruß
Andreas
andymo
*
Beiträge: 10
Registriert: Sa, 04.03.2006 15:16

Beitrag von andymo »

Nachtrag:
Habe gerade unter
http://www.ooo-portal.de/index.php?modu ... topic=2500
eine ähnliche Fragestellung entdeckt.
Bei mir geht's aber darum, dass die meisten Zellen schon "formelmäßig" stark vorbelastet sind, also häufig keine "Rohtexte", sondern bereits berechnete Werte stehen.
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo andymo

Die Lösung, die Bernd in dem von dir genannten Thread anbietet, sollte eigentlich auch auf deine Problemstellung mit "Formel-gefüllten" Zellen anwendbar sein.

Gruß
Karo
andymo
*
Beiträge: 10
Registriert: Sa, 04.03.2006 15:16

Beitrag von andymo »

Karolus hat geschrieben:
Die Lösung, die Bernd in dem von dir genannten Thread anbietet, sollte eigentlich auch auf deine Problemstellung mit "Formel-gefüllten" Zellen anwendbar sein.
Eigentlich nicht wirklich.
Deshalb hatte ich noch 'mal den Nachtrag angefügt, da sich die meisten Zellen eben aus bereits vorbereiteten Formeln "generieren" (somit leider auch die leeren Zellen, da diese letztlich nur Ergebnis einer "leeren" Berechnung sind). Insofern ist es natürlich schlecht möglich ?!? da noch so eine "WENN"-Zeile hineinzupacken. Zumindest fällt mir nicht ein wie ich das bewerkstelligen sollte. Ich glaube auch, dass das Bernd damit gemeint hat, als er fragte, ob die Werte per Hand eingetragen werden oder auf andere Weise entstehen. Aber gerade fällt mir auf, dass man diese Daten evtl. auf einer 3. Seite in dieser Weise berechnen könnte. Ich werde das mal versuchen und berichten. Bis dahin schon mal vielen Dank für die Mühe.
Gruß Andreas
andymo
*
Beiträge: 10
Registriert: Sa, 04.03.2006 15:16

Beitrag von andymo »

Aaaalsoo,
das haut so gar nicht hin. Beim Ausprobieren habe ich folgendes bemerkt:

1.) ich habe eine ganze Menge an unterschiedlichen Spaltenpaaren, deren einzelne Spalten voneinander unabhängig sind. Es können also zwar ganze Zeilen leer sein (= 3. Zustand, der nicht weiter interessiert), meist aber nur einzelne Zellen. Dennoch stehen nie in zwei Spalten nebeneinander Daten, da diese jeweils zu einem Grundzustand gehören, der in unterschiedlichen Formen auftritt (daher die zwei Spalten), wobei beide Formen nie gemeinsam auftreten.

2.) ...aber selbst wenn man neue Tabellen anlegt mit je zwei Spalten haut dieses oben genannte Beispiel nicht hin. Ich habe versucht es in der ersten Spalte A (Zeilennummern) folgendermaßen umzuformen [-> =WENN(WENN(B3="";"";ANZAHL2($B$3:B3))="";WENN(C3="";"";ANZAHL2($C$3:C3));ANZAHL2($B$3:B3))] und es werden dann auch Zeilennummern für die belegten Zeilen angezeigt, aber die Zusammenfassung oder was auch immer mit SVERWEIS klappt nicht. Es werden lediglich die vorne liegenden Spalten eins-zu-eins kopiert. Eine Eliminierung leerer Zellen findet leider nicht statt.

Ich muss mich auch entschuldigen. Ich habe selbst erst beim Ausprobieren bemerkt, dass ich eine Menge wichtiger Informationen "unterschlagen" habe. Leider war mir das gar nicht aufgefallen, da man fehlende Informationen zum Teil erst an der Art der Lösung bzw. Nicht-Lösung sieht.
Nochmals vielen Dank an alle, die sich den Kopf darüber mitzerbrechen bzw. es schon haben :lol:
Andreas
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo Andyno

Um leere Formelzellen nicht mit zuzählen ist ANZAHL anstatt ANZAHL2 anzuwenden, ich weiss aber nicht ob dir das jetzt bei dieser Problemstellung weiterhilft.

Gruß
Karo
andymo
*
Beiträge: 10
Registriert: Sa, 04.03.2006 15:16

Beitrag von andymo »

Karolus hat geschrieben: Um leere Formelzellen nicht mit zuzählen ist ANZAHL anstatt ANZAHL2 anzuwenden, ich weiss aber nicht ob dir das jetzt bei dieser Problemstellung weiterhilft.
In meinem Fall funktioniert beides. ANZAHL2 zählt ja alle Werte einer Zelle, während ANZAHL auf numerische Werte beschränkt ist. Da es sich bei mir um Zahlen handelt wäre demnach tatsächlich auch ANZAHL möglich.
Aber wie Du schon gesagt hast es löst das Problem nicht.
Da ja auch die bedingte Formatierung keinen Befehl wie CTRL+DEL (=Zelle löschen) zur Verfügung stellt ist dieses Problem wahrscheinlich eher was für die "BASIC-Fraktion" so im Sinne von "If Zelle ISTLEER then CTRL+DEL". Kann ich aber leider mangels Kenntnisse nicht umsetzen.
Trotz allem vielen Dank noch mal.
Andreas
yeti
*****
Beiträge: 324
Registriert: Mi, 20.10.2004 12:11
Wohnort: Emmendingen

Beitrag von yeti »

Kannst Du mal irgendein Beispiel posten? Mir kommt es so vor also ob das alles viell einfacher ist als gedacht.

Hast Du in einer Tabelle mehrere Spalten und willst die in einer anderen Tabelle zusammenfassen?

Gruß Yeti
andymo
*
Beiträge: 10
Registriert: Sa, 04.03.2006 15:16

Beitrag von andymo »

yeti hat geschrieben:Kannst Du mal irgendein Beispiel posten? Mir kommt es so vor also ob das alles viell einfacher ist als gedacht.

Hast Du in einer Tabelle mehrere Spalten und willst die in einer anderen Tabelle zusammenfassen?

Gruß Yeti
Sehr gute Idee!
Zum Beispiel:
A___B___C___D
17...........26
.......5..............31
......11.............33

.5.............29
16............30

Gewünscht wäre als Endergebniss:

A___B___C___D
17....5.....26.....31
.5....11....29.....33
16...........30

Bitte nicht durch die Punkte und Unterstriche verwirren lassen, mir ist nichts besseres zur verhältnismäßig korrekten Darstellung eingefallen.
Also es gibt teilweise leere Zeilen, aber auch 'ne Menge leere Zellen. Es soll letztlich alles zusammen gefasst werden, da die leeren Argumente bei der Weiterverarbeitung stören.
Vielleicht ist es wirklich total einfach und ich sehe den Wald vor lauter Bäumen nicht, aber ich komm' irgendwie nicht drauf wie es hinhauen könnte.
Gruß Andreas
berndkli
*****
Beiträge: 289
Registriert: Di, 12.04.2005 22:05

Beitrag von berndkli »

Hallo Andreas

Ich weiss nicht wie viele Spalten Deine Tabelle hat, aber für meinen Lösungsvorschlag ohne Basic
brauchst Du für jede Deiner Datenspalten eine Hilfsspalte, sowohl in der, ich nenn's mal Grundtabelle mit den Lücken, als auch in der Zieltabelle.

Also in der Grundtabelle schreibst Du in A1:

Code: Alles auswählen

=WENN(ODER(B1="";B1=0);"";ANZAHL(B$1:B1)) 
und ziehst sie runter (die "ODER" Funktion fängt sowohl von Dir eingegebene "" , sowie Nullwerte aus Rechenopoerationen der Formeln ab). In Spalte B stehen dann deine Formeln bzw. Werte. Die Formel aus A1 kannst Du problemlos in C1 kopieren und runterziehen (auf die $ achten) und in Spalte D Deine nächste Datenreihe eingeben usw.

Wenn Deine Zieltabelle z.B. Tabellenblatt 2 ist erzeugst Du dort in Spalte A, C, E usw. jeweils eine fortlaufende Zahlenreihe beginnend mit 1.
In B1 schreibst Du

Code: Alles auswählen

=WENN(ISTFEHLER(SVERWEIS(A1;Tabelle1.A$1:B10;2;0));"";SVERWEIS(A1;Tabelle1.A$1:B10;2;0)) 
Die Zahl hinter B gibt die maximale Anzahl der leeren Zeilen an, die überbrückt werden, Du kannst auch B50 oder B100 schreiben.
Diese Formel kopierst Du jetzt in D1,F1 usw.(wieder auf's $ achten) und ziehst sie runter.

Jetzt kannst Du alle Hilfsspalten ausblenden und dann sollte das von Dir gewünschte Ergebnis vorliegen.

Gruss Bernd
andymo
*
Beiträge: 10
Registriert: Sa, 04.03.2006 15:16

Beitrag von andymo »

Hallo Bernd,

vielen Dank. Das klingt sehr vielversprechend. Ich werde es die Woche ausprobieren und weiter berichten. Könnte mir vorstellen, dass das Thema insbesondere für Leute interessant ist, die mit Statistiken zu tun haben. Ich muss zugeben, dass ich die Funktion SVERWEIS noch nie ausprobiert habe. Also dann mal los.
Gruß Andreas
andymo
*
Beiträge: 10
Registriert: Sa, 04.03.2006 15:16

Beitrag von andymo »

Hallo Bernd,

mich hat's jetzt doch in den Fingern gekribbelt und ich kann nur sagen: RESPEKT und Hut ab.
Es hat alles super funktioniert = Problem gelöst.
Ich habe kleinere Modifikationen verwendet. Die Spalte A (mit der herunterlaufenden Nummerierung) dient bei mir jetzt als quasi Gesamtindex, da hierauf von jeder zu berechnenden Spalte als Referenz zugegriffen werden kann, so dass in den Spalten B, C, ... die bereinigten Spalten folgen. Ich habe daher alles auf einem Tabellenblatt gelassen, den "Berechnungskram" weiter nach hinten gelegt, wo er nicht stört (ab Z und dahinter), so dass die SVERWEIS-Formel in Spalte B sich bei mir so darstellt:

Code: Alles auswählen

=WENN(ISTFEHLER(SVERWEIS(A3;Z$3:AA100;2;0));"";SVERWEIS(A3;Z$3:AA100;2;0))
in AA steht also die Spalte durchmischt mit leeren Zellen, in Z die mit:

Code: Alles auswählen

=WENN(AA3="";"";ANZAHL(AA$3:AA3))
berechneten Werte (ich brauche auch "0"-Werte ) :)

Nochmal vielen Dank an alle für die Hilfe und ganz großes Lob :mrgreen:

Andreas
Antworten