テキスト表現を評価する

テキスト表現を評価する

先頭に一重引用符が付いたテキスト式 '-a+b があります。その後、画像のように置換されます。このように表示するのではなく、式を黄色で評価 (4 に評価) したいと思います。どうすればいいですか? 関数の評価を試しましたが、関数は私のバージョン (Excel 2019) に存在しません。

ここに画像の説明を入力してください

答え1

ルックアップ値を選択するには、次のものを使用して、必要に応じて調整することができます。(たとえば、「a」と「b」だけでなく、10 個の変数がある場合があります。) 他の式を評価する必要がある場合は、演算子と負の符号を調整する必要がある場合もあります。

=-HLOOKUP("a",$A$77:$D$78,2,FALSE)+HLOOKUP("b",$A$77:$D$78,2,FALSE)

上記は、正確な変数セットと正確な式を前提とした単純なバージョンです。

`EVALUATE()~で解決策を探したと述べているので、興味深いメモです。するその数式にアクセスできません。問題が発生するのは、それが「セル側」(開いているスプレッドシート内)では機能しないということです。名前付き範囲機能でのみ使用できます。

名前付き範囲(おそらく「回答」)を作成し、「参照先」ボックスで次の数式を使用するというアイデアです。

=EVALUATE(-a+b)

その中の「a」と「b」を、上記の式の対応する部分に置き換えるか、名前付き範囲として定義する必要があります。個人的には後者の方が好きですが、一部の単一文字、たとえば「c」は使用できません (R1C1 アドレス指定スタイルの「C」と競合します。「r」も同様です)。SUBSTITUTE()セルからの生の入力を使用して、「AA」などの名前付き範囲に名前を付けることができます。または、Excel で直接使用できないものだけを使用することもできます。

EVALUATE()他の場所で解決策を見つけて、それを機能させる必要があるだけだと思いますので、これの重要な要素は次のとおりです。

EVALUATE() は名前付き範囲で使用する必要があります。そうしないと機能しません。また、名前付き範囲機能内で使用する限り、一部のユーザーだけでなく、誰でも使用できます。

古い Excel 4 マクロはすべて、名前付き範囲でのみ使用できますが、スプレッドシート自体のセルでは使用できません。

答え2

試す......

データはA2:D3

ではB6、数式がコピーされました:

=IMREAL(IMDIV(SUBSTITUTE(SUBSTITUTE(A6,MID(A6,2,1),HLOOKUP(MID(A6,2,1),A$2:D$3,2,0)),MID(A6,4,1),HLOOKUP(MID(A6,4,1),A$2:D$3,2,0))&"i","1+i"))*2

ここに画像の説明を入力してください

関連情報