Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formel aus Text in Zellinhalt erstellen

Formel aus Text in Zellinhalt erstellen
Dogbert
Hallo!
Folgendes Problem: Ich habe einen variablen Zellinhalt im Tabellenblatt "Anton" in Zelle B1.
Dort können verschiedene (als Text formatierte) Einträge stehen wie z.B. (jede Zeile ist separat als möglicher Eintrag zu sehen):
Mittelwert(Anton!A1:A10)
Max(Anton!A1:A10)
Min(Anton!A1:A10)
Anton!A8+2*Anton!A3-Anton!A7
Summe(Anton!A1:A10)
In A1 bis A10 des Blattes "Anton" stehen irgendwelche Zahlen.
In einem anderen Arbeitsblatt mit Namen "Bernd" soll in Zelle C8 die Formel stehen, die in Anton!B1 angegeben ist. D.h. dort soll dann eben der Mittelwert, das Maximum oder sonstwas berechnet werden.
Wie kann ich dies lösen?
Danke schonmal!
Dogbert
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Formel aus Text in Zellinhalt erstellen
12.07.2010 14:46:23
fcs
Hallo Dogbert,
mit dem folgenden Makro kannst du die Formeln aus dem Blatt Anton ins Blatt Bernd übertragen.
Sub Formel_Eintragen()
Dim wksB As Worksheet
Dim wksA As Worksheet
Set wksA = Worksheets("Anton")
Set wksB = Worksheets("Bernd")
wksB.Range("C8").FormulaLocal = "=" & wksA.Range("B1").Text
End Sub

Gruß
Franz
Anzeige
AW: Formel aus Text in Zellinhalt erstellen
12.07.2010 14:57:42
Dogbert
Hallo Franz,
ja, danke, so würde das wohl gehen. Aber ich brauche eine Lösung ohne Makro.
Zudem eine Lösung, die die Berechnung (d.h. die Formel) in Bernd!C8 ändert, wenn ich in Anton!B1 einen anderen Text eintrage.
Gibts da auch was?
Danke!
Gruß
Dogbert
AW: Formel aus Text in Zellinhalt erstellen
12.07.2010 15:25:53
fcs
Hallo Dogbert,
wenn du im Blatt "Bernd" tatsächlich die Formeln ändern willst, dann bist du auf Makros angewiesen.
Man kann das noch in soweit automatiseren, dass nach Änderungen in der Zelle Anton!B1 das Makro zum ändern der Formel via Ereignismakro gestartet wird.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
Call Formel_Eintragen
End If
End Sub
Dieses Makro dann im VBA-Projekt unter dem Tabellenblatt "Anton" einfügen.
Das zuvor gepostete Makro gehört in ein allgemeines Modul.
Gruß
Franz
Anzeige
Excel4-MAKRO-Funktion AUSWERTEN()
12.07.2010 15:00:32
NoNet
Hallo Dagobert,
nur mit einer Excel-Tabellenblatfunktion ist das nicht lösbar, allerdings über einen Bereichsnamen mit Bezug auf eine sog. Excel4-Makrofunktion :
- Aktiviere das Blatt "Bernd", dort Zelle B1 (Wenn in A1 der erste Text steht)
- Definiere per Strg+F3 folgenden Namen :
Name : Formel
Bezieht sich auf : =AUSWERTEN("="&A1)+0*JETZT()
- Bestätige mit "Hinzufügen - OK"
- Gib nun im Blatt "Bernd", Zelle B1 folgenden Bezug ein : =Formel und kopiere ihn nach unten
Der Zusatz +0*JETZT() bewirkt übrigens lediglich, dass sich das Ergebnis anpasst, wenn sich im Blatt "Anton" ein Wert ändert. Ohne diesen Zusatz wäre das nicht der Fall !
Userbild
Gruß, NoNet
Anzeige
AW: Excel4-MAKRO-Funktion AUSWERTEN()
12.07.2010 15:28:26
Dogbert
Danke! Das klappt grundsätzlich.
Aber noch zwei Fragen:
1) Wieso klappt "Auswerten" denn nur, wenn ich es über eine Namensdefinition mache? Ich habe mal einfach so "=Auswerten(...)" in eine Zelle eingegeben, das ging nicht.
2) Was ist ein Excel4-Makro? Bedeutet dies, dass dies eine veraltete Funktion ist, die ggf. künftig (Office 2010?) nicht mehr unterstützt wird?
Danke!!!
Gruß
Dogbert
Anzeige
Excel4-MAKRO-Funktionen
12.07.2010 15:50:09
NoNet
Hallo Dagobert,
ich hatte ja bereits geschrieben, dass es sich NICHT um eine Tabellenblatt-Funktion handelt, daher kann man auch nicht einfach =AUSWERTEN(...) in ein Tabellenblatt eingeben - Excel quittiert das mit einer echten Fehlermeldung (und nicht nur mit einem Fehlerwert #NAME? in der Zelle).
Excel4-Makrofunktion stammen noch - wie der Name bereits aussagt - aus älteren Excel-Versionen, aus der Zeit als man Automatisierungen noch per MAKROS lösen musste. Diese Makros wurden später durch VBA abgelöst (zunächst auch in einer regionalisierten - also z.B. DEUTSCHEN - Sprachversion, später nur noch auf englisch).
Verwenden kann man diese Excel4-Makrofunktionen m.E. nur in Namensdefinitionen, in Excel4-Makroblättern und in VBA (Funktion ExcecuteExcel4Macro()).
Ob MS die Excel4-Makros irgendwann abschaffen wird ? - Das glaube ich weniger, denn diese sind nach wie vor integraler Bestandteil von Excel und funktionieren auch in der neuesten XL-Version (Excel 2010) nach wie vor. Viele Dinge sind in Excel nur per VBA oder Excel4-Makro-Funktion lösbar und nicht per Tabellenblattfunktion, daher glaube ich nicht, dass MS diese irgendwann verbannen wird.
Allerdings muss ich gestehen, dass auch ICH nicht der "Microsoft Leading Product Manager" bin und daher weder Einsicht noch Einfluss auf die zukünftige MS-Produktstrategie habe ;-))
Übrigens : Per Strg+F11 kann man in die Mappe ein sog. "Makroblatt" einfügen, das zwar optisch ähnlich wie ein Tabellenblatt aussieht, aber es erscheint nicht im VB-Projekt-Explorer (obwohl es bei Sheets.Count mitgezählt wird !) und hier kann man auch keine Formeln/Funktionen/Bezüge eingeben, sondern nur Excel-MAKROS (keine VBA Makros !) und man kann diese Zelle auch nicht formatieren (zumindest nicht das "Zahlenformat", denn es handelt sich ja nicht um "Zahlen" im Excel-Sinne...).
Noch ein paar Anwendungsbeispiele mit Excel4-Makrofunktionen findest Du z.B. hier :
http://www.excelformeln.de/formeln.html?gruppe=17
Gruß, NoNet
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Formel aus Text in Zellinhalt erstellen


