Nominelle Summenformel berechnen

Bild

Betrifft: Nominelle Summenformel berechnen
von: Markus
Geschrieben am: 20.11.2003 18:42:37

Hallo allerseits,

ich habe folgendes Problem:

Aus einer Summenformel möchte ich die nominelle Masse einer
Verbindung berechnen (z.B. C10H8N3O4S2). Hierzu muß ich den
String dahingehend auslesen, daß ich erstens weiß, welche
Elemente vorhanden sind (in diesem Fall C,H,N,O,S) und zweitens,
in welcher Anzahl (10,8,3,4,2).

Habe verschiedenes ausprobiert, aber keine richtig funtionierende
Lösung gefunden. Wer weiß hier Rat oder hat sich schon einmal
mit demselben Problem rumgeschlagen ?

Gruß

Markus

Bild


Betrifft: AW: Nominelle Summenformel berechnen
von: th.heinrich
Geschrieben am: 20.11.2003 19:06:24

hi Markus,

was hast Du schon getestet, dann muss der fehler nicht neu erfunden werden ;-)

mein vorschlag DATEN-TEXT IN SPALTEN-FESTE BREITE.

gruss thomas


Bild


Betrifft: AW: Nominelle Summenformel berechnen
von: PeterW
Geschrieben am: 20.11.2003 19:13:56

Hallo Thomas,

erklär doch bitte mal, wie das gehen soll? Ich krieg das so nicht hin. :-(

Gruß
Peter


Bild


Betrifft: AW: Nominelle Summenformel berechnen
von: th.heinrich
Geschrieben am: 20.11.2003 22:31:13

hallo Peter,

kann mir nicht vorstellen, dass Du das nicht gebacken kriegst.

DATEN-TEXT IN SPALTEN-FESTE BREITE.

bei FESTE BREITE ist es moeglich per mouse click die SPALTENTRENNUNG vorzunehmen.

gruss thomas


Bild


Betrifft: War der Beitrag vielleicht etwas ironisch...
von: Boris
Geschrieben am: 20.11.2003 22:54:51

Hi Thomas,

...gemeint?!?

Du willst doch nicht in der Tat jeden dieser Einträge auf diese manuelle Art und Weise trennen? Denn mal ist eine Zahl 2-stellig, dann wieder einstellig - und wahrscheinlich immer an anderer Position...

Grüße Boris


Bild


Betrifft: ironisch hin, ironisch her ;-)
von: th.heinrich
Geschrieben am: 20.11.2003 23:16:06

hallo Boris, PeterW,

habe IMHO auf die frage von Markus geantwortet.

Ihr plant da natuerlich sofort weiter, aber weil ich selbst wenige KOMPLETTLÖSUNGEN bieten kann, versuche ich mit dem prob zu wachsen.

abwarten was Markus meint.

ciao thomas

ps. zieh mir jetzt Harald Schmidt rein


Bild


Betrifft: Iterative Lösung ;-)
von: IngoG
Geschrieben am: 21.11.2003 00:27:33

Hallo zusammen,

hab mal eine Lösung gebaut, mit der der String von links nach rechts aufgelöst wird in element1, anzahl1, element2, anzahl2...

https://www.herber.de/bbs/user/2058.xls

Die lösung arbeitet immer mit dem noch vorhandenen reststring und kann beliebig nach rechts erweitert werden ( dafür immer die letzten vier spalten kopieren und rechts einfügen)

Es müssen zwischen 2 elementen immer zahlen stehen, da er sonst nicht weiss, ob es ein oder zwei elemente sind.

Da die lösung mit hilfsspalten arbeitet habe ich ein Blatt mit allen formeln und ein Blatt mit ausgeblendeten Restspalten angehängt

sollte eigentlich alles so funzen

Gruß Ingo

PS. Eine Rückmeldeung wäre nett...


Bild


Betrifft: AW: Iterative Lösung ;-)
von: PeterW
Geschrieben am: 21.11.2003 04:57:36

Hallo Ingo,

hatte an etwas ähnliches gedacht aber den Gedanken verworfen weil nicht zwangsäufig Zahlen zwischen den Elementen stehen (H2SO4). :-(

Gruß
Peter


Bild


Betrifft: AW: Iterative Lösung ;-)
von: Martial
Geschrieben am: 21.11.2003 08:37:33

Hallo zusammen

Ansatz: String charakterweise von hinten auslesen und prüfen, ob es Zahl oder Buchstabe ist (mit isNumeric(Ausdruck)). Dann Pakete bilden.

Kann mir jetzt leider den Code nicht gerade aus dem Hemdärmel schütteln ;-)

