『最新3回の平均を出したい』(アマゲーマー)
エクセルの学校、というサイトで多くの方が仕事関係の質問をされている中恐縮ですが、私のプレイしているゲームの効率化について相談です。
繰り返しステージをプレイ、ゲームオーバーになっても得た経験値で少しずつ強くなる系のゲームで、
ステージの番号、得た経験値その1、その2などをExcelにまとめています。
ステージごとに平均化をだし、経験値1優先ならステージ〇、経験値2優先ならステージ△といったようにデータ化しているのですが、
もちろん強くなった分前に得られた経験値と最新の経験値には大きく差が発生しており、単純に平均を見るより最新3回の平均が出せればと思っています。
R列に連番、S列にステージNo.、X,Y,Zに平均を出したい数値が載っている場合、
どういった方法があるでしょうか。
AH列に
=S3&"_"&COUNTIF($S$3:S3,S3)
でx回目のステージ◇、というのは表示できています。
また、可能であれば最新3回に加え、全体を通して最新10回、も条件に入れられるとありがたいです。
例 R S X Y AH
連番 ステージ 経験値1 経験値2 回数
1 1 300 2,000 1_1 2 2 400 3,700 2_1 3 2 410 3,800 2_2 4 1 320 2,100 1_2 5 1 330 2,100 1_3 6 3 500 5,000 7 2 420 2,200 8 2 430 2,100 9 3 550 5,000 10 3 600 5,700 11 3 620 5,600 12 3 630 5,200 13 3 650 5,400 14 3 700 5,000 15 1 340 2,000 16 4 800 8,000 17 3 720 5,600 18 4 800 8,000
この場合、
ステージ1の平均は連番15,5,4の平均とし、連番1は最新3回に含まれないため無視する。
また、条件として全体の最新10回、も付け加える場合、連番18までのうち15のみが該当するため15の結果を平均として出す。
ステージ2の平均は連番8,7,3の平均だが、全体の最新10件も付け加える場合、
連番18〜9のうちにステージ2が含まれていないため、参照すべきデータではないとして無視する。
このようなことが可能な関数をアドバイスいただけないでしょうか。
よろしくお願いいたします。
< 使用 Excel:Excel2019、使用 OS:Windows11 >
こういうことでしょうか。
回答の都合上、A列〜H列にして表示します。項目の追加や、列名の変更などそちらで修正下さい。
直近3回のカウントですが、 カウントを開始するのが何回目なのかを別途計算(下記のF列)しておけば、 あとはAVERAGEIFS関数で計算させるだけかと思います。
A列 B C D E F G H 1行目 直近3回の平均値 2 連番 ステージ 経験値1 経験値2 回数 開始回数 経験値1 経験値2 3 1 1 300 2000 1 1 300 2,000 4 2 2 400 3700 1 1 400 3,700 5 3 2 410 3800 2 1 405 3,750 6 4 1 320 2100 2 1 310 2,050 7 5 1 330 2100 3 1 317 2,067 8 6 3 500 5000 1 1 500 5,000 9 7 2 420 2200 3 1 410 3,233 10 8 2 430 2100 4 2 420 2,700 11 9 3 550 5000 2 1 525 5,000 12 10 3 600 5700 3 1 550 5,233 13 11 3 620 5600 4 2 590 5,433 14 12 3 630 5200 5 3 617 5,500 15 13 3 650 5400 6 4 633 5,400 16 14 3 700 5000 7 5 660 5,200 17 15 1 340 2000 4 2 330 2,067 18 16 4 800 8000 1 1 800 8,000 19 17 3 720 5600 8 6 690 5,333 20 18 4 800 8000 2 1 800 8,000
【式の設定】 E3 =COUNTIF($B$3:B3,B3) F3 =MAX(1,E3-2) G3 =AVERAGEIFS($C$3:C3,$B$3:B3,B3,$E$3:E3,">="&F3,$E$3:E3,"<="&E3) H3 =AVERAGEIFS($D$3:D3,$B$3:B3,B3,$E$3:E3,">="&F3,$E$3:E3,"<="&E3) 各列とも下にコピーします。 (xyz) 2025/09/07(日) 08:20:35
ああ最新3回の平均といったとき、データそのものが3個なければ、 あるだけの(1個、2個)平均という風に勝手解釈していました。 不都合なら、IF関数でE列の回数が3未満なら""を返すようにし、3以上なら今と同じ方式にして、 カウントを開始する回数(下限)は n-2 とすればよいと思われます。
> 条件として全体の最新10回、も付け加える場合、連番18までのうち15のみが該当するため15の結果を平均として出す。 なぜ15のみが該当するんでしょうか。 「全体の」というのは、どのステージかは問わずに、という意味ですか? それなら連番の10回目以降はすべて計算することにならないんですか?
いずれにしても、私のは考え方のヒントくらいにして、そちらで適切に修正変更してください。以上です。
(xyz) 2025/09/07(日) 10:32:04
>全体を通して最新10回 とりあえずこれだけ
AA AB AC 1 2 stage 経験値1 経験値2 3 1 340.0 2000.0 4 2 5 3 638.6 5357.1 6 4 800.0 8000.0
AB3セル =IFERROR(AVERAGEIFS(X$3:X$100,$R$3:$R$100,">"&MAX($R:$R)-10,$S$3:$S$100,$AA3),"") 右と下にフィルコピー (TI) 2025/09/07(日) 11:47:30
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.