Seite 1 von 3
Formel durch ihr Ergebnis ersetzen?
Verfasst: Di, 03.11.2009 14:09
von penguin23
Hallo,
wusste nicht so richtig wie ich mein Problem für's topic formulieren soll, ich vermute auch fast dass das, was ich bräuchte, gar nicht geht, aber man kann ja mal fragen...
Also, ich bin dabei mir eine kleine Buchhaltung / Kundendatenbank zu machen. Darin gibt es eine Spalte, die die Kundennamen enthält, und daneben eine, die aus den Namen Kundennummern erzeugt, und zwar werden immer die ersten drei Buchstaben genommen, dahinter kommt eine zweistellige Zahl, die jeweils für gleiche drei Buchstaben hochgezählt wird. Also zB sieht meine Tabelle so aus:
HEI01 Heinz Erhardt
ARN01 Arno Schmidt
TOM01 Tom Waits
HEI02 Heiner Müller
...
Die Kundennummern werden mit einer Hilfsspalte, Zählenwenn() und verketten() gebildet. Mein problem ist nun, dass ich diese Liste aber gerne auch sortieren können würde, nach Kundennamen. Was ja in dem Beispiel dazu führen würde, dass Heinz und Heiner die Kundennummern tauschen würden, und das darf natürlich nicht passieren. Auch könnte es ja passieren, dass ich jetzt irgendwo noch Heinrich Heine einfügen würde, der müsste dann ja die Nummer HEI03 bekommen... Wie würde man sowas anpacken? Gibt es eine Möglichkeit, eine Formel nur ein einziges Mal zu berechnen und dann gleich durch das Ergebnis ihrer selbst zu ersetzen?
Danke schonmal und Gruss aus Hamburg,
Jo
Re: Formel durch ihr Ergebnis ersetzen?
Verfasst: Di, 03.11.2009 14:22
von Karolus
Hallo
Kopiere die Formelspalte, und füge sie an gleicher stelle wieder ein, mit -->Inhalte einfügen --ohne die Optionen [ ]alles und [ ]Formeln.
Gruß Karo
Re: Formel durch ihr Ergebnis ersetzen?
Verfasst: Di, 03.11.2009 14:34
von penguin23
Das würde zwar gehen, aber ich möchte das ganze ja sozusagen 'live' und automatisch haben - also im Prinzip _sollen_ in der Spalte Formeln stehen, damit immer gleich für einen neuen Kunden eine Kundennummer erzeugt wird, die sollen dann aber fixiert so bleiben wie sie einmal sind...
Re: Formel durch ihr Ergebnis ersetzen?
Verfasst: Di, 03.11.2009 14:34
von komma4
oder die Tastenfolge:
F2>F9>Enter>Enter
Re: Formel durch ihr Ergebnis ersetzen?
Verfasst: Di, 03.11.2009 14:35
von penguin23
s.o. - das ist nicht mein Problem (leider, das wär ja einfach

Re: Formel durch ihr Ergebnis ersetzen?
Verfasst: Do, 05.11.2009 00:46
von penguin23
Ich glaube was mir hier weiterhelfen würde wäre eine Möglichkeit, von einer Zelle aus einen festen Wert in eine andere zu schreiben, also zum Beispiel eine Funktion wie 'schreibe':
Gibt es so eine Funktion? (Dann könnte ich mit einigen Hilfsspalten arbeiten, eine 'schreibe'-Funktion könnte die Kundennummer generieren, wenn in die Zeile ein Kundenname eingetragen wird, eine zweite 'schreibe'-Funktion könnte die erste überschreiben, wenn in der Zeile eine Kundennummer vorhanden ist...)
Vielleicht habe ich auch ein sehr grosses Brett vor'm Kopf - ich hoffe es ist deutlich geworden was ich zu erreichen versuche, wenn sowas irgendwie völlig anders hinzukriegen wäre, auch OK - bin für jeden Tip dankbar... (Will aber, u.a. aus Kompatibilitätsgründen, auf jeden Fall ohne scripte auskommen...)
Re: Formel durch ihr Ergebnis ersetzen?
Verfasst: Do, 05.11.2009 05:45
von Stephan
Gibt es so eine Funktion?
Nein und zwar prinzipiell nicht. Formeln in Tabellenzellen liefern immer nur rückgabewerte und keine Rückgabeaktionen (das aktive Schreiben von Werten in andere Zellen ist i.d. Sinne eine Aktion).
Dein Problem zeigt aber auch insgesamt wie schlecht Deine Programmwahl ist denn das um das Du Dich hier bemühst ist letztlich ein ein-eindeutiger Primärschlüssel, der nun einmal in einer Tabellenkalkulation nur höchst unzulänglich zu erzeugen ist. Hier wäre eine Datenbank das mittel der WAhl.
Gruß
Stephan
Re: Formel durch ihr Ergebnis ersetzen?
Verfasst: Do, 05.11.2009 18:53
von penguin23
Das ist von der Qualität her ungefähr so eine Antwort wie 'Na dann installier doch Linux!', wenn ich frage wie ich unter Windows einen Server einrichte... es gibt Gründe dafür, dass ich das in einer Tabellenkalkulation machen will... zB den, dass die ganze Sache dann auch für Ottonormalanwender, der sich zwar mit Excel, nicht aber mit Datenbanken auskennt, mit vertretbarem Aufwand durchschaubar und erweiterbar ist.
Es würde mich zwar auch interessieren warum es so eine Funktion 'prinzipiell' nicht gibt, das hört sich fast an als wäre es gut und richtig dass das so ist, dabei könnte man sowas doch sicher für etliche Sachen gut brauchen... Aber das würde wohl zu weit führen, ich will ja eigentlich nur mein Problem lösen.
Nochmal in Kurzform: Ich möchte aus Kundennamen eine Kundennummer generieren (die ersten drei Buchstaben des Kundennamens und eine fortlaufende Nummer), diese Kundennummer soll aber für jeden Kunden dieselbe bleiben, auch dann, wenn man die ganze Liste umsortiert.
Wäre weiterhin dankbar für eine Lösung, vor allem weil sich das gar nicht so kompliziert oder abwegig anhört... oder?
Re: Formel durch ihr Ergebnis ersetzen?
Verfasst: Do, 05.11.2009 19:41
von balu
Hallo penguin,
Das ist von der Qualität her ungefähr so eine Antwort wie 'Na dann installier doch Linux!'
Das stimmt absolut überhaupt nicht! Vielleicht solltest Du dir mal überlegen wozu ein Tabellenkalkulationsprogramm dient. Um es mal ganz einfach auszudrücken, ist es nichts anderes als ein überdimensionierter Taschenrechner. Und es soll grundsätzlich nichts anderes können, als nur *Rechnen*. Und rechnen stammt ja vom lateinischem ->calculare ab.
Das was Du möchtest ist wohl nicht unüblich, aber, so meine Meinung, geht das doch über den eigentlichem Sinn eines Tabellenkalkulationsprogramm hinaus. Das heißt jetzt aber nicht, dass es keine Lösung für dein Problem gibt, nur bist Du dafür hier im falschem Forum. Bitte wende dich mit deinem Anliegen an das
OOo Basic und Java Forum.
Gruß
balu
Re: Formel durch ihr Ergebnis ersetzen?
Verfasst: Do, 05.11.2009 20:00
von penguin23
Ein überdimensionierter Taschenrechner, genau, und ich bin ja eben dabei die Grenzen des Taschenrechners auszuloten, deswegen stelle ich ja diese Fragen hier.
Mir kam Stephans Antwort nur etwas quer weil sie ein bisschen ankam als hätte er sich gar nicht mit der Fragestellung auseinandergesetzt, also damit, ob sowas vielleicht irgendwie anders möglich ist, sondern gleich den Holzhammer rausholt, mit dem das Problem dann auf jeden Fall und auch ohne Nachdenken zu erschlagen ist...
Und ich finde meine Gründe schon immer noch richtig, aber wenn Du jetzt auch sagst dass das nicht so ohne weiteres geht dann geb ich wohl erstmal auf und versuche eine strukturell andere Lösung zu finden. Aus denselben o.g. Gründen würde ich nämlich auch gern ohne scripte auskommen...
Gruss,
Jo
Re: Formel durch ihr Ergebnis ersetzen?
Verfasst: Do, 05.11.2009 20:27
von komma4
"Kundennummer generieren" ist keine Aufgabe für eine Tabellenkalkulation.
Und warum sollte sich ein "Otto"-Anwender in Calc und mit Deinen (dann komplizierten) Formeln besser zurechtfinden (zumal es nicht Excel ist)?
Nehme eine "richtige" Datenbank und erstelle Formulare für Dateneingabe/-anzeige, Berichte für (sortierte) Listen, etc.
Gerade wenn "Anwender" beteiligt sind ist das praktisch ein MUSS [ Kunden => Nachvollziehbarkeit (Finanzamt!), Datensicherheit => Multiuser? Constraints, professionelle Backup-Techniken ]
Re: Formel durch ihr Ergebnis ersetzen?
Verfasst: Do, 05.11.2009 20:47
von penguin23
Naja, es geht um eine Kundenverwaltung für freiberufler, da ist das mit dem Finanzamt nicht so ganz kompliziert, es gibt im Normalfall keine Angestellten, keine Gewerbesteuer oder ähnlichen tüddelkram... ausserdem macht's ja auch Spass mit der Tabellenkalkulation rumzufummeln.

[Edit: Das heisst also, es gibt keine Probleme mit multiuser, und für Datensicherheit, Backups und so wäre der Anwender dann schon selbst verantwortlich, das ganze muss nicht in jeder Hinsicht fool-proof werden... Letzlich kann ich ja auch nicht anders als von mir auf andere zu schliessen, ich nämlich habe von Datenbanken nicht viel Ahnung, von Tabellenkalkulation immerhin ein bisschen. Und ja, das ganze würde ich dann auch für Excel umsetzen, warum auch nicht.

]
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?
Re: Formel durch ihr Ergebnis ersetzen?
Verfasst: Do, 05.11.2009 21:14
von Stephan
Das ist von der Qualität her ungefähr so eine Antwort wie 'Na dann installier doch Linux!', wenn ich frage wie ich unter Windows einen Server einrichte
Nicht im Mindesten. Wenn Du es ohnehin besser weißt dann frage doch erst garnicht, aber erwarte nicht das ich Dir die Unwahrheit sage nur weil Dir diese besser ins Konzept passt.
es gibt Gründe dafür, dass ich das in einer Tabellenkalkulation machen will... zB den, dass die ganze Sache dann auch für Ottonormalanwender, der sich zwar mit Excel, nicht aber mit Datenbanken auskennt, mit vertretbarem Aufwand durchschaubar und erweiterbar ist.
Ich habe hier nur, nach bestem Wissen und Gewissen, (und ich mache solche Dinge auch beruflich) meinme Einschätzung abgegeben, es ist Dein gutes REcht sie zu ignorieren.
Gerade der Aufwand Datensätze mit dAtenbankcharakter in Excel konsitent zu halten ist gegenüber einer Datenbank um ein mEhrfaches höher, im Konkreten sehe ich ohne Script bzw. Makro gleich garkeine sinnvolle LÖsung in Calc/Excel, wenn du es besser weißt setze doch DEine Kenntnisse um und frage nicht hier im Forum, wenn DEine Meinung vorgefasst ist.
Nein, ich streite hier nicht, ich mache bloß darauf aufmerksam das Du versuchst mich zu 'zwingen' eine Dir genehme Antwort zu geben, das ist mir jedoch deshalb nicht möglich weil ich Dir dann fachlich unzweckmäßige Dinge empfehlen müßte.
Kurz gesagt (da ich solche Dinge auch beruflich mache) würde ich hier DEinen Auftrag abweisen, und darauf verweisen Dirr einen anderen Partner zu suchen, weil Du eine LÖsung verlangst die fachlich nicht sinnvoll ist. (Ich könnte mich natürlich auch von der Haftung freistellen lassen und das machen was Du willst, 'ohne Rücksicht auf Verluste' - da ich jedoch in dem Geschäft der Fachmann bin, nennt man sowas landläufig Dich über den Tisch zu ziehen, denn ich weiß ja von vorherein das die gebotene Lösung nicht sinnvoll ist.)
Es würde mich zwar auch interessieren warum es so eine Funktion 'prinzipiell' nicht gibt
Das hatte ich bereits hingeschrieben: weil TabellenFunktionen immer nur RückgabeWERTE und keine RückgabeAKTIONEN liefern können.
das hört sich fast an als wäre es gut und richtig dass das so ist
ja, es ist eine zweckmäßige Beschränkung, was deswegen aber ÜBERHAUPT nicht heißt das sie die einzig mögliche Lösung ist (in theoretischer Hinsicht), nur ist die Entscheidung nun einmal so getroffen
dabei könnte man sowas doch sicher für etliche Sachen gut brauchen
ich ebenfalls, nur habe auch ich zur Kenntnis zu nehmen das die Funktion des Programmes so ist wie sie ist
Wäre weiterhin dankbar für eine Lösung, vor allem weil sich das gar nicht so kompliziert oder abwegig anhört... oder?
Solange Du schwer erfüllbare Anforderungen erhebst wird das wohl nicht gegen. Eine LÖsung ist sicher nicht sooo schwer, eine LÖsung ohne Scripte jedoch doch sehr schwer bis unmöglich. Du jedoch erhebst die Forderung ohne Scripte auskommen zu müssen und so weiß, zumindest ich, keine Lösung.
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?
Wieder läuft es darauf hinhaus das Du fixe (nachträglich unveränderliche) Kundennummern brauchst und ich sehe leider nicht wie so etwas ohne Scripte/Makros verlässlich zu erledigen wäre.
GErade weil die Kundennummer verlässlich eindeutig sein müssen mußt Du bei einer Tabellenkalkulation deren EinEindeutigkeit selbst sicher stellen (eine DAtenbank täte das automatisch, denn das ist eine der wesentlichen Anforderungen einer Datenbank) und schon deshalb hielte ich eine Makrolösung für notwendig.
Gruß
Stephan
Re: Formel durch ihr Ergebnis ersetzen?
Verfasst: Do, 05.11.2009 21:26
von penguin23
Gut, ich will mich natürlich auch nicht streiten, also lassen wir das. Ich habe Dir ja auch nicht irgendwie einen 'Auftrag' gegeben und kann deswegen auch nicht von Dir über den Tisch gezogen werden, und Du hast natürlich recht, ich hätte Deine Antwort auch ignorieren können. Mir ist aber nicht ganz klar was das Ganze mit einer vorgefassten Meinung zu tun hat, calc ist ein Werkzeug und ich möchte nichts weiter als rausfinden ob man dieses Werkzeug auf eine bestimmte Weise benutzen kann.
Und schliesslich habe ich ja nun auch meinen ursprünglichen Ansatz aufgegeben, wenn's nicht geht dann geht's eben nicht. Was aber die Sache mit den aus den Namen erzeugten Nummern angeht, da sehe ich nicht wo das grundsätzliche Problem sein soll, das mit calc zu machen, auch ohne scripte: 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. Und rechnen kann calc doch, oder?
Re: Formel durch ihr Ergebnis ersetzen?
Verfasst: Do, 05.11.2009 21:40
von yeti
penguin23 hat geschrieben:... 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. Und rechnen kann calc doch, oder?
Nur hast du dann in der Zelle, in der deine Kundennummer steht doch auch wieder eine Formel stehen und nicht nur das Ergebnis.
Gruß Yeti