![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
こんばんわ。
エクセルシートで下記の表があるとします。
A B
1 30 10
2 50 20
3 64 30
4 70 40
5 71 40
6 77 41
7 73 43
8 75 45
9 77 47
(中略)
20 60 49
21 55 55
A列:体重、B列:年齢です。
表はB列の数字で若い順に上から下へ並んでいます。
列に対して名前(体重など)の定義はしていません。
40歳代のうち若い方から数えて3番目~8番目の人の体重の平均を取りたいと思います。
このような表がたくさんあるときに関数を使って簡単に処理したいのですが、どのようにすればよいでしょうか。
教えてください。
よろしくお願いします。
No.5
- 回答日時:
ユーザー関数を作る解答を1つ。
(1)年齢順・体重順にソートして下さい。
それぞれ昇順・降順は適当なものを選んでください。
(2)VBEの標準モジュールに下記を貼りつけてください。
Function avgr(age, rfrom, rto)
n = 0: s = 0: t = 0 '初期化
For i = 1 To 30 '第1行から第30行までと仮定
a = Cells(i, "A") '年齢列について
Select Case a
Case age To age + 10
n = n + 1
If n > rfrom - 1 And n < rto + 1 Then '何番目か
s = s + 1
t = t + Cells(i, "B")
End If
Case Else
End Select
Next i
avgr = t / s '該当データ数、とその合計
End Function
(3)ワークシートのデータが入っているセル以外に
=avgr(40,3,8)と入れてください。求める平均が得られます。
また=round(avgr(40,3,8),0)などとも使えます。
簡単にするため40台で2人しかいないとかのチェックは
手抜きしています。
(A)上記s<rfrom、rfrom<rto、非負、非ゼロ
(B)sが0(該当者無し)で無い
などチェックが本来必要ですが。
別の方法で、簡単なのは年齢・体重でソートして、目で見て第3番目から第8番目のセル番地を読み
=average(B○:B○)と式を入れる方法です。
No.3
- 回答日時:
40代の人が確実に8人以上いるのなら、
=AVERAGE(OFFSET(INDIRECT("A"&(MATCH(39,B:B))),3,0,6,1))
でおしまいです。
No.2
- 回答日時:
オートフィルタで抽出してから、平均をとってみては?
簡単な手順です。
1. 1列目に新規列を追加
2. A1に"体重"、B1に"年齢"、C1に"年齢"
3. C2に以下の式を設定。次行以降コピー
=INT(B2/10) & "0代"
4. [データ]-[フィルタ]-[オートフィルタ]
5. C列のプルダウンで、40代を選択すると、40代のみ抽出される
あとは、AVERAGE関数で平均を求めてください。
No.1
- 回答日時:
作業列を使います。
C1に
=IF(AND(B1>=40,B1<50),B1,100)
といれ必要なところまでコピーしてください。
40代の人の年齢を抜き出します。100と入っているのはエラー防止のための数値です。
D1に
=IF(C1<100,AND(RANK(C1,C:C,1)>=3,RANK(C1,C:C,1)<=8),A1,"")
といれ必要なところまでコピーしてください。
これで年齢が3番目~8番目の方の体重を抜き出します。
(しかしこれでは例えば8番目の年齢の人が複数いればサンプルは6人以上になってしまいます。)
平均体重は
=AVERAGE(D:D)
で出てきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) エクセル、日々の集計整理方法。(再送です。) 5 2022/10/02 00:19
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Excel(エクセル) 別シートに毎回異なるデータをコピーする 7 2022/06/24 09:02
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルのセルの書式設定・ユーザー定義の条件設定について 1 2022/08/17 21:56
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Word2016でExcelデータを差込し...
-
【Excel VBA】CSV取込時、数字...
-
ExcelのIF関数について
-
EXCEL2007で2つのシートのどっ...
-
EXCELの列の幅
-
エクセルで電話番号にハイフン...
-
EXCELで2つのシートから一致し...
-
Excelのデータの並び替えについて
-
エクセルで前年同日・前月同日...
-
セル入力文字が、「右のセルに...
-
パワポの複数ページにまたがる...
-
パワーポイントの表
-
エクセルで知らない間に行がず...
-
(Word)点線枠の消し方を教えて...
-
エクセルでセルの中の文字が削...
-
Wordで左右に分割
-
ワードの文章囲み枠(?)を消...
-
PowerPointの表の罫線を二重罫...
-
ワードで勝手に点線ラインがでる
-
ワードの表の行が広がってしまう
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Word2016でExcelデータを差込し...
-
【Excel VBA】CSV取込時、数字...
-
EXCELで2つのシートから一致し...
-
EXCELの列の幅
-
Excel 表の必要箇所だけを抜き...
-
エクセルでページ毎の計をつけ...
-
pdfの表をexcelにはりつけて計...
-
EXCEL2007で2つのシートのどっ...
-
エクセルで前年同日・前月同日...
-
エクセルで電話番号にハイフン...
-
excelの列がいっぱいになり列を...
-
ExcelのIF関数について
-
エクセルVBAで複数列データを1...
-
エクセルシートの選択範囲をコ...
-
エクセルの複数ワークシートの...
-
EXCELで不良率を出そうと思って...
-
エクセルの余白を0にしても列...
-
Excelで縦割りを途中から増やす...
-
マクロ VBA 他のブックのデータ...
-
エクセルで2列以上のものを同時...
おすすめ情報