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の文字列が式のようにうまくいくものは何でも返します。今、あなたのシート上の任意のセルに次のように入力することができます。それは適切なエクセルの式でないならば、それはエラーを吐き出すでしょう。
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
@Jeepedが正しいです。 (B2& ""&C2& ""&D2& ""&E2& ""&F2& "&G2&" "&H2)はすでに連結された文字列なので、何も連結していません。これは正しい方法です:= CONCATENATE(B2、 ""、C2、 ""、D2、 ""、E2、 ""、F2 ""、G2、 "" H2) –
CONCATENATEと "&"は同じですもの。あなたはどちらか一方をする。あなたがやったことは、最初に&を使ってすべてのテキストを結合し、次に連結機能に単一の文字列を単一の文字列に結合するように頼んだ。 –