こんにちは!
ご教授いただきたく質問させていただきます。
それぞれ個人のデータが入っている個人表(2行7列)が載っているシートが複数枚あります。その平均を同じシートの個人表の下に作成してある同じ形式の平均表(2行7列)と個人シート(複数枚)と同じつくりにしてある集計シートの平均表に入れたいのです。
今現在は平均表の左上のセル【個人シート(全員分)と集計シートを選択】して個人表の左上セルを串刺し、平均を出しオートフィルで平均表を作成しています。自分一人で集計する時は問題ないのですが他多数の人が行う際に関数入力間違いや参照間違いの発生が危惧されます。マクロでできればそのようなミスが起こらないと思いますが、マクロを作ることが出来ません。ご教授お願いします。

A 回答 (5件)

以下のマクロを標準モジュールに登録してください。


集計表より右側のシートは、関知しません。
集計表の平均の表が、各個人の平均の表にコピーされます。
集計表の平均の表の書式設定を適切に行ってください。それらも含めて、各個人のシートに反映されます。
--------------------------------------------------------------
Option Explicit
Public Sub 平均()
Const tName As String = "集計表"
Dim row, col, i As Long
Dim ws, wt As Worksheet
Dim sheet_last, sheet_count As Long
Dim val As Variant
Set wt = Worksheets(tName)
sheet_last = 0
sheet_count = 0
For i = 2 To Worksheets.Count
If Worksheets(i).Name = tName Then
sheet_last = i - 1
Exit For
End If
sheet_count = sheet_count + 1
Next
If sheet_count = 0 Then
MsgBox ("シート不足")
Exit Sub
End If
'集計シートクリア
wt.Range("B5:I6").Value = ""
wt.Range("B8:I9").Value = ""
'全ての個人シートを加算
For i = 2 To sheet_last
Worksheets(i).Activate
For row = 5 To 6
For col = 2 To 9
wt.Cells(row, col) = wt.Cells(row, col) + Cells(row, col).Value
Next col
Next row
Next i
'平均を求める
For row = 5 To 6
For col = 2 To 9
wt.Cells(row + 3, col).Value = wt.Cells(row, col).Value / sheet_count
Next col
Next row
'全ての個人シートへ平均をコピー
For i = 2 To sheet_last
Worksheets(i).Activate
wt.Range("B8:I9").Copy Range("B8:I9")
Next i
MsgBox ("完了")
End Sub
-------------------------------------------
    • good
    • 0
この回答へのお礼

ご回答いただき、ありがとうございました。
自分が実施したいことが、すべて実施出来ました。
大変ありがとうございます。これで作業がミスなく迅速に実施出来ます。
本当に感謝の言葉しか出てきません。
ありがとうございました。
間違いなくベストアンサーです。

お礼日時:2017/06/16 13:50

