過去5年間の年平均伸長率を関数で計算したいのですが、各年の伸び率に
プラス・マイナスが混ざっているためにうまく計算できません。
どうすればいいのでしょうか?

1年目 +1.5%、2年目 -2.4%、3年目 +0.8%、4年目 +1.4%、5年目 -0.3%

このQ&Aに関連する最新のQ&A

A 回答 (5件)

0年目を1とすれば 5年後は =(1+0.015)*(1-0.024)*(1+0.008)*(1+0.014)*(1-0.003) すなわち 1.0095073 になります。

この5乗根を求めればいいことになります。つまり =power(1.0095073,1/5) を計算した1.001894すなわち解答は 0.1894% となります。+1.5%などがどのような形式で入力されているかわかりませんので、考え方だけを記しました。
    • good
    • 0

こんにちは



 以下のページがご参考になるのでは?

【エクセル技道場】-関数-幾何平均
http://www2.odn.ne.jp/excel/waza/function.html#S …

参考URL:http://www2.odn.ne.jp/excel/waza/function.html#S …
    • good
    • 0

生データがどのようなものか、見ていませんので具体的な方法は回答できません。



各年のデータ数が同じだとしたら、単純な伸長率の足し算でいいのですが、データ数が異なっていれば加重平均で算出すべきでしょう。

単純な方法としては、1年目と5年目の比較における伸長率/5が、過去5年間の平均伸長率となるのではないでしょうか。
    • good
    • 0

今晩は!


どのような関数を使いましたか?
どうして、うまく計算できないでしょう?

SUM関数を使ってはダメでしたか?

Excel2000?ですか?
    • good
    • 0

仮に、データがA1からE1に入力されているとして、


F1にでもアベレージ関数(例↓)を入力してやると、

=AVERAGE(A1:E1)

計算結果は、0.2%と出ますが、これではいけないのでしょうか?
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Aベストアンサー

左側に1列挿入して、その列に「1,2,3,4,5,1,2,3・・・」と縦に数字を入れます。
縦計を取りたいセルで、
=SUMIF(A1:B20,1,B1:D20) 
のように入力すると、B1,B6,B11,B16のセル計が取れます。
同様に検索条件の「1」を「2」に変えると、
B2,B7,B12,B17のセル計が取れます。

この関数の意味は
=SUMIF(範囲、検索条件、合計範囲)です。