Schritt-für-Schritt-Anleitung

Um eine Excel-Formel aus Text zu erstellen, befolge diese Schritte:

  1. Öffne dein Excel-Dokument und gehe zu dem Arbeitsblatt "Anton", wo die Formeln als Text in Zelle B1 gespeichert sind.

  2. Aktiviere das Arbeitsblatt "Bernd" und wähle die Zelle C8 aus, wo die Formel erscheinen soll.

  3. Verwende das folgende VBA-Makro, um den Text aus Anton!B1 als Formel in Bernd!C8 einzufügen:

    Sub Formel_Eintragen()
       Dim wksB As Worksheet
       Dim wksA As Worksheet
       Set wksA = Worksheets("Anton")
       Set wksB = Worksheets("Bernd")
       wksB.Range("C8").FormulaLocal = "=" & wksA.Range("B1").Text
    End Sub
  4. Führe das Makro aus. Du wirst sehen, dass die Formel in C8 jetzt aktiv ist.

  5. Um die Formel dynamisch zu halten, kannst du ein Ereignismakro hinzufügen, das das vorherige Makro ausführt, wenn sich der Text in Anton!B1 ändert:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address = "$B$1" Then
           Call Formel_Eintragen
       End If
    End Sub

Häufige Fehler und Lösungen

  • Fehler: "#NAME?" in der Zelle
    Dies geschieht, wenn die Formel nicht korrekt interpretiert wird. Stelle sicher, dass der Text in Anton!B1 eine gültige Excel-Formel ist.

  • Fehler: Zelle wird nicht aktualisiert
    Wenn die Zelle C8 nach einer Änderung in B1 nicht aktualisiert wird, überprüfe, ob das Ereignismakro korrekt implementiert ist.


Alternative Methoden

Falls du keine Makros verwenden möchtest, kannst du die Excel4-Makrofunktion AUSWERTEN nutzen:

  1. Aktiviere das Blatt "Bernd" und gehe zu Zelle B1.
  2. Definiere einen Namen über Strg+F3:
    • Name: Formel
    • Bezieht sich auf: =AUSWERTEN("="&A1)+0*JETZT()
  3. In Zelle B1 kannst du nun einfach =Formel verwenden. Diese Methode erfordert, dass der Text in A1 eine gültige Formel darstellt.

Praktische Beispiele

  • Mittelwert berechnen: Wenn in Anton!B1 der Text Mittelwert(Anton!A1:A10) steht, wird in Bernd!C8 der Mittelwert des Bereichs A1:A10 berechnet.
  • Addition durchführen: Der Text Anton!A8+2*Anton!A3-Anton!A7 in Anton!B1 wird in Bernd!C8 als Addition interpretiert.

Tipps für Profis

  • Das Dollarzeichen ($) in Formeln: Wenn du absolute Verweise in deinen Formeln benötigst, achte darauf, das Dollarzeichen korrekt zu verwenden.
  • Zelleninhalt als Text in eine Formel einfügen: Um Text und Formel zu kombinieren, kannst du den Text direkt in die Formel einbinden, z.B. ="Das Ergebnis ist: "&Mittelwert(Anton!A1:A10).

FAQ: Häufige Fragen

1. Wieso klappt die Funktion AUSWERTEN nur über eine Namensdefinition?
Die Funktion ist keine reguläre Tabellenblattfunktion. Daher kann sie nicht direkt in eine Zelle eingegeben werden.

2. Was ist eine Excel4-Makrofunktion?
Das sind Funktionen, die aus älteren Excel-Versionen stammen. Sie werden häufig in Namensdefinitionen oder VBA verwendet, um spezifische Aufgaben zu automatisieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige