• ベストアンサー

エクセルで計算結果に基づいてセルを参照するには

C1:C100までの数字の平均を求めたくてセルに以下の式を入力しましたがエラーになってしまいました。 =average(address(1,3):address(100,3)) もちろんaverage(c1:c100)なら動くのですがこれでは駄目なのです。 上記の1,3,100といった数字の所は実際にはただの数字ではなく計算式で求めたものを使いたいのです。 VBAを使わずにやるにはどうすればよろしいでしょうか。 よろしくお願い致します。

  • katio
  • お礼率78% (45/57)

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

具体的に「1や3や100」にどんな内容を与える用意があるのかに応じて,INDIRECT関数,OFFSET関数,INDEX関数などを工夫して。 A1に1, B1に100 C1に3 と用意をしているなら 一例として =AVERAGE(OFFSET($A$1,A1-1,C1-1,B1,1)) などのように計算できます。 それぞれの数字が実際に具体的に何を意味しているのか(たとえば100とは「終わりは100行目」なのか,それとも「所定開始行から100個」なのか等)に応じて,更に工夫が必要です。

katio
質問者

お礼

お返事どうもありがとうございました。 大変参考になりました。 VBAを使わないと無理だと思っていたのですがやはり出来るのですね。。 お礼が遅れてすいませんでした。 VBAで書くしか無いと思ってVBAで書き、それがあまりに遅かったので結局Cで書き直し、とりあえずの目的は達成したため、ここ(goo)に質問をしたこともすっかり忘れてしまっていました。

その他の回答 (2)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.3

演算記号なしに関数を並べてはその値をどうして 良いのやらExcelは途方に暮れてしまいます ところでaddress構文の戻り値は「文字列」です あと「:」も文字列であるべきものですが こういった場合は「"」でくくる必要があります でないとExcelは定義された演算子として処理しようとします 「:」はこの部位として相応しくない演算子(文字)ですので Excelは当然不服を申し立ててくるわけです お気を付けくださいね さて、 文字列を順に結合するには"&"演算子を使うか コンカチネート関数を使うかが一般的ですね ですので今回は =average(address(1,3)&":"&address(100,3)) とされてみては如何でしょうか 御役に立てたなら幸いです

katio
質問者

お礼

お返事どうもありがとうございました。

noname#204879
noname#204879
回答No.2

=AVERAGE(INDIRECT(ADDRESS(1,3)&":"&ADDRESS(100,3)))

katio
質問者

お礼

お返事どうもありがとうございました。