QエクセルVBAで、C言語のscanf("%dxxx%dto%d"&a,

エクセルVBAで、C言語のscanf("%dxxx%dto%d"&a,&b,&c);をする方法

現在、エクセルVBAに挑戦しています。
C言語は少しだけ経験がありますが、他の言語は経験ありません。

エクセルVBAで、C言語のscanf("%dxxx%dto%d"&a,&b,&c);にあたる読み取りを、指定したセルに対して行いたいのですが、どのようにすればよいでしょうか?

ちなみにすべての%dは桁数が変わるため、右から何文字とかでは対応できません。


それと、蛇足質問を2つさせてください。こちらは回答いただかなくてもかまいません。、

セルを参照するときに、Range("A1:B2")で、データを取得しますが、A1:B2の部分を変数にすることはできないのでしょうか?

これはchr(64)+iで解決できたので、良いと言えば良いのですが、もっと標準的と感じられるしっくりくる方法があればいいのですが・・・

それからもうひとつ。VBAで参照するセルを指定した後に、シート上で行や列の挿入・削除を行うと、参照先のセルが変わってしまいますが、通常のシート上でのSUM(A1:A3)がA列に列を挿入するとSUM(B1:B3)になるように、VBAでも連動はできないのでしょうか?

エクセルは使いやすくて便利ですが、自由度が高いだけに難しいですね。
めんどくさく感じたCの型縛りが実は使いやすく感じる今日この頃です。

お忙しい中とは思いますが、よろしくお願いします。

エクセルVBAで、C言語のscanf("%dxxx%dto%d"&a,&b,&c);をする方法

現在、エクセルVBAに挑戦しています。
C言語は少しだけ経験がありますが、他の言語は経験ありません。

エクセルVBAで、C言語のscanf("%dxxx%dto%d"&a,&b,&c);にあたる読み取りを、指定したセルに対して行いたいのですが、どのようにすればよいでしょうか?

ちなみにすべての%dは桁数が変わるため、右から何文字とかでは対応できません。


それと、蛇足質問を2つさせてください。こちらは回答いただかなくてもかまいません。、

セルを参照...続きを読む

Aベストアンサー

scanfはCの最初に出てくる関数ですが、実際はポインタ
を理解していないとその中身は初級
でも理解しにくい関数です。そのポインタについて、
エクセルVBA、あるいは他のVBAやVBも含めて、
メモリ上のポインタを取得して云々という概念は
ほぼ無い(厳密にはないとは言えませんが)、
あるいは直接扱うことはない、
ということです。もちろんポインタやアドレス関して
アドレスの取得関数などは存在しますが、
http://support.microsoft.com/kb/199824/ja
(表示されている関数はNETではなくなりますが、
Excel、Accessなどではまだ使えるようです)
これらは質問者さんの考えているものには
使えない、と考えてください。したがって、VBAやVB
ではコンソールプログラミングの概念を
一度はずして取り掛かるのがいいのでは
と思います。もちろん、フロー制御や
いろいろなアルゴリズムは概念として
は同じだと考えていいのではないでしょうか。
もちろん、Cはウィンドウを作ろうと思えば
作れるのでCがコンソールだけだとは言いませんが。
質問のニュアンスでは一応このようにしておきます。
VBAではポインタを意識することはまずありません。
しかし、ポインタの考えはどの言語においても
重要です。

したがって、scanfのようにポインタが指す
オブジェクトに、標準入力から読み込んだ値を入れる
関数は存在しない、と考えてください。
セル、あるいはフォームのテキストボックスなどの
オブジェクトに値(数値、文字、文字など)を入力し
受け取り、加工または指定変数に入れ加工と考えてください。

型の厳密さについては本来は同じだと思ってください。
参照渡し、値渡し、変数の型宣言なども明示的に
行なうのが原則で、はずれればエラーが出ますし、
結果が違ってきます。プログラムで型の間違い
、あるいは変数宣言しないでエラーがでるはずの
コードがエラーなしで実行できるかのようなコード
をこのOKWAVEでも見ます。たぶん、Option Explicit
をコードに表示せずにコンパイルしているのではと思います。

ただ、Variant型については少し研究してみて
ください。便利ですが、多用すると
どんぶり勘定になります。
また、Variantでなければならない、という場面も
あります。

それと、ついでに、メモリリークの回避、
あるいは、OSにプロセスを残してしまう
ことでのトラブルなどの回避のために、
コードの終わりに不必要なメモリ上の
オブジェクトの終了、削除はこまめに
行なう、という習慣も大事です。

VBAに似た言語で型宣言をしないVBScriptのようなものも
ありますが、ここでは割愛。

scanfはCの最初に出てくる関数ですが、実際はポインタ
を理解していないとその中身は初級
でも理解しにくい関数です。そのポインタについて、
エクセルVBA、あるいは他のVBAやVBも含めて、
メモリ上のポインタを取得して云々という概念は
ほぼ無い(厳密にはないとは言えませんが)、
あるいは直接扱うことはない、
ということです。もちろんポインタやアドレス関して
アドレスの取得関数などは存在しますが、
http://support.microsoft.com/kb/199824/ja
(表示されている関数はNETではなくなりますが、
Excel、Acce...続きを読む

Qエクセルで0.1という数字を%表示で0.1%としたい。1%にしたくない。どうしたら?

エクセルで0.1という数字を%表示で0.1%としたいのですが、
セルの書式設定でパーセンテージ表示にすると、
百分率で計算されて、1%となってしまいます。
本来これでよいのですが、
今回、そのままの表示0.1%としたいのですが、
1番スムーズにできる方法を教えていただけますでしょうか。

とりあえず、0.1を文字列に変換し(●と仮定)、隣に%だけのセルを作り(▼と仮定)し、さらに=CONCATENATE(●,▼)と計算式を入れて表示させているのですが、大量でバラバラにデータがあるため、大変時間がかかってしまっています。

お分かりになる方がいらしたらよろしくお願いいたします。

Aベストアンサー

セルの書式を以下にしたらどうでしょう。「0.1%」と表示されるはずです
 0.0"%"

QExcel 2003でなぜ3+3+3+3=13!?

表を作っています。
あちこちに小計とか合計とかあってExcelは重宝なのですが,なぜか計算間違いをしています。
原因と対策を教えてください。
【現状】
4つのセルの計算をしました。
横に連続して並んだ4つのセルです。答の欄は5つめのセルです。
4つのセルに「3」が入っています。
3×4=12ですよね。
ところがΣを押して合計を出すとなぜか「13」が出るのです。
ちなみにセルに入ってる「3」は「=H35*H30/H31」という数式から出た数字です。(他の3も同じような数式から出ています)
【質問」
1 なぜ3+3+3+3=13になってしまうのでしょうか?その原因を教えてください。
2 正しい答はどうしたら出るのでしょうか。教えてください。
以上,よろしくお願いいたします。
お答えくださる皆さんに感謝いたします。

Aベストアンサー

1.原因?
3+3+3+3ではないから
本当は 3.3+3.3+3.3+3.3 なのかもしれません

数字の表示桁を増やしてみてください
小数点以下の数字が現れるはずです


2.正しい答え
オプションの計算にある「表示桁で計算する」のチェックマークを入れるとよいでしょう
ただし、演算の精度が落ちることがあります

あるいは
3と表示されているセルに関数を加える
 =INT(H35*H30/H31)
などとする

Q【EXCEL】数式=SUM(A1*B1+A2*B2+・・・+A100*B100)を簡略化したい

お世話になります。

今Excelで、A1~A100とB1~B100まで数値が入っています。
セルC1に「=A1×b1」、C2に「=A2*B2」…C100に「=A100*B100」と入力しました。
そしてセルC101に「SUM(C1:C100)」と入力して合計を出しました。
(実際はもっと複雑な計算なのですが、説明の為に簡略化しています)

そうすると、計算結果セルが多く発生するためファイルサイズが莫大になってしまうのと、それを数千行×6列以上を一気に計算するとXPのリソースが足りないと出て計算できません。
なので2~3列ずつ何回も数式コピペを繰り返すことになっています。

そこで【別セルに掛け算をしてから全部SUMで足す】のではなく【1つのセルに掛け算とSUMを組み込む】という事を考えて
=SUM(A1*B1+A2*B2+・・・+A100*B100)を
を入力しようとしたのですが、数式が長すぎて四苦八苦です。

この式、なんとか簡略化できませんか?

Aベストアンサー

積の合計なら
=SUMPRODUCT(A1:A100,B1:B100)
でいいのでは?


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報