von penguin23 » Fr, 06.11.2009 01:29
OK, insofern war es vielleicht mein Fehler, nicht einen neuen Thread aufgemacht zu haben... Aber ich dachte es wäre klar geworden dass ich inzwischen von meinem ursprünglichen Ansatz zur Lösung meines Problems abgekommen war - nämlich durch eure Hinweise, dass es so, wie ich mir das vorstelle, eben nicht geht - und eine neue Idee hatte:
Mir ist inzwischen auch was eingefallen, wie ich's hinkriegen könnte, und zwar ist es ja nicht zwingend erforderlich, dass die Kundennummern fortlaufend sind, sie müssen nur eindeutig sein und dürfen sich eben durch sortierung o.ä. nicht ändern. Also wäre eine Überlegung, eine Zahl aus dem String des Kundennamen zu generieren, diese sollte so kurz wie möglich sein wegen der besseren handhabbarkeit, also es wäre zB keine Lösung, einfach die asciicodes der zeichen hintereinander zu hängen -> zu lang. Es muss aber der ganze String eingehen, ebenso wie die Reihenfolge der Zeichen, es darf also nicht 'esel' und 'lese' dieselbe Zahl ergeben... Das ist jetzt ein völlig neues Problem, für das es aber mit Sicherheit eine Lösung gibt, ist ja quasi ein klassisches Rechner- bzw. Mathematikerproblem - bloss weiss ich nicht, wie das Problem klassisch heisst, hättet ihr da einen Tip?
Also bitte ich um Entschuldigung für die Verwirrung, ich will wirklich nicht darauf bestehen, eine Formel nur ein einziges Mal zu berechnen und dann gleich durch das Ergebnis ihrer selbst zu ersetzen, es geht mir nur darum eine Kundennummer zu haben, die eindeutig und so kurz wie möglich ist und auf eine Weise berechnet wird, die auch eine Sortierung erlaubt, was doch glaube ich mit dem grad zitierten Ansatz der Theorie nach der Fall wäre.
Stephan, ich muss allerdings sagen dass ich Deinen Ton ziemlich ätzend finde, ich bin schon intelligent genug um zu wissen was man in einer Buchhaltung machen kann und was nicht, schliesslich ist genau dieses Problem überhaupt der Sinn des Threads hier, wie stelle ich sicher dass die Kundennummer eindeutig und unveränderlich ist. Du scheinst aber nicht besonders geübt darin zu sein, zuzuhören, sondern bellst gern gleich los...
DEin jetziges Beispiel unterscheidet sich nicht prizipiell vom Beispiel ganz am Anfang.
- das ist eben genau doch der Fall, das neue Beispiel unterscheidet sich fundamental, prinzipiell und ganz entschieden vom Beispiel ganz am Anfang. Falls Du noch gewillt bist würde ich Dich bitten den Thread nochmals zu überfliegen und vor allem mein obiges Zitat nochmal zu lesen.
Also nochmal, ich habe mich völlig von der fortlaufenden Nummer verabschiedet, mein jetziger Ansatz hat nichts mehr damit zu tun, dass ich automatisch eine Formel durch ihr Ergebnis ersetzen will. Nochmal das Beispiel:
Die Formel in Spalte A berechnet die Kundennummer aus Spalte B, das schon, ABER: Wenn ich diese Tabelle jetzt umsortiere wird das Ergebnis dieser Berechnung danach dasselbe sein wie vorher - darum, und nur darum, geht's mir doch.
Code: Alles auswählen
vor der Sortierung:
A B
1 98 b
2 97 a
3 99 c
nach der Sortierung:
A B
1 97 a
2 98 b
3 99 c
Alles bestens, Zuordnung bleibt gewahrt. Neue Problematik:
... Wenn ich einfach stumpf von jedem buchstaben den char-code nehme und die alle hintereinander hänge habe ich eine eindeutige Zahl. Jetzt geht's nur noch darum wie ich die kleinerrechnen kann ohne dass die Eindeutigkeit verloren geht.
das heisst also ich hätte sowas wie
Und ich überlege nun, wie ich aus 979899 eine kleinere (=kürzere) Zahl mache, die aber immer noch eindeutig dem String entspricht. Das ist vielleicht auch wieder nicht ganz trivial, das Alphabet ist ja im Prinzip ein Zahlensystem mit der Basis 26, und ich will also eine Zahl dieses Zahlensystems in ein System mit der Basis 10 umwandeln und das Ergebnis soll mit _weniger_ Zeichen auskommen... Das wäre eher das, was man an meiner neuen Idee kritisieren könnte. Irgendwie eine lexikalische Komponente einzubauen geht auch nicht, denn es geht ja um Firmennamen, da können ja tatsächlich alle möglichen Buchstabenkombinationen auftauchen, und sowas wäre ja schon gar nicht ohne scripting zu realisieren. Besser wäre dann wohl es so zu machen wie zB die Buchungsnummern der Bahn, also etwa sowas wie 23BM7Z3... dann könnte man noch überlegen, ob man wirklich den _kompletten_String in der Kundennummer abbilden muss oder ob zB jedes zweite Zeichen eine hinreichende Sicherheit bieten würde... und schliesslich, selbst wenn man diese Sicherheit noch weiter runterschraubt indem man zB nur die ersten und die letzten beiden Zeichen des Kundennamens heranzieht, dann könnte man mittels einer simplen Hilfsspalte und einer bedingten Formatierung eine einfache Warnung einbauen, falls eine Kundennummer doppelt vergeben wurde, und in diesem (wahrscheinlich seltenen) Spezialfall die Kundennummer eben von Hand eintragen...
Das ganze driftet aber nun langsam ins theoretische ab, würde mich trotzdem freuen wenn jemand noch Interesse an einem Austausch darüber hätte, denn Gespräche / Diskussionen erweitern bekanntlich den Horizont.

OK, insofern war es vielleicht mein Fehler, nicht einen neuen Thread aufgemacht zu haben... Aber ich dachte es wäre klar geworden dass ich inzwischen von meinem ursprünglichen Ansatz zur Lösung meines Problems abgekommen war - nämlich durch eure Hinweise, dass es so, wie ich mir das vorstelle, eben nicht geht - und eine neue Idee hatte:
[quote]Mir ist inzwischen auch was eingefallen, wie ich's hinkriegen könnte, und zwar ist es ja nicht zwingend erforderlich, dass die Kundennummern fortlaufend sind, sie müssen nur eindeutig sein und dürfen sich eben durch sortierung o.ä. nicht ändern. Also wäre eine Überlegung, eine Zahl aus dem String des Kundennamen zu generieren, diese sollte so kurz wie möglich sein wegen der besseren handhabbarkeit, also es wäre zB keine Lösung, einfach die asciicodes der zeichen hintereinander zu hängen -> zu lang. Es muss aber der ganze String eingehen, ebenso wie die Reihenfolge der Zeichen, es darf also nicht 'esel' und 'lese' dieselbe Zahl ergeben... Das ist jetzt ein völlig neues Problem, für das es aber mit Sicherheit eine Lösung gibt, ist ja quasi ein klassisches Rechner- bzw. Mathematikerproblem - bloss weiss ich nicht, wie das Problem klassisch heisst, hättet ihr da einen Tip?[/quote]
Also bitte ich um Entschuldigung für die Verwirrung, ich will wirklich nicht darauf bestehen, eine Formel nur ein einziges Mal zu berechnen und dann gleich durch das Ergebnis ihrer selbst zu ersetzen, es geht mir nur darum eine Kundennummer zu haben, die eindeutig und so kurz wie möglich ist und auf eine Weise berechnet wird, die auch eine Sortierung erlaubt, was doch glaube ich mit dem grad zitierten Ansatz der Theorie nach der Fall wäre.
Stephan, ich muss allerdings sagen dass ich Deinen Ton ziemlich ätzend finde, ich bin schon intelligent genug um zu wissen was man in einer Buchhaltung machen kann und was nicht, schliesslich ist genau dieses Problem überhaupt der Sinn des Threads hier, wie stelle ich sicher dass die Kundennummer eindeutig und unveränderlich ist. Du scheinst aber nicht besonders geübt darin zu sein, zuzuhören, sondern bellst gern gleich los...
[quote]DEin jetziges Beispiel unterscheidet sich nicht prizipiell vom Beispiel ganz am Anfang.[/quote]
- das ist eben genau doch der Fall, das neue Beispiel unterscheidet sich fundamental, prinzipiell und ganz entschieden vom Beispiel ganz am Anfang. Falls Du noch gewillt bist würde ich Dich bitten den Thread nochmals zu überfliegen und vor allem mein obiges Zitat nochmal zu lesen.
Also nochmal, ich habe mich völlig von der fortlaufenden Nummer verabschiedet, mein jetziger Ansatz hat nichts mehr damit zu tun, dass ich automatisch eine Formel durch ihr Ergebnis ersetzen will. Nochmal das Beispiel:
[code] A B
1 =code(b1) a
2 =code(b2) b
3 =code(b3) c
[/code]
Die Formel in Spalte A berechnet die Kundennummer aus Spalte B, das schon, ABER: Wenn ich diese Tabelle jetzt umsortiere wird das Ergebnis dieser Berechnung danach dasselbe sein wie vorher - darum, und nur darum, geht's mir doch.
[code]
vor der Sortierung:
A B
1 98 b
2 97 a
3 99 c
nach der Sortierung:
A B
1 97 a
2 98 b
3 99 c
[/code]
Alles bestens, Zuordnung bleibt gewahrt. Neue Problematik:
[quote]... Wenn ich einfach stumpf von jedem buchstaben den char-code nehme und die alle hintereinander hänge habe ich eine eindeutige Zahl. Jetzt geht's nur noch darum wie ich die kleinerrechnen kann ohne dass die Eindeutigkeit verloren geht.[/quote]
das heisst also ich hätte sowas wie
[code]
A B
1 979899 abc
2
[/code]
Und ich überlege nun, wie ich aus 979899 eine kleinere (=kürzere) Zahl mache, die aber immer noch eindeutig dem String entspricht. Das ist vielleicht auch wieder nicht ganz trivial, das Alphabet ist ja im Prinzip ein Zahlensystem mit der Basis 26, und ich will also eine Zahl dieses Zahlensystems in ein System mit der Basis 10 umwandeln und das Ergebnis soll mit _weniger_ Zeichen auskommen... Das wäre eher das, was man an meiner neuen Idee kritisieren könnte. Irgendwie eine lexikalische Komponente einzubauen geht auch nicht, denn es geht ja um Firmennamen, da können ja tatsächlich alle möglichen Buchstabenkombinationen auftauchen, und sowas wäre ja schon gar nicht ohne scripting zu realisieren. Besser wäre dann wohl es so zu machen wie zB die Buchungsnummern der Bahn, also etwa sowas wie 23BM7Z3... dann könnte man noch überlegen, ob man wirklich den _kompletten_String in der Kundennummer abbilden muss oder ob zB jedes zweite Zeichen eine hinreichende Sicherheit bieten würde... und schliesslich, selbst wenn man diese Sicherheit noch weiter runterschraubt indem man zB nur die ersten und die letzten beiden Zeichen des Kundennamens heranzieht, dann könnte man mittels einer simplen Hilfsspalte und einer bedingten Formatierung eine einfache Warnung einbauen, falls eine Kundennummer doppelt vergeben wurde, und in diesem (wahrscheinlich seltenen) Spezialfall die Kundennummer eben von Hand eintragen...
Das ganze driftet aber nun langsam ins theoretische ab, würde mich trotzdem freuen wenn jemand noch Interesse an einem Austausch darüber hätte, denn Gespräche / Diskussionen erweitern bekanntlich den Horizont. :)