• ベストアンサー

エクセル CONCATENATE関数

エクセル2003のCONCATENATE関数で作ったテキストを関数化(数式化)できないでしょうか。 たとえば、C3のセルに下のCONCATENATE関数を入れ =CONCATENATE(D3,E3,F3) 文字列"=sum(A1:A10)" を表示させ、 その後CONCATENATE関数をのぞき、=sum(A1:A10)を計算させたいのです。 CONCATENATE関数で合成されたセルをコピーし、形式を選択して貼り付けから値だけを貼り付けても、なぜかうまくいきません。 =sum(A1:A10)とC3に表示され、計算は実行されません。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

ユーザー定義関数で標準モジュールに Function eval(str As String) eval = Evaluate(str) End Function とすれば 適当なセルで =eval(C3) とすればC3 の式を計算させることができます。

new3m3u
質問者

お礼

でキター(゜∀゜)ーー 回答ありがとうございます。 ユーザー定義関数最強。

その他の回答 (4)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.5

>=sum(A1:A10)とC3に表示され、計算は実行されません。 貼り付けた時点では数式でなく文字列と解釈されるからです。 一つだけなら、F2キーで編集モードにしてEnterで抜ける。 多数あるなら「編集」「置換」で 検索する文字列「=」、置換後の文字列「=」で「すべて置換」

new3m3u
質問者

お礼

ありがとうございます。 こんな簡単な方法があったんですね。 ためになりました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 CONCATENATE関数 というのは、Lotus 1-2-3 と互換性を持たせるために生まれた関数で、特に、このむずかしい名前の関数を使わなくてはならないという理由はExcel自身にはありません。 単に、「& 」でつなぐだけでよいと思います。 D2: 「A1」 E2: 「:」 F2: 「A10」 =SUM(INDIRECT(D2&E2&F2)) > 1、A1からA50000ぐらいまで入っている数値を100個づつ合計 適当なセルに必要なだけ、フィルダウン・コピー =SUM(OFFSET($A$1,(ROW(A1)-1)*100,0,100)) > 2、500個(100個の合計の値)をグラフ化です。 これは、単に、その合計値をグラフのデータ範囲にすればよいと思います。

new3m3u
質問者

お礼

CONCATENATE関数のうんちくとても面白いです。 同じ結果を求めるのにもいろんな方法があって面白いですね。 =SUM(OFFSET($A$1,(ROW(A1)-1)*100,0,100)) この式は知的なセンスを感じます。

noname#210617
noname#210617
回答No.3

C3を選択して、コピーし、C4に値だけを貼り付ける C4には文字列"=sum(a1:a10)"が貼り付けられる C4を選択して、そのセルの上ではなく、数式バー(fxのとこ)にマウスカーソルを移動し、コピー。 escを押し、C5を選択して数式バー(fxのとこ)にマウスカーソルを移動し、貼り付けし、Returnする。→数式としてC5に入力される。 C5に計算結果が入る E3に"A1", F3に"A10"、C3に=sum(indirect(concatenate(E3,":",F3))) とかではだめなの? "sum"の部分も変えるなら、D3に"sum"でC3に =if(D3="sum",sum(indirect(concatenate(E3,":",f3))),"") のようなIFをずらずら書くと。 それより、そもそも何が目的なの?

new3m3u
質問者

お礼

回答ありがとうございます。 やりたいのは  1、A1からA50000ぐらいまで入っている数値を100個づつ合計  2、500個(100個の合計の値)をグラフ化です。

  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.2

CONCATENATE関数は、文字列を繋ぎあわせる関数です。 形式を選択して貼り付けから値だけを貼り付けても値は文字列です。 ためしに、セルの書式を文字列にして関数を入力してみてください。 (注:試すときは、C3以外の空いたセルでやってください) たとえば、 =SUM(A1:A10) と入力しても、計算されません。「=SUM(A1:A10)」という文字が表示されるだけです。 D3、E3、F3には何が入力されているのでしょう? D3に「a1」、E3に「a10」が入力されているとして、 C3に =SUM(INDIRECT(D3&":"&E3)) と式を入力すれば、A1セルからA10セルまでの合計が表示されます。 D3に「a」、E3に「1」、F3に「10」が入力されているとして、 =SUM(INDIRECT(D3&E3&":"&D3&F3)) と式を入力すれば、A1セルからA10セルまでの合計が表示されます。 式を入力するときは、「文字列」にしないで入力してください。

new3m3u
質問者

お礼

かいとうありがとうございます。 ただ、=SUM(A1:A10)と表示されているセルをダブルクリックしフォーカスをあて、エンターをおすとなぜか計算されるんですよね。