Seite 1 von 2
[gelöst] ZellAdressierungs Problem
Verfasst: Di, 15.04.2014 07:22
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
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 (31.85 KiB) 841 mal betrachtet
Hat jemand hier schon ähnliches beobachtet?
Ich bin echt in Sorge was die Zuverlässigkeit von Calc angeht!
Re: ZellAdressierungs Problem
Verfasst: Di, 15.04.2014 07:48
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
Re: ZellAdressierungs Problem
Verfasst: Di, 15.04.2014 07:56
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?
Re: ZellAdressierungs Problem
Verfasst: Di, 15.04.2014 08:10
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
Re: ZellAdressierungs Problem
Verfasst: Di, 15.04.2014 08:30
von clag
Hallo zusammen,
hier ist der Übeltäter
und die verwendete Funktion
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
Re: ZellAdressierungs Problem
Verfasst: Di, 15.04.2014 10:49
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.
Re: ZellAdressierungs Problem
Verfasst: Di, 15.04.2014 11:02
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!
Re: ZellAdressierungs Problem
Verfasst: Di, 15.04.2014 11:03
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
Re: ZellAdressierungs Problem
Verfasst: Di, 15.04.2014 11:04
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.
Re: ZellAdressierungs Problem
Verfasst: Di, 15.04.2014 11:07
von TrueColor
clag hat geschrieben:aber was ist
1. an dem Zeitwert so ungewöhnlich
42!
*SCNR*
Re: ZellAdressierungs Problem
Verfasst: Di, 15.04.2014 11:11
von clag
TrueColor hat geschrieben:42!
*SCNR*
den verstehe ich jetzt nicht

Re: ZellAdressierungs Problem
Verfasst: Di, 15.04.2014 11:14
von clag
Also eure Vorschläge muss ich jetzt natürlich erst einmal abarbeiten
sowohl die "pythonisch" als auch "Basis" LösungsVariante
Re: ZellAdressierungs Problem
Verfasst: Di, 15.04.2014 11:14
von TrueColor
clag hat geschrieben:TrueColor hat geschrieben:42!
*SCNR*
den verstehe ich jetzt nicht

http://de.wikipedia.org/wiki/42_(Antwort)
Re: ZellAdressierungs Problem
Verfasst: Di, 15.04.2014 11:30
von clag
@ TC
ah ok
also ein Ereignis das in der 42 begründet ist hmmm so so so interessant
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
Re: ZellAdressierungs Problem
Verfasst: Di, 15.04.2014 12:35
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.