- ベストアンサー
エクセル CONCATENATE関数
エクセル2003のCONCATENATE関数で作ったテキストを関数化(数式化)できないでしょうか。 たとえば、C3のセルに下のCONCATENATE関数を入れ =CONCATENATE(D3,E3,F3) 文字列"=sum(A1:A10)" を表示させ、 その後CONCATENATE関数をのぞき、=sum(A1:A10)を計算させたいのです。 CONCATENATE関数で合成されたセルをコピーし、形式を選択して貼り付けから値だけを貼り付けても、なぜかうまくいきません。 =sum(A1:A10)とC3に表示され、計算は実行されません。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ユーザー定義関数で標準モジュールに Function eval(str As String) eval = Evaluate(str) End Function とすれば 適当なセルで =eval(C3) とすればC3 の式を計算させることができます。
その他の回答 (4)
- mshr1962
- ベストアンサー率39% (7417/18945)
>=sum(A1:A10)とC3に表示され、計算は実行されません。 貼り付けた時点では数式でなく文字列と解釈されるからです。 一つだけなら、F2キーで編集モードにしてEnterで抜ける。 多数あるなら「編集」「置換」で 検索する文字列「=」、置換後の文字列「=」で「すべて置換」
お礼
ありがとうございます。 こんな簡単な方法があったんですね。 ためになりました。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 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個の合計の値)をグラフ化です。 これは、単に、その合計値をグラフのデータ範囲にすればよいと思います。
お礼
CONCATENATE関数のうんちくとても面白いです。 同じ結果を求めるのにもいろんな方法があって面白いですね。 =SUM(OFFSET($A$1,(ROW(A1)-1)*100,0,100)) この式は知的なセンスを感じます。
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をずらずら書くと。 それより、そもそも何が目的なの?
お礼
回答ありがとうございます。 やりたいのは 1、A1からA50000ぐらいまで入っている数値を100個づつ合計 2、500個(100個の合計の値)をグラフ化です。
- telescope
- ベストアンサー率54% (1069/1958)
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セルまでの合計が表示されます。 式を入力するときは、「文字列」にしないで入力してください。
お礼
かいとうありがとうございます。 ただ、=SUM(A1:A10)と表示されているセルをダブルクリックしフォーカスをあて、エンターをおすとなぜか計算されるんですよね。
お礼
でキター(゜∀゜)ーー 回答ありがとうございます。 ユーザー定義関数最強。