[[20250906231240]] 『最新3回の平均を出したい』(アマゲーマー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『最新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 >


>X,Y,Zに平均を出したい数値
Zがないのはどうしてですか。
>結果を平均として出す。
どのようになればいいのか分からないので
結果を記入して説明されたらどうですか。
(分からん) 2025/09/07(日) 08:09:35

 こういうことでしょうか。

 回答の都合上、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.