>1.集計用シートは個人シートの右になりますが、今現在その右にその集計シートのデータを参照する表(グラフ等も】のシートが2シートつけてありますが、そのシートがある事が問題ならば集計シートにまとめることは可能です。



では、集計用シートのシート名を提示ください。シート名が、提示されたXXXになった時点で、個人シートが終わったと判断します。その為には、XXXの具体的な値を提示してください。

>6.空欄はありません。すべて数値(時間も)です。
B5:I6の中に、時間も含まれているのですか。
マクロでは、どこが時間なのかわからないので、単純に数値を加算し、その平均をとりますがそれで良いですか。
    • good
    • 0
この回答へのお礼

早急なご回答ありがとうございます。
集計用シートのシート名は【集計表】にしています。時間については数値平均で全く問題ありません。
以上になります。
よろしくお願いいたします。

お礼日時:2017/06/16 10:59

補足要求です。


1.集計用シートは、一番右側のシートであってますか。
2.個人用シートは、左から2番目のシートから開始し、集計用シートの手前で終了ですか。
3.集計用シートのB5:I6は、個人シートの合計値が設定されれば良いのですか。
4.集計用シートのB8:I9は、B5:I6の平均が設定されれば良いですか。
5.個人用シートのB8:I9は、集計用シートのB8:I9と同じ内容になりますか。
6.個人用シートのB5:I6は、空欄(データなし)もありますか。また、空欄があった場合は、それはデータ件数に含めませんが、それで良いですか。
例えば、個人シートが10枚あって、個人1のB8=10、個人2のB8=20、他の個人のB8=空欄の場合、
合計は30ですが、平均は30÷2=15になります。(30÷10=3ではありません)
    • good
    • 0
この回答へのお礼

おはようございます。回答していただきありがとうございます。
質問内容が分かりづらくてお手数おかけいたします。補足要求に答えさせていただきます。
1.集計用シートは個人シートの右になりますが、今現在その右にその集計シートのデータを参照する表(グラフ等も】のシートが2シートつけてありますが、そのシートがある事が問題ならば集計シートにまとめることは可能です。
2.その通りです。
3.集計用シートのB5:I6は特に使用していなかったので合計値でも問題ありません。
4.その通りです。
5.その通りです。
6.空欄はありません。すべて数値(時間も)です。
以上になります。
ご回答よろしくお願いいたします。

お礼日時:2017/06/16 07:34

名簿用シートの直後(一つ右)に「ここから」シートを挿入


集計用シートの直前(一つ左)に「ここまで」シートを挿入
串刺し計算は =SUM(ここから:ここまで!B4) のようにしておく
ただし、「ここから」シートと「ここまで」シートの位置が逆転すると数式が壊れます
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
№1回答していただいたところに補足させていただきましたが、やはりマクロは無理なのでしょうか?
入力ミスによる参照間違い等が出そうで心配なため、マクロでと考えました。ありがとうございました。

お礼日時:2017/06/14 21:04

こんにちは



内容がよく理解できていない上に、直接の回答ではありませんが・・・

>マクロを作ることが出来ません。
>他多数の人が行う際に関数入力間違いや参照間違いの発生が危惧されます。
マクロでもできるでしょうけれど、メンテも何もできなくなるだけではないでしょうか?

同じ計算をさせるだけだのように思われますので、ひな形のブックなりシートを作成しておいてそれを使い回せば良いだけのように思えますが?
計算式を入れてある部分を上書きで壊されないようにしたければ、シートの保護などでそのセルを保護しておけば良いでしょう。

その時々で違う計算をさせたいと言う場合は、マクロでも対応できるのかどうか不明です。(規則性があれば可能だと思いますが)

いずれにしろ、ご質問の情報の内容だけでは、回答者にマクロを作成することはできませんね。(情報が不足しすぎ、というより、ほとんどありませんので)
    • good
    • 0
この回答へのお礼

早速回答していただき、ありがとうございます。
質問が解りづらく申し訳ありません。補足させていただきます。
一つのブックに一番前には名簿用シートがありその後ろから№1から№10等(個人データ)人数分のシートがあります。(その時によって人数が変わります。)また、その後ろに集計用のシートを付けてあります。集計用のシートは個人データ用と同じ内容(同じセルに同じ表が作ってあります。)のシートです。各シートのB列からI列迄8列の5行、6行の2行に個人の細かなデータ(数値)が入っています。各シートのB列からI列迄8列の8行、9行の2行に平均用の表が作ってあります。個人データの表のそれぞれの平均を平均用の表にまとめたいのです。(それぞれ個人シートのB5セルの平均を全てのシートのB8セルに)その個人データと平均データを参照してグラフ化するようになっています。個人個人が自分のデータと平均を比較できるようになっています。一番後ろの集計用シートはその平均データ参照して個人用とは違うグラフや表になるように作ってあります。毎回人数が違うので同じ式をひな形で作っておくことが出来ず、人数(シート枚数)が変わっても出来るマクロがあればと思い、質問させていただきました。前回名簿から名簿人数分名前を入力するマクロをご教授いただいたので、人数が変わってもマクロなら出来るのかと思い、お願いしました。よろしくお願いいたします。

お礼日時:2017/06/14 18:35

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

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


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

人気Q&Aランキング