関連するQ&A

  • エクセル:セルの右下を引っ張っても計算をしてくれない

    例えば、B,C,D列の2つの数字を足したいとき、 B C D 2 4 6 1 3 5 b c d bのセルに ”= 2[セル指定] + 1[セル指定]” の式を入力し計算をさせ、その後はbのセルの右下を Dまで引っ張っると、自動的に   c = 4 + 3 d = 6 + 5 という風になり、c~dに計算式を入力しなくても、 計算してくれていたのに、 今朝から計算が出来なくなってしまっています。 今の状況は、 b:通常通り計算する c:セル内の式は、c式が書かれているものの、結果はb d:セル内の式は、d式が書かれているものの、結果はb しかし、c~dのセルをダブルクリックして、 リターンを押すと、正常な計算をしてくれます。 これは、なにかエクセルの設定をかえたら直りますか? 教えてください。お願いします。

  • EXCELのセルにある計算式だけを消したい。

     例えば、C1セルに =A1+B1 の計算式があるとします。 この時、A1セルとB1セルの数字を消しても、C1セルにはそのまま数字を残すにはどうすればいいのですか? C1セルの計算式を扱うとおかしくなるし、A1・B1の数字を消したらC1まで消えてしまいます。 手入力になるとデータが多すぎて・・・ EXCELは2000・2002です。 

  • エクセルのセル範囲内計算

    初歩的な質問で、すいません。 エクセルなのですが、例えばB1からB10まで数値を入力したとします。 B11には、B1からB10までの平均値(AVERAGE関数により算出)を表示するようにしています。 そこでなのですが、AVERAGE関数を設定すると、B1からB10までの間全部の数値が入力されていなくても計算されるのですが、B1からB10全てのセルに数値が入力されていないと計算されないようにしたいのです。 マクロは、まだ使えるとこまでいっていないので、マクロを使わないで計算表示される方法お分かりの方、教えていただきたいです。宜しくお願いします。

  • エクセルで「2」などの入ったセルを数字として計算させる方法

    エクセルにおいて「2」などの入ったセルを数字として計算させる方法を教えてください いわゆる A B C 1 3 2 4 3 2 4「4」 5「2」 6 などの表で A6に =SUM(A1:A6) と入力すると9と表示されるのですが 「4」などカッコに囲まれた数字を計算できる数値させるようにする方法 これでしたら 15と出てくるようにするにはどうすればいいのでしょうか。 あの「4」など入ったセルの値およびタダの数値に変換せずに、あくまで「」の中に数字を入れた状態でできるようお願いします。 できますのでしょうか おしえてください ヨロシクお願いします。

  • エクセルについて

    エクセルでいわゆるA1のセルにいわゆる+5.09とはいッていて(単純に+プラスなしで5.09ですが)A2のセルに-4.09と入力してあッてA3のセルに-2.09と入力してある場合で、3つの数字のいわゆる合計すると5.09-4.09-2.09で-1.09になりますが、この-1.09を求めたい場合にどのような計算式を入力すれば簡単にもとめられますか?たとえば平均を求めたい場合はAVERAGE を利用すれば簡単に平均がもとめられますが、さきほどの計算式がワからる人はおしえてもらいたいのですが、お願いします。

  • エクセル VBAにおける平均計算につきまして

    エクセルにおけるVBAの平均計算に対するプログラミングについて教えてください。 内容としては、 ある列に対して(ここではA列とします)数値が入力されており、 その入力されている範囲は毎回入力する度、入力範囲がまちまちになっているとします。 その「まちまちな入力範囲に対して」平均値をVBAにて求めたい場合、 Averageにて範囲指定を入力する際に、どのようにプログラミングすればよろしいのでしょうか? ※具体的にはA列の「数値が入力されているアクティブなセル」を指定したいのですか、どうすればよいでしょうか? 回答をお願い致します。

  • エクセル セル参照

    A1セルには1~20までの任意の数を入力します B1には文字列を入力します。 A1に入力された数によって、B1セルの文字列の内容をC1~C10の各セルにコピーするにはどうしたらよいでしょうか。 たとえば、A1が3のとき、B1の文字列をC3にコピーしたい。 VBAでもかまいません。 お願いします。

  • 一つのセルに関数計算式と数字を入れたいです

    エクセルの質問です一つのセルに関数計算式と数字を入れる様にすることは可能でしょうか? 例えば そのセルに何も入力しないと、他のセルとの計算結果が表示され、数字が入力されると、その数字を元に他のセルへ計算結果が出る様にしたいのですが、A1のセルに何も数字を入力しないと、計算式でA1は=B1/C1の%表示で、A1に数字を入力すると、その数字を元にB1は=C1*A1の計算結果を反映させたいのですが、よろしくお願いします

  • 関数がかかっているセルの数値に関数を・・・

    以前、下記の「平均の出し方を教えて下さい」で質問したものですが、 対象のセルA1~A10には、それぞれ C1-B1 のような関数(計算式) がかかっています。 これに「AVERAGE」をかけるとただしく出ません。 数値だけを認識させて、AVERAGEを出すにはどうしたらいいのでしょうか? よろしくお願いいたします。 --------------------------------------------- (以前の質問) エクセルでの関数を教えてください。 セルa1からa10に順に数値を記入します。 入力がa3やa7までの途中であっても=残りが未入力であっても a11に平均を自動的に(一つ入力が増えるたびに)出したいです。 a11にどのような式を入れたらいいのでしょうか? よろしくお願いいたします。 投稿日時 - 2014-05-02 18:52:39

  • Excelの計算式を一緒に考えてください

    Excelの計算式を一緒に考えてください A1:G1まで、7.6、5.4などの少数点を含む数字が入力されている表で、H1に3.5と4.1の場合は、何もせず れ以外の数字の時に7.6を引いた和をだしたいのです。1つのセルについては右のような式になりますが、 =IF(A1=3.5,"",IF(A1=4.1,"",A1-7.6) このA1:G1までの和をH1一つのセルで行いたいのですがどのような式にしたら良いのでしょうか。 また、式が配列になった場合、カッコが{}となるとおもうのですが、VBAでR1C1形式の式にした時、普通に"={" & とつなぐような形で式が有効になるのでしょうか。宜しくお願い致します。

専門家に質問してみよう