Ich habe bei Excel folgendes Problem:
=SUMME(C8:G8)
Was muß ich tun, um in „C8“ 2 Werte (zB 10+10) eingeben zu können?
Viele Grüße
dodo
Ich habe bei Excel folgendes Problem:
=SUMME(C8:G8)
Was muß ich tun, um in „C8“ 2 Werte (zB 10+10) eingeben zu können?
Viele Grüße
dodo
Ich habe bei Excel folgendes Problem:
=SUMME(C8:G8)
Was muß ich tun, um in „C8“ 2 Werte (zB 10+10) eingeben zu
können?
Gibst du ein (in Zelle C8) als
„=10+10“
(ohne die Gänsefüßchen, versteht sich!)
LG
Jochen
Viele Grüße
dodo
Hallo Jochen,
das ist genial, aber ich würde die Werte gerne in der Tabelle behalten. Ist das möglich?
Gruß
dodo
=SUMME(C8:G8)
Was muß ich tun, um in „C8“ 2 Werte (zB 10+10) eingeben zu
können?
möglicher ansatz:
du definierst dir in einem modul einen eigenen funktion:
function eval(formel as string) as double
eval = evaluate(formel)
end function
nun kannst du z.b. in zelle c9 die formel
=eval(c8)
schreiben. die formel analog für die anderen zellen kopieren.
dann summierst du einfach c9:g9
die 9. zeile kannst du ja so formatieren, dass sie nicht sichtbar ist (bzw. die zwischenergebnisse in jede beliebige andere spalte/zeile schreiben).
prinzipielles problem: der datentyp „double“ hat im vba eine weitaus geringere genauigkeit als die excel-internen datentypen. das wird aber erst bei relativ grossen zahlen schlagend. für den hausgebrauch recht es. ansonsten muss man auf einen anderen datentyp ausweichen.
den obigen vba-code kann man z.b. in eine global geladene datei schreiben, damit die funktion in allen beliebigen excel-dateien verfügbar ist.
erwin
Hallo Erwin,
ich verstehe kein Wort, von dem was Du geschrieben hast.
Geht es einfacher, damit ich es nachvollziehen kann?
Liebe Grüße
dodo
ok - ich versuche eine schritt-für schritt anleitung.
Function eval(formel As String) As Double
eval = Evaluate(formel)
End Function
ab nun hast du in diesem excel-dokument eine zusätzliche
funktion zur auswahl. diese funktion erlaubt es dir, einen
beliebigen text wie eine formel zu behandeln und das ergebnis
auszuwerten.
du kannst die neue funktion schon mal einfach testen
gib in der zelle A1 den text „10+20“ ein. gib nun in der zelle
b1 die funktion „=eval(a1)“ ein. die zelle b1 sollte nun den
wert „30“ beinhalten.
du hast nun z.b. in den zellen B8 bis D8 deine werte stehen,
die du summieren möchtest. du schreibst nun in eine hilfszelle
die funktion, die den text deiner eingabezellen in einen
numerischen wert umrechnet.
z.b. in zelle B9 die funktion „=eval(B8)“
diese eingabe für alle eingabezellen wiederholen
die hilfszellen müssen ja nicht in unmittelbarer nähe der
eingabezellen stehen. wenn du die hilfszellen verstecken möchtest,
dann verwende z.b. B100 als hilfszelle
et voila - du hast deinen gewünschten effekt. der aufwand ist relativ
minimal. der einzige nachteil ist, dass die eval-funktion bei sehr
grossen zahlen einen blödsinn liefert - was aber im normalfall kein
problem darstellt.
probier es einfach mal aus. wenn dir die lösung gefällt, dann kann
ich dir mal zeigen, wie man diese funktion „permanent“ nachrüstet,
so dass sie in allen excel-dokumenten verfügbar ist.
erwin
Hallo,
Ich habe bei Excel folgendes Problem:
=SUMME(C8:G8)
Was muß ich tun, um in „C8“ 2 Werte (zB 10+10) eingeben zu
können?
Mach doch einfach =Summe(C8:G9) daraus und trag die Werte in Zeile 8 und Zeile 9 ein.
Oder habe ich da was nicht verstanden?
Grüße,
Anwar
=SUMME(C8:G8)
Was muß ich tun, um in „C8“ 2 Werte (zB 10+10) eingeben zu
können?
Hi Doris,
wenn du in eine Zelle =10+10 eingibst wird dir 20 angezeigt.
Was genau möchtest du?
Gruß
Reinhard
Hallo Erwin,
ich bin zwar nicht der Frager,
aber „Evaluate“ ist ein Geschenk … Danke
Gruß Carola
(xls2000)
Huhu dodo,
das ist genial, aber ich würde die Werte gerne in der Tabelle
behalten. Ist das möglich?
Klar. Dann müssen die Werte (also im Beispiel eine 10 und noch eine 10) ja irgendwo schon in der Tabelle stehen. Sagen wir mal, diese beiden Werte stehen in den Zellen A1 und B1. Soll die Summe dieser beiden Werte in der Zelle C1 erscheinen, dann gehst du in die Zelle C1 und tippst „=A1+B1“ (wieder ohne die Gänsefüßchen).
Anm: Wenn du „=“ getippt hast, kannst du auch mit der Maus die erste Zelle (A1) anklicken (dann schreibt Excel automatisch „A1“ in die Zielzelle), dann drückst du „+“ und dann kannst du die zweite Zelle mit der Maus auswählen.
Es gibt noch andere Möglichkeiten; z.B. kannst du die weiter oben beschriebene Funktion „SUMME(A1:B1)“ benutzen. Viele Wege führen nach Rom.
Noch was: Wenn du willst, daß in Zelle C1 folgendes steht: „10+10“ und in der nächsten Zelle, D1, das Ergebnis (20), so kannst du in Zelle C1 filgendes eintragen: „=A1 & ‚+‘ & B1“ und in D1 trägst du ein: „=A1+B1“.
Alles klar ?
LG
Jochen
Hallo Erwin
eval = evaluate(formel)
Funzt prima! Wie kommt man auf so eine geniale Idee? Jedenfalls nicht mit der ganzen bestehenden Excel-Literatur.
Das ist einige STERNE wert!
Es dankt
Erich
eval = evaluate(formel)
Funzt prima! Wie kommt man auf so eine geniale Idee?
Jedenfalls nicht mit der ganzen bestehenden Excel-Literatur.
die frage muss eher lauten: warum hat microsoft diese funktion nicht gleich allgemein verfügbar gemacht (also als standard-funktion im excel)?
praktisch jede bessere programmiersprache kennt einen evaluate-befehl. und mit vba kann man beliebige funktionen nachrüsten. also einfach 1 und 1 zusammenzählen…
Hallo,
die frage muss eher lauten: warum hat microsoft diese funktion
nicht gleich allgemein verfügbar gemacht (also als
standard-funktion im excel)?
Ich verstehe irgendwie schon die Ausgangsfragestellung nicht. Wenn ich 10+10 in Excel haben will schreibe ich doch einfach 10 in die eine und +10 in die nächste Spalte. Wo ist das Problem??
Grüße,
Anwar
Hallo Anwar,
„nicht zu verstehen“ ist hier auch eine ganz gesunde Reaktion.
Und bei >>"=10+10" ist genial