oo 3.3.0 Calc, Funktion typ() gibt bei Leerzellen Err.502

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

doit1910
Beiträge: 2
Registriert: Sa, 12.05.2012 13:07

oo 3.3.0 Calc, Funktion typ() gibt bei Leerzellen Err.502

Beitrag von doit1910 »

Hallo,

ich versuche eine beliebige unformatierte Texttabelle mit Hilfe von Calc zu formatieren. Es kommt dabei nicht besonders auf Schönheit an. Mein Ziel liegt darin schnell und einfach Stückzahlen und Bezeichnungen zu erfassen und zu berechnen. Da die Ausgangstabelle immer in Textform in jedweder möglichen Formatierung vorliegt ist das nicht ganz einfach.

Meine Formel verwendet daher z. B. zur Erfassung der Stückzahl eine Unterscheidung nach typ(). Das Argument ist jedoch auch eine mit indirekt() zusammengesetzte Formel. Die funktioniert auch sehr gut, so lange die betreffende Zelle einen Inhalt (Text oder Zahl) hat. Sobald eine Leerzelle angetroffen wird der Fehler Err.502 ausgegeben.

Bei der Nachverfolgung des Problems lässt sich die Zelle mit der zusammengesetzten Formel =INDIREKT(VERKETTEN("A";$I$4+(ZEILE()-4)*2)) ganz normal auslesen.
Will man jetzt den Typ feststellen: =TYP(INDIREKT(VERKETTEN("A";$I$4+(ZEILE()-4)*2))) so wird der Fehler Err.502 ausgegeben.

Jetzt wird es erst richtig interessant, ruft man die gleiche Zelle mit direkt eingesetztem Argument z. B. =TYP(A42) auf so wird als Ergebnis "1" also Zahl ausgegeben. ... Und oh Wunder die Zellen, die vorher einen Fehler anzeigten geben nun auch das erwartete Ergebnis aus.

Zum besseren Verständnis habe ich eine Beispieldatei angehängt. - Meine Frage nun, ist das ein echter Bug oder kann ich das irgendwie umgehen? Am Ende der einfach formatierten Ergebnistabelle möchte ich nach Möglichkeit nur leere Felder haben und nicht diese Fehlermeldungen um auch weiter mit den Zahlen rechnen zu können.

Ist dieser Fehler ggf. in der neuen Version schon behoben?

Vielen Dank!

doit1910
Dateianhänge
TXT-Tabelle_formatieren.ods
(11.82 KiB) 36-mal heruntergeladen
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: oo 3.3.0 Calc, Funktion typ() gibt bei Leerzellen Err.50

Beitrag von Karolus »

Hallo
Ich würde folgendes machen:
  • 1) alle x in Spalte A löschen (→Bearbeiten→suchen und ersetzen...)
    2) in Spalte H per Formel alles von Spalte B bis G verketten
    3) Spalte H kopieren und an gleicher Stelle →Inhalte einfügen ohne [ ]alles und ohne [ ]Formeln
    4) Spalte B bis G löschen
    5) Die Leeren Zeilen per →Daten→Filter... rausflitern.
Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: oo 3.3.0 Calc, Funktion typ() gibt bei Leerzellen Err.50

Beitrag von Karolus »

WiM hat geschrieben:ich habe folgende Formel in J4 geschrieben und bis J44 'heruntergezogen':

Code: Alles auswählen

WENN(ISTLEER(INDIREKT(VERKETTEN("a";$I$4+(ZEILE()-4)*2)));"";
WERT(LINKS(INDIREKT(VERKETTEN("a";$I$4+(ZEILE()-4)*2)) ; 
LÄNGE(INDIREKT(VERKETTEN("a";$I$4+(ZEILE()-4)*2)))-1)))
Es wurden keine Fehlermeldungen ausgegeben, jedoch kommt eine Fehlermeldung, wenn Du in Spalte A
nur eine Zahl eingibst. Sollte dies vorkommen, dann mußt Du dies noch in der Formel irgendwie abfangen.
Gruß Wim
Krampf !

Code: Alles auswählen

=N(WECHSELN(VERSCHIEBUNG($A$1;ZEILE(A1)*2+5;0);"x";"")*1)
Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
doit1910
Beiträge: 2
Registriert: Sa, 12.05.2012 13:07

Re: oo 3.3.0 Calc, Funktion typ() gibt bei Leerzellen Err.50

Beitrag von doit1910 »

Hallo nochmal,

die Lösung ist gefunden:

Code: Alles auswählen

=N(WECHSELN(INDIREKT(VERKETTEN("A";$I$4+(ZEILE()-4)*I$6));I$8;" ")*1)
Kann Zeichenketten, Zahlen und Leerzellen verarbeiten.

Die Funktion verschiebung() ist ganz interessant, da ich die Verschiebung bereits berücksichtigt hatte habe ich sie nicht verwendet.
Besonders interessant finde ich die Wirkung des letzten "*1" in Zusammenhang mit N(). Ohne den Vorschlag von Karolus hätte ich das nicht gefunden!

Das seltsame Verhalten von typ() ist damit zwar nicht geklärt bleibt aber wohl z. Zt. weiter im dunkeln.

Nochmals vielen Dank!

Gruß

doit1910
Antworten