Ich versuche, einen logischen Ausdruck durch Verketten der Operanden und Operator zu bewerten. Gibt es eine Formel, die in Excel 2016 von Text in logisch konvertiert wird, ähnlich wie VALUE()
von Text in Zahl konvertiert? Ich suche nach einer Lösung dafür, damit ich die Bedingung dynamisch ändern kann, ohne die tatsächliche Excel-Formel zu ändern. Ich habe die Excel-Funktionsbeschreibungen durchsucht und durchgelesen, aber als Lösung springt nichts heraus.Excel Text als logisch
'The operands and operator
A1: 1
A2: >
A3: 0
'Concatenation
B4: =CONCAT(A1:A3) 'This evaluates to 1>0
B5: =A1&A2&A3 'This also evaluates to 1>0
'Some checks
C4: =ISTEXT(B4) 'This evaluates to TRUE.
C5: =ISTEXT(B5) 'This also evaluates to TRUE
D4: =ISLOGICAL(B4) 'This evaluates to FALSE
D5: =ISLOGICAL(B5) 'This also evaluates to FALSE
'Vain attempts
E4: =AND(B4,TRUE) 'This ALWAYS is TRUE, even when my desired output is FALSE
E5: =OR(B5) 'This spits out a #VALUE! error
Da ich bin auf der Suche nach etwas dynamischer, möchte ich wie
=IF(A2=">",A1>A3,FALSE)
eine Lösung zu vermeiden. Ich würde es auch vorziehen, eine UDF zu vermeiden, bin aber bereit, diese Route zu gehen, wenn keine eingebaute Funktion existiert, um einen logischen Ausdruck in Text zu konvertieren und ihn als logisch auszuwerten.
Wenn Sie sich entscheiden Sie Um die UDF-Route zu bekommen, wird dies tun 'Funktion Eval (r als Bereich) als Variante Eval = r.Worksheet.Evaluate (r.Value) Ende Funktion' –
Nein, keine eingebaute Funktion existiert. UDF ist die beste Route. –
+1 @chrisneilsen. Ich hatte mit einer UDF begonnen, aber ich tat es auf die harte Tour. Ihr eleganter One-Liner funktioniert perfekt. Ich habe es in meiner Antwort unten verwendet, die einen Ausdruck oder einen Excel-Bereich als Eingabe akzeptieren kann. –