2016-04-30 8 views
0

MS Excel 2010を使用する:CONCATENATE式を使用して式のように見えるテキスト文字列を作成し、テキスト文字列を式に変換する式が必要になりました。 MS Excelペースト特殊機能またはVBA /マクロを使用せずに。リテラルテキストを式に変換する

例:セルB2に:G2は、テキストが含まれ、セルB4に私はExcelが数式としてこの文字列を解釈し、返す/値を表示したいテキスト文字列

=TRIM(CONCATENATE(B2&" "&C2&" "&D2&" "&E2&" "&F2&" "&G2&" "&H2)) 

を返すCONCATENATEテキスト式を有しますセルB6に:「。常に外に出て成功した人格を探し、それを複製していない...自分でも」 - ブルース・リー

enter image description here

私はINDIRECT式を使用して試行され、成功せず、していませんそれが私の公式なのか、それとも可能ならば確かです。サンプル:セルB6:

=INDIRECT(CONCATENATE("B4")) 
+0

a)[CONCATENATE機能](https://support.office.com/en-gb/article/concatenate-function-870e82a1-d47d-440e-9a77-23e7639eda1d)を正しく使用していません。 b)私は[間接機能](https://support.office.com/en-us/article/indirect-function-21f8bcfc-b174-4a50-9dc6-4dfb5b3361cd)があなたが求めていることをするとは思わないそれの。 – Jeeped

+0

@Jeepedが正しいです。 (B2& ""&C2& ""&D2& ""&E2& ""&F2& "&G2&" "&H2)はすでに連結された文字列なので、何も連結していません。これは正しい方法です:= CONCATENATE(B2、 ""、C2、 ""、D2、 ""、E2、 ""、F2 ""、G2、 "" H2) –

+0

CONCATENATEと "&"は同じですもの。あなたはどちらか一方をする。あなたがやったことは、最初に&を使ってすべてのテキストを結合し、次に連結機能に単一の文字列を単一の文字列に結合するように頼んだ。 –

答えて

0

どうしてそんなことはできませんか?

入れ:セルB6で

=TRIM(CONCATENATE(B2&" "&C2&" "&D2&" "&E2&" "&F2&" "&G2&" "&H2)) 

とセルB4内

=FORMULATEXT(B6) 

+0

私はお詫び申し上げます、私は誤って、実際の数式テキストはここにセルB4にある正しいテキスト文字列を提供していませんでした:= CONCATENATE( "= TRIM(B2&" "&C2&" "&D2&" "&E2&" "&F2&"&G2& "&H2))")は、セルB6の結果を出力する実際の数式に変換する必要があります。これが役に立ちます。 – Miaka3

+0

これは有効な数式ではありません... –

2

1)CONCATENATEと&は同じものです。

=TRIM(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(CONCATENATE(B2)," "),C2)," "),D2)," "),E2)," "),F2)," "),G2)," "),H2)) 

はあなたが機能し、その後、彼はあったようにあなたが昏睡状態のように一緒に参加したいストリングス、すべての分離のためのCONCATENATEを書き出すしようとしている場合:つまり、あなたは文字列として書いた式は、として翻訳することができあなたの質問にコメントで@MarcoVosが指摘:

=CONCATENATE(B2," ",C2," ",D2," ",E2," ",F2," ",G2," ",H2) 

それとも、あなたの数式は、あなたが最初にこのようなからCONCATENATEことなく掲載するもののようになります&のより一般的な形式を使用する場合:

=B2&" "&C2&" "&D2&" "&E2&" "&F2&" "&G2&" "&H2 

最後の2つの式で同じ結果が得られます。

2)INDIRECT関数は、テキストをセル参照またはアドレスに変換します。数式をテキストとして変換せず、数式の結果を吐き出すことはありません。マクロVosの答えは正解です。FORMULATEXT()は、参照セルの数式をテキストまたは文字列として表示します。文字列を指定して文字列を式に変換する必要がある場合は、EVALUATE関数を使用することをお勧めします。あなたは普通のエクセル式からEVALUATEを使うことはできません。あなたは名前付き範囲からでもそれを呼び出すことができます。名前付き範囲を作成します。例えばEvalTextと呼ぶことができます。

=EVALUATE($B$4) 

シート名が自動的に追加されます。

=EvalText 

をし、それがB4の文字列が式のようにうまくいくものは何でも返します。今、あなたのシート上の任意のセルに次のように入力することができます。それは適切なエクセルの式でないならば、それはエラーを吐き出すでしょう。

+0

注目すべき点名前の範囲内のEVALUATE()が自動計算ではないことに気付いています。テキストが変わると自動的に更新されません。セルに移動してF2 Enterキーを押して値を更新する必要があります。 – Rosetta

+0

良いアイデア、私は解決策が好きです – Rosetta

+0

実際には、シートが自動更新に設定されている場合は自動的に更新する必要があります。 –