Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Operator aus anderen Zelle auslesen
#1
Hallo Leute,

ich schildere mein Probelm: Ich hab vorerst eine Tesliste erstellt, welche ungefähr so aussieht:
A  4
B  5
C  7
...

Jetzt möchte ich woanders eine Formel eingeben, welche die Zelle rechts daneben automatisch einliest und ausrechnet. Die Zelle kann die Formel schon einlesen. Das schaut ungefähr so aus:


=SVERWEIS(TEIL(D1;1;1);$A$1:$B$11;2;FALSCH)&TEIL(D1;2;1)&SVERWEIS(TEIL(D1;3;1);$A$1:$B$11;2;FALSCH)

Die Liste befindet sich in den Spalten A und B und die Formel und ausgerechnete Formel in den Spalten D und E. Das Grüne ist die Auslese für die Variablen und das Rote die für den Operator. Allerdings wird der Operator nicht als dieser angesehen, sondern als String, wodurch nicht die ausgerechnete Formel dasteht sondern die Zahlen für die einzelnen Variablen.

Ein Beispiel:
|    A*B    |    4*5    |      

Eigentlich sollte dastehen:        
|    A*B    |     20     |

Jetzt hab ich eine etwas sehr komplizierten Code für 2 Variablen zusammengeschustert:

=WENN(TEIL(D1;2;1)="*";SVERWEIS(TEIL(D1;1;1);$A$1:$B$11;2;FALSCH)*SVERWEIS(TEIL(D1;3;1);$A$1:$B$11;2;FALSCH);WENN(TEIL(D1;2;1)="+";SVERWEIS(TEIL(D1;1;1);$A$1:$B$11;2;FALSCH)+SVERWEIS(TEIL(D1;3;1);$A$1:$B$11;2;FALSCH);WENN(TEIL(D1;2;1)="-";SVERWEIS(TEIL(D1;1;1);$A$1:$B$11;2;FALSCH)-SVERWEIS(TEIL(D1;3;1);$A$1:$B$11;2;FALSCH);WENN(TEIL(D1;2;1)="/"; SVERWEIS(TEIL(D1;1;1);$A$1:$B$11;2;FALSCH)/SVERWEIS(TEIL(D1;3;1);$A$1:$B$11;2;FALSCH);"unzlässiger Multiplikator"))))


Ein bisschen vereinfacht:
=WENN(TEIL(D1;2;1)="*";SVERWEIS(TEIL(D1;1;1);$A$1:$B$11;2;FALSCH)*SVERWEIS(TEIL(D1;3;1);$A$1:$B$11;2;FALSCH); )

Ich werde ich aber bis zu 10 Variablen brauchen und dann wird es komplett unübersichtlich.

Multiplizieren ohne die Auslese vom Operator funktioniert bestens.
Also:
=SVERWEIS(TEIL(D1;1;1);$A$1:$B$11;2;FALSCH)*SVERWEIS(TEIL(D1;3;1);$A$1:$B$11;2;FALSCH)


Jetzt meine Frage: Wie kann ich den Operator als Operator verwenden, anstatt als String?

lg Wipeout


Angehängte Dateien
.xlsb   Formel.xlsb (Größe: 7,84 KB / Downloads: 8)
Antworten Top
#2
Datei ist nun im Anhang
Antworten Top
#3
Hallo,

dann probier mal das:


.xlsb   Formel.xlsb (Größe: 7,87 KB / Downloads: 6)

geht über Namen!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#4
Hallo Wipeout,

Formeln aus Strings bildest Du mit der Excel4Macro-Funktion AUSWERTEN. Du sieht das, wenn Du in Edgar's Beispiel in den Namensmanager gehst.

Excel bewertet die Funktion als Makro, heißt ja irgendwie auch so Smile Du kannst die Datei daher nicht mehr als xlsx speichern. Entweder nimmst Du xlsb - wie Edgar, oder xlsm.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Hallo,

erstmal Danke an Edgar. Macht das ausrechnen mit zumindestens 2 Variablen weitaus einfacher.

Ich hab mich ehrlich gesagt noch nie mit Makros beschäftigt, deshalb hab ich leider keine Ahnung, was man mit denen machen kann. Ich weiß also nicht was Excel4Macro ist und wie ich es aufrufen kann (angenommen es ist das was ich denke es ist).

Jetzt ist allerdings das Problem, dass ich nur 2 Variablen berechnen kann und nicht beliebig viel. Wie kann ich nun das Makro öffnen und bearbeiten?

Sorry für die dummen Fragen, aber wie gesagt ich hab keinen Plan was man mit denen machen kann.

lg Wipeout
Antworten Top
#6
Hallo,

wie André und ich schon angemerkt haben, geht das über Namen im Namensmanager. Du mußt die Formeln als Namen hinterlegen. Sieh Dir mal mein Beispiel an.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • wipeout
Antworten Top
#7
Hallo Edgar,

Danke! Werde mich mal ein bisschen herumspielen. Falls etwas sinnvolles dabei rauskommt, melde ich micht nochmal.

lg Wipeout
Antworten Top
#8
Hallo Leute,

ich hab es jetzt anders gelöst. Es ist zwar nicht so schön, aber es funktioniert.

Ich habe wieder eine Tabelle gemacht und dann einfach die Zellen der Werte in die Buchstaben umbenannt. Man kann zwar nicht C, R, S und Z verwenden, aber da hab ich dann einfach CC, RR, SS und ZZ hingeschrieben. Im Anhang ist die Datei zum anschauen

lg Wipeout


Angehängte Dateien
.xlsx   Formel 2.xlsx (Größe: 9,38 KB / Downloads: 3)
Antworten Top
#9
Hallo,

wenn Du schon mit Namen arbeitest, dann geht das auch so:

Arbeitsblatt mit dem Namen 'Tabelle1'
 DEF
1A+B99
22*G+(D+5)1313

NameBezug
A=Tabelle1!$B$1
B=Tabelle1!$B$2
D=Tabelle1!$B$4
E=Tabelle1!$B$5
Ergebnis1=AUSWERTEN(Tabelle1!$D1)
G=Tabelle1!$B$7

ZelleFormel
E1=A+B
F1=Ergebnis1
E2=2*G+(D+5)
F2=Ergebnis1
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Ist etwas einfacher, da Du die Formeln nicht jedes mal erstellen mußt.

Warum hast Du soviele Buchstaben, Du brauchst doch nur 9, evtl. 10 Variablen?
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#10
Hallo Edgar,

erstmal wieder danke für den Tipp :19:
ich hab gemeint, dass ich in einer Zelle bis zu 10 Variablen verwenden werde.

lg Wipeout
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste