[gelöst] ZellAdressierungs Problem

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

[gelöst] ZellAdressierungs Problem

Beitrag von clag »

Hallo zusammen,

ich habe hier eine Tabelle in der es nun schon zum wiederholten Mal zu Adressierungs_Problemen kommt.

das heißt in einer Formel steht zB "=G949+blabla " es wird aber der Wert aus F949 verwendet
das ist eine ganz üble Sache und treibt mir echt Sorgenfalten in Gesicht,
denn wenn es nicht zufällig eine Formel wäre die mit dem Wert aus F949 nicht anfangen kannn und daher meckert würde man es nicht bemerken und die ganze Tabelle ist für die Tonne
Wenn ich aus einer anderen Zelle mit einer anderen Formel auf die Zelle G949 zugreife liefert sie das richtige Ergebnis?

im Screeshoot ist recht deutlich zu sehen das Ergebnis ist falsch und bezieht sich doppelt auf F949 :shock:
die Zeile darüber und darunter liefern korrekte Ergebnisse und die Formeln wurden durch ziehen generiert,
erneutes ziehen Zeilen löschen und erneutes ziehen hat nichts gebracht der Fehler taucht erneut auf.
addressproblem.png
addressproblem.png (31.85 KiB) 835 mal betrachtet
Hat jemand hier schon ähnliches beobachtet?
Ich bin echt in Sorge was die Zuverlässigkeit von Calc angeht!
Zuletzt geändert von clag am Do, 24.04.2014 19:54, insgesamt 1-mal geändert.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7531
Registriert: Mo, 02.01.2006 19:48

Re: ZellAdressierungs Problem

Beitrag von Karolus »

Hallo
Mir fällt auf das du dividierst durch den Kehrwert der Zahl 864000.
Wieso multiplizierst du nicht mit 864000

Ansonsten ist Screenshot völlig ungeeignet das Problem nachzuvollziehen.

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: ZellAdressierungs Problem

Beitrag von TrueColor »

Hab mal was zum testen zusammengebaut, weil ich deine Funktion nicht habe. Das funktioniert ohne Probleme. Möglicherweise ein Problem innerhalb der Funktion?
Dateianhänge
Test.ods
(25.69 KiB) 25-mal heruntergeladen
System:
LibO 6 + LibO 7
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: ZellAdressierungs Problem

Beitrag von clag »

Hallo TrueColor, und Karolus
Karolus hat geschrieben:Ansonsten ist Screenshot völlig ungeeignet das Problem nachzuvollziehen.
damit hast du natürlich vollkommen Recht der sc ist auch als Beleg gedacht das ich mir das nicht nur ausgedacht habe ;)
und ob eben schon jemand anderes so ein Verhalten in CALC beobachtet hat
Karolus hat geschrieben:Wieso multiplizierst du nicht mit 864000
das multiplizieren funktioniert aus mir bisher unbekannten Gründen in dieser Formel nicht
obwohl es ja die schlankere Variante wäre

PS
ich werde gleich mal versuchen ob ich die Datei soweit zusammenschrupfen kann für einen upload geeignet
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: ZellAdressierungs Problem

Beitrag von clag »

Hallo zusammen,

hier ist der Übeltäter
und die verwendete Funktion
test_fehler.ods
(40.78 KiB) 32-mal heruntergeladen

Code: Alles auswählen

FUNCTION DEZ2ID36(mValue As variant)

Dim Liste as Variant
minputvalue=mValue
Liste = Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z")
exp6=60466176
exp5=1679616
exp4=46656
exp3=1296
exp2=36
exp1=0
mydigit06=fix(minputvalue/exp6)
myrest06=minputvalue-exp6*mydigit06
x6=Liste(mydigit06)
mydigit05=fix(myrest06/exp5)
myrest05=myrest06-exp5*mydigit05
x5=Liste(mydigit05)
mydigit04=fix(myrest05/exp4)
myrest04=myrest05-exp4*mydigit04
x4=Liste(mydigit04)
mydigit03=fix(myrest04/exp3)
myrest03=myrest04-exp3*mydigit03
x3=Liste(mydigit03)
mydigit02=fix(myrest03/exp2)
myrest02=myrest03-exp2*mydigit02
x2=Liste(mydigit02)
mydigit01=myrest02 
x1=Liste(mydigit01)
DEZ2ID36=x6 & x5 & x4 & x3 & x2 & x1

End FUNCTION
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: ZellAdressierungs Problem

Beitrag von TrueColor »

Hallo clag,

hab das Macro an die Datei gebunden.

Fehler in LibO und AOO:

in Zeile minputvalue=mValue --> BASIC-Laufzeitfehler. Argument ist nicht optional.
in Zeile x1=Liste(mydigit01) --> Unzulässiger Wert oder Datentyp. Index außerhalb des definierten Bereichs.

Nachdem ich bissel mit den Werten rumgetestet hab, tritt der Fehler in Zeile x1=Liste(mydigit01) nur bei 14:23:42 auf! Hier läuft wohl irgendwie dein Wertebereich über, bei 1s mehr oder weniger gibt es kein Problem.
System:
LibO 6 + LibO 7
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: ZellAdressierungs Problem

Beitrag von clag »

Hi TrueColor,

ok Danke für den Gegencheck

also ist es zumindest nicht mein Rechner oder der User vor meinem Rechner :)

aber was ist
1. an dem Zeitwert so ungewöhnlich
und
2. wieso erscheint ein Ergebnis das aussieht wie die doppelte Ausgabe der Berechnung aus dem ersten Teil der Formel?

merkwürdig!
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7531
Registriert: Mo, 02.01.2006 19:48

Re: ZellAdressierungs Problem

Beitrag von Karolus »

Hallo
Auf pythonisch:

Code: Alles auswählen

import string
base36 = string.digits + string.ascii_uppercase

def dezto36( x ):
    liste = []
    while x:
        x, rest = divmod(x, 36)
        liste.append(base36[rest])
    return ''.join(reversed(liste)) 
Da läuft dir nichts über

Musst du nur noch zb. hier einbauen

Karolus

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: ZellAdressierungs Problem

Beitrag von TrueColor »

FUNCTION DEZ2ID36
Warum baust du dir die Funktion eigentlich selber neu, statt die Funktion BASIS zu verwenden?
LibO-Hilfe hat geschrieben:BASIS

Wandelt eine positive Ganzzahl in einen Text aus dem Zahlensystem zur angegebenen Basis. Dabei werden die Ziffern 0-9 und die Buchstaben A-Z verwendet.
Syntax

BASIS(Zahl; Zahlenbasis; [Mindestlänge])

Zahl ist die positive Ganzzahl, die umgewandelt werden soll.
Zahlenbasis zeigt die Basis des Zahlensystems an. Es kann sich dabei um eine positive Ganzzahl zwischen 2 und 36 handeln.
Mindestlänge (optional) bestimmt die Mindestlänge der erstellten Zeichenfolge. Wenn der Text kürzer als die angegebene Mindestlänge ist, werden links neben der Zeichenfolge Nullen hinzugefügt.
System:
LibO 6 + LibO 7
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: ZellAdressierungs Problem

Beitrag von TrueColor »

clag hat geschrieben:aber was ist
1. an dem Zeitwert so ungewöhnlich
42!

*SCNR*
System:
LibO 6 + LibO 7
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: ZellAdressierungs Problem

Beitrag von clag »

TrueColor hat geschrieben:42!

*SCNR*
den verstehe ich jetzt nicht :-?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: ZellAdressierungs Problem

Beitrag von clag »

Also eure Vorschläge muss ich jetzt natürlich erst einmal abarbeiten

sowohl die "pythonisch" als auch "Basis" LösungsVariante
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: ZellAdressierungs Problem

Beitrag von TrueColor »

clag hat geschrieben:
TrueColor hat geschrieben:42!

*SCNR*
den verstehe ich jetzt nicht :-?
http://de.wikipedia.org/wiki/42_(Antwort)
System:
LibO 6 + LibO 7
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: ZellAdressierungs Problem

Beitrag von clag »

@ TC
ah ok

also ein Ereignis das in der 42 begründet ist hmmm so so so interessant :lol:

aber mal ernsthaft habt ihr jetzt einen Fehler entdeckt?
kann doch nicht sein das eine Formel 1000 mal richtig funktioniert und einmal nicht
das passt nicht zusammen
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
TrueColor
******
Beiträge: 547
Registriert: Do, 11.03.2010 11:23

Re: ZellAdressierungs Problem

Beitrag von TrueColor »

So, 1 Fehler hab ich gefunden:

Die Zeitwerte für DEZ2ID36 und BASIS 36 sind unterschiedlich. Das kommt daher, dass der Tag nur 86.400 und nicht 864.000 Sekunden hat. (korrigiert in Zeile 995)

Wo ich noch nicht dahinter gestiegen bin:

Die Genauigkeit von BASIS 36 ist um eine Potenz höher als von DEZ2ID36.

Das Macro meckert immer noch.
Dateianhänge
test_fehler_20140415_2.ods
(90.66 KiB) 26-mal heruntergeladen
System:
LibO 6 + LibO 7
Antworten