funktionsfähige Formel in Zelle anzeigen

Hi!

Ich habe ein böses Problem mit einer Zellanzeige in Excel.

In einer Zelle soll angezeigt werden „0,2*7“. Gleichzeitig soll diese Anzeige rechenfähig sein. Also:

Die Nachbarzelle links enthält „17“, dann kommt „0,2*7“ und in der dritten Zelle soll dann ein Additionsergebnis erscheinen:

17 + 0,2*7 = 18,4

Wie bekommt man das hin, dass eine textliche Anzeige eine Berechnungsformel auch als Formel genutzt werden kann?

Danke schon mal!

Heinrich

Grüezi Heinrich

Ich habe ein böses Problem mit einer Zellanzeige in Excel.

Nein, das glaube ich nicht - Du versuchst bloss Dinge, die so IMO wenig Sinn machen… :wink:

In einer Zelle soll angezeigt werden „0,2*7“. Gleichzeitig
soll diese Anzeige rechenfähig sein. Also:

Die Nachbarzelle links enthält „17“, dann kommt „0,2*7“ und in
der dritten Zelle soll dann ein Additionsergebnis erscheinen:

17 + 0,2*7 = 18,4

Wie bekommt man das hin, dass eine textliche Anzeige eine
Berechnungsformel auch als Formel genutzt werden kann?

Schreibe die drei Werte in je eine einzelne Zelle und verrechne sie dann korrekt miteinander.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Heinrich,

In einer Zelle soll angezeigt werden „0,2*7“.

Schreibe das bitte so
In einer Zelle soll angezeigt werden
„0,2*7“
oder so
In einer Zelle soll angezeigt werden
0,2*7

dann ist es eindeutiger.

Die Nachbarzelle links enthält „17“, dann kommt „0,2*7“ und in
der dritten Zelle soll dann ein Additionsergebnis erscheinen:

17 + 0,2*7 = 18,4

Meinst du so:

Tabellenblatt: [Mappe1]!Tabelle1
 │ A │ B │ C │
──┼────┼───────┼──────┤
1 │ 17 │ 0,2\*7 │ 18,4 │
──┴────┴───────┴──────┘
Benutzte Formeln:
C1: =A1+Ausw

Festgelegte Namen:
Ausw: =AUSWERTEN(Tabelle1!$B$1)

A1:C1
haben das Zahlenformat: Standard

Tabellendarstellung erreicht mit dem Code in FAQ:2363

Gruß
Reinhard

Hi!

Ich habe ein böses Problem mit einer Zellanzeige in Excel.

Nein, das glaube ich nicht - Du versuchst bloss Dinge, die so
IMO wenig Sinn machen… :wink:

Die Vorgabe kommt nicht von mir, sondern von Architekten, Bauleiter u.ä. Das nennt sich „Aufmaßzettel“ und ist in der Branche so üblich. Gesucht wird eine Lösung, dass Aufmaßzettel in Excel erstellt werden können.

Ich weiß also nicht, ob so etwas „wenig Sinn“ macht, wenn es in einer bestimmten Branche als Formatvorgabe üblich ist. :smile:)

Grüße
Heinrich

Hallo Heinrich,

Thomas Ramel hat IMO doch recht.

Diese Spalte mit 0,2*7 läßt sich in drei Spalten zerlegen. In der ersten steht 0,2, in der zweiten steht das Malzeichen, in der dritten steht die 7.
Man täuscht das Auge des Betrachters, indem man die Spalten so klein macht, daß die drei Einträge nebeneinander zu stehen scheinen. Man muß natürlich auch die Rahmenlinien zwischen den Spalten entfernen.

Hat man das mal gemacht, kann man noch mehr tricksen: man formatiert die 0,2 rechtsbündig, das Sternchen zentriert und die 7 linksbündig. Dann sieht es im Ausdruck so aus, als hätte man das in eine Zelle eingegeben.

M.

1 „Gefällt mir“

Benutzte Formeln:
C1: =A1+Ausw
Festgelegte Namen:
Ausw: =AUSWERTEN(Tabelle1!$B$1)

Hallo Reinhard
Du hast als Lösung für Heinrichs Problem ein Excel4 Makro vorgeschlagen. Das hat in meinen Augen einen Nachteil, wenn ich mehrere Zellen auswerten muss. Ich muss dann für jede Zelle einen eigenen Namen erfassen. Oder liege ich da ganz falsch?
Ich habe in Spalte A verschiedene auszuwertende Zahlen.

 A B
1 3\*5 15
2 4/5+6/5 2
3 3\*2+1 7
4 5\*(4-1) 15
5 50-43 7

Ich markiere nun in der Spalte rechts davon die entsprechenden Zellen und starte folgendes Makro

Sub Test\_AAA()
 Dim Zelle As Range
 For Each Zelle In Selection
 Zelle.Value = "=" & Zelle.Offset(0, -1)
 Next Zelle
End Sub

Die Spalte B wird mit den ausgewerteten Zahlen gefüllt.

Nun meine Frage an Dich als Fachmann:
Ich hätte statt dem Makro lieber eine Funktion, etwa in der Art:

Function TestFF(zelle)
 TestFF = "=" + zelle.Value
End Function

Das haut aber nicht hin. Das Ergebnis der Funktion ist ein String, keine Zahl. Hast Du einen Rat, wie man die Funktion richtig hinkriegt?

Vielen Dank für Deine Mühe und viele Grüsse aus Zürich
Niclaus

Grüezi Niclaus,

Du hast als Lösung für Heinrichs Problem ein Excel4 Makro
vorgeschlagen. Das hat in meinen Augen einen Nachteil, wenn
ich mehrere Zellen auswerten muss. Ich muss dann für jede
Zelle einen eigenen Namen erfassen. Oder liege ich da ganz
falsch?

könnte man evtl. so sagen :smile:
Grundsätzlich, bei meiner Tabellendarstellung mit FAQ:2363 bedeutet „*rel. Name, so gültig in C1“
C1 muß markiert sein wenn du den Namen vergibst
. Danach kannste die Formel runterkopieren.
Es gelten die gleichen Regeln wie immer für abs. und rel. Zelladressierung, also den Einsatz des Dollars.

Tabellenblatt: [Mappe1]!Tabelle1
 │ A │ B │ C │
──┼─────────┼────┼────┤
1 │ 3\*5 │ 15 │ 30 │
──┼─────────┼────┼────┤
2 │ 4/5+6/5 │ 2 │ 4 │
──┼─────────┼────┼────┤
3 │ 3\*2+1 │ 7 │ 14 │
──┼─────────┼────┼────┤
4 │ 5\*(4-1) │ 15 │ 30 │
──┼─────────┼────┼────┤
5 │ 50-43 │ 7 │ 14 │
──┴─────────┴────┴────┘
Benutzte Formeln:
C1: =B1+ausw
C2: =B2+ausw
C3: =B3+ausw
C4: =B4+ausw
C5: =B5+ausw

Festgelegte Namen:
ausw: =AUSWERTEN(Tabelle1!A1) \*rel. Name, so gültig in C1

A1:C5
haben das Zahlenformat: Standard

Tabellendarstellung erreicht mit dem Code in FAQ:2363

Ich markiere nun in der Spalte rechts davon die entsprechenden
Zellen und starte folgendes Makro

Sub Test_AAA()
Dim Zelle As Range
For Each Zelle In Selection
Zelle.Value = „=“ & Zelle.Offset(0, -1)
Next Zelle
End Sub

Die Spalte B wird mit den ausgewerteten Zahlen gefüllt.

? Du markierst Spalte C, dann das Makro gestartet, warum sollte dann Spalte B ausgefüllt werden?

Nun meine Frage an Dich als Fachmann:

Danke für das Kompliment :smile:

Ich hätte statt dem Makro lieber eine Funktion, etwa in der
Art:

Function TestFF(zelle)
TestFF = „=“ + zelle.Value
End Function

Das haut aber nicht hin. Das Ergebnis der Funktion ist ein
String, keine Zahl. Hast Du einen Rat, wie man die Funktion
richtig hinkriegt?

jetzt mal unabhängig von einer Excellösung ohne Vba, du möchtest quasi ide Excel4Makrofuntion Auswerten() in Vba in einer Funktion benutzen?

Das geht, weiß grad nicht wie, zu selten benutzt, muß mal schauen wie der Befehl/die Syntax heißt, irgendwas mit execute und makro4 oder so *Kopfkratz*

Ich schau mal…

Gruß
Reinhard

Grüezi Niclaus

Nun meine Frage an Dich als Fachmann:

Ich antworte trotzdem mal… :wink:

Ich hätte statt dem Makro lieber eine Funktion, etwa in der
Art:

Function TestFF(zelle)
TestFF = „=“ + zelle.Value
End Function

Das haut aber nicht hin. Das Ergebnis der Funktion ist ein
String, keine Zahl. Hast Du einen Rat, wie man die Funktion
richtig hinkriegt?

Du musst den String nur noch auswerten, also wie folgt:

Public Function Berechne(rngzelle As Range)
 Berechne = Evaluate(rngzelle.Text)
End Function

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Es gelten die gleichen Regeln wie immer für abs. und rel.
Zelladressierung, also den Einsatz des Dollars.

Lieber Reinhard
Das war mein Problem: Warum diese Dollars? Ich hätte viel lieber CHF!!!

Ich markiere nun in der Spalte rechts davon die entsprechenden
Zellen und starte folgendes Makro

? Du markierst Spalte C, dann das Makro gestartet, warum
sollte dann Spalte B ausgefüllt werden?

„Meine“ Spalte B zeigt bereits das Resulat: Ich habe B markiert, nicht C. Denken und Schreiben, mein zweites Problem!

Das geht, weiß grad nicht wie, zu selten benutzt, muß mal
schauen wie der Befehl/die Syntax heißt, irgendwas mit execute
und makro4 oder so *Kopfkratz*
Ich schau mal…

Kratze bitte nicht weiter, ich möchte nicht, dass Du keine Kopfhaut mehr hast! Thomas hat den entscheidenen Hinweis gegeben:

= Evaluate(rngzelle.Text)

Vielen herzlichen Dank
Niclaus

Nun meine Frage an Dich als Fachmann:

Ich antworte trotzdem mal… :wink:

Ich will ja nicht den Super(fach)mann als ersten belästigen mit so doofen Fragen!! Ich wollte zuerst mal Reinhard hirnen lassen!

Public Function Berechne(rngzelle As Range)
Berechne = Evaluate(rngzelle.Text)
End Function

Super! Das „Evaluate“ hatte ich bisher nicht in meinem Wortschatz!

Vielen Dank und viele Grüsse
Niclaus