Excel

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.

  1. öffne dein excel-dokument
  2. starte den microsoft visual basic editor (alt-f11)
    auf der linken seite müsstest du nun den projekt-baum sehen
    darin sollte die aktuelle arbeitsmappe geöffnet sein und das
    aktuelle arbeitsblatt markiert sein
  3. im menü „einfügen“ den punkt „modul“ auswählen
    es wird ein modul „Modul1“ eingefügt
    der name tut nix zur sache - einfach so lassen
    im rechten bereich ist nun ein editierbereich offen (weisser
    hintergrund)
  4. rechts im editierbereich folgenden text einfügen:

Function eval(formel As String) As Double
eval = Evaluate(formel)
End Function

  1. du kannst den microsoft visual basic editor nun normal beenden
    (alt-f4). die neue funktion wird automatisch im aktuellen
    excel-dokument gespeichert.

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.

  1. 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.

  2. 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

  1. anstatt der summe über die eingabezellen ("=SUMME(B8:smiley:8)")
    verwendest du nun die summe über die hilfszellen
    ("=SUMME(B9:smiley:9)")

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