質問: 【excel】都度、変化する参照データをもとに計算してくれる式について 関数に不慣れなためお伺いできればと存じます。 したいことは以下の通りです。 (1)収支(2)勝率(3)損益比率を出したいと思っています。 その際、参照のために呼び込むデータの行数は毎回決まっていないため、 最終行を指定せずに計算できる式を探しています。 ※参照データを呼び込んだら、予め仕込んである関数によってそのときの最終行までの計算を行ってくれる式 ひとまず、添付画像にあるように 【i列】回収額をもとに(1)収支を出す計算 【j列】収支をもとに(2)勝率を出す計算 【j列】収支をもとに(3)損益比率を出す計算 の関数を作ってみたのですが、(参照する回収額の行数が毎回、決まっていないため) 収支、勝率、損益比率の式をその都度、変化する最終行までのデータをもとに計算を行うようにするにはどのように関数を変えればよいでしょうか。 なお、勝率については収支が0のときは勝ちに含めないため">1"としています。 それぞれ、式が成り立たないためとりあえずの範囲(3行目とか8行目とか)を入力しています。 【i列】 回収 【j列】 収支=i3-h3 【k列】勝率=countif(j$3:j3,">1")/counta(j$3:j3)*100 ※0は勝ちに含めません 【l列】損益比率 =averageif(j$3:j8,">0")/-averageif(j$3:j8,"<0") ご査収いただけますと幸いです。
回答: こんにちは 損益比率以外の計算式は行数には関係のない式になっているので、あらかじめセットしておいても問題はないと思われます。 その際に、データの無い行にも計算結果が表示されるのが嫌でしょうから、例えばj列なら =if(h3,i3-h3,"") のような式にして、あらかじめ十分下方の行までフィルコピーしておくことで、h列の値が存在しない行は空白表示になります。(k列も同様) 「損益比率」は何を計算したいのか(6回先までを含めた平均???)よくわかりませんが、現状の式が正しいのであれば、上記の考えをそのまま応用すればよろしいかと。 もしも、列全体の平均を求めたいのであるなら、範囲指定を列全体(j:j)にしておけば良いですが、その場合は、各行とも全て同じ値になるので、同じ内容を何度も表示する必要はなく、1か所に表示しておくだけで十分ですね。