Gruss, Martial


Bild


Betrifft: Lösung für H2SO4
von: Boris
Geschrieben am: 21.11.2003 10:26:17

Hi Peter,

ich häng die Antwort mal bei Dir an weil ich fast davon ausgehe, dass Markus hier nicht mehr vorbeischaut aber du möglicherweise Interesse daran hast...;-)

String steht in A2 (z.B. "H2SO4" oder auch "C10H8N3O4S2")
Dann für die Elemente folgende Array-Formel in B2 und weit genug nach rechts kopieren:

{=TEIL($A2;KKLEINSTE(WENN(ISTFEHLER(TEIL($A2;SPALTE($1:$1);1)*1);SPALTE($1:$1));SPALTE(A$1));1)}

Für die Anzahl in B3 und ebenfalls nach rechts kopieren (normale Formel):
=WENN(B2="";"";TEIL($A2;FINDEN(B2;$A2)+1;WENN(C2="";LÄNGE($A2)+1;FINDEN(C2;$A2))-FINDEN(B2;$A2)-1))

Solange Elemente nicht doppelt vorkommen (und das ist glaube ich nie der Fall - meine Chemie-Kenntnisse sind längs begraben;-) ) funktioniert diese Lösung.

Grüße Boris


Bild


Betrifft: AW: Lösung für H2SO4
von: PeterW
Geschrieben am: 21.11.2003 11:16:53

Hallo Boris,

Interesse hab ich schon, danke für den Ansatz aber mit den mehrfach vorkommenden Elementen muss ich dich enttäuschen. In der organischen Chemie wimmelt es nur so davon. Kleines Beispiel aus dem täglichen Leben wäre C2H5OH - die Aminosäuren erspar ich uns lieber. ;-)

Gruß
Peter


Bild


Betrifft: Wäre doch gelacht...
von: Boris
Geschrieben am: 21.11.2003 11:39:01

Hi Peter,

...wenn wir das nicht auch lösen könnten ;-)

Formel in B3 und nach rechts kopieren:

=WENN(B2="";"";TEIL($A2;FINDEN(B2;$A2;SUMMENPRODUKT(LÄNGE($B2:B2)))+1;WENN(C2="";LÄNGE($A2)+1;FINDEN(C2;$A2;SUMMENPRODUKT(LÄNGE($B2:C2)))-FINDEN(B2;$A2)-1)))

Jetzt muss aber gut sein...;-)

Grüße Boris


Bild


Betrifft: AW: Wäre doch gelacht...
von: PeterW
Geschrieben am: 21.11.2003 12:02:37

Hallo Boris,

D3:E3 bleiben bei mir leer obwohl da eine 1 stehen müsste - hast aber recht, ist gut jetzt.

Gruß
Peter


Bild


Betrifft: AW: Iterative Lösung ;-)
von: Markus
Geschrieben am: 21.11.2003 09:48:07

Hallo Ingo,

Deine Lösung ist genial (da drauf zu kommen hätte mich noch einiges
an Gehirnschmalz gekostet - wenn überhaupt). Funktioniert einwandfrei.

Nochmals danke. Du hast mir damit wirklich weitergeholfen.

Gruß

Markus


Bild


Betrifft: Danke für die Rückmeldung, verbesserung s.u., oT
von: IngoG
Geschrieben am: 21.11.2003 11:27:22

.


Bild


Betrifft: Iterative Lösung Verbesserung?!
von: IngoG
Geschrieben am: 21.11.2003 10:36:41

Hallo zusammen,

hab nochmal über das problem nachgedacht.
wenn man davon ausgeht, das die Bezeichnung der Elemente 1 oder 2 stellen lang sind muß man eine unterscheidungsmöglichkeit haben, ob 2 hintereinanderstehende Buchstaben 1 oder 2 Elemente bedeuten (wenn uU nicht hinter jedem element eine zahl folgt wie zB bei NaCl).

Dieses Problem habe ich in der neuen Lösung folgendermaßen umgangen:
wenn ein Element 2 Buchstaben besitzt muß der 2. Buchstabe in Kleinschrift geschrieben werden also zB Hg oder Pb

wenn das gewährleitstet ist, arbeitet das neue TAbleau einwandfrei (hoffe ich ;-)

zu dieser Frage kann aber nur Markus selbst etwas sagen...

https://www.herber.de/bbs/user/2064.xls


Gruß Ingo

PS. Eine Rückmeldung wäre nett...


Bild

Beiträge aus den Excel-Beispielen zum Thema " Nominelle Summenformel berechnen"