- 締切済み
集計について
A列に番号、B列に作成日、C列に作成者、D列に作成数とあります C列でソートした後にF列に作成者毎の合計が入力されています。その合計をB列の作成日の個人毎の個数で割ってG列に出力したいのですが、マクロではどうやるのでしょう。(斎藤の日付個数は8/7が二つあるので3になる) 教えてください A B C D E F G 1 10 8/7 斎藤 300 2 11 8/7 斎藤 200 3 12 8/9 斎藤 500 4 13 8/10斎藤 100 1100 333.3 5 14 8/7 山田 100 6 15 8/9 山田 200 7 16 8/10山田 500 800 266.6 8 17 8/6 渡部 500 9 18 8/7 渡部 400 900 450.0 この様な表なのですが
- ramuda7
- お礼率33% (1/3)
- オフィス系ソフト
- 回答数3
- ありがとう数1
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- e10go
- ベストアンサー率38% (47/122)
少し遅くなりましたが、F列に合計、G列に平均を出すマクロを考えました。 なお、平均は小数第2位以下を切り捨てています。 また、前提条件として、1行目からデータがあり、ソート時に最優先されるキーに名前、2番目に優先されるキーに日付を指定している事としています。 '-------マクロコード---------始まり 'マクロコードを見やすくするため、マクロコードの先頭の空白は全角にしています。 'VBEに貼り付けて使用する際は、全角空白を半角空白に変換してください。 Sub test() Dim lng1 As Long Dim lng2 As Long Dim intCount As Integer Dim lngSum As Long For lng1 = 1 To 1000 If Cells(lng1, "C") = "" Then Exit For Else intCount = 1 lngSum = Cells(lng1, "D") For lng2 = lng1 + 1 To 1000 If Cells(lng2, "C") = Cells(lng1, "C") Then lngSum = lngSum + Cells(lng2, "D") If Cells(lng2, "B") <> Cells(lng2 - 1, "B") Then intCount = intCount + 1 Else Cells(lng2 - 1, "F") = lngSum Cells(lng2 - 1, "G") = (Int(lngSum * 10 / intCount)) / 10 lng1 = lng2 - 1 Exit For End If Next lng2 End If Next lng1 End Sub '-------マクロコード---------終わり
- zenjee
- ベストアンサー率47% (50/106)
No.1 zenjeeです。訂正です。 先の回答中、20行目の =IF(AND(C2=C3,B2=B3),"""",C2) は =IF(AND(C2=C3,B2=B3),"",C2) に訂正します。 下書きをCopy&Pasteした際に何故か「""」が増えていました。 それとご質問中、斎籐の平均個数「333.3」は「366.6」ですよね。
- zenjee
- ベストアンサー率47% (50/106)
ご質問が「マクロで」ということですから、ご希望の回答からは外れますが、お求めの答えを出すためなら、マクロによらなくてもワークシート関数だけで十分可能と思いますので、アドバイスとしてご参考までにその一連の作業方法を紹介します。気が向いたらお試しになってください。 最初の表が次のとおりとします。 A B C D E 1 番号 作成日 作成者 作成数 2 10 8/7 斎藤 300 3 11 8/7 斎藤 200 4 12 8/9 斎藤 500 5 13 8/10 斎藤 100 6 14 8/7 山田 100 7 15 8/9 山田 200 8 16 8/10 山田 500 9 17 8/6 渡部 500 10 18 8/7 渡部 400 まず、E列を作業列として、E2に次の計算式を入力しE10までコピーしておきます。 =IF(AND(C2=C3,B2=B3),"""",C2) すると次のような表になります。(日付が同じ上の「斎籐」が空欄になります) A B C D E F 1番号 作成日 作成者 作成数 2 10 8/7 斎藤 300 3 11 8/7 斎藤 200 斎藤 4 12 8/9 斎藤 500 斎藤 5 13 8/10 斎藤 100 斎藤 6 14 8/7 山田 100 山田 7 15 8/9 山田 200 山田 8 16 8/10 山田 500 山田 9 17 8/6 渡部 500 渡部 10 18 8/7 渡部 400 渡部 次にA1:E10を選択し、データ→集計をクリックします。 「集計の設定」ダイアログボックスが現れますので、グループの基準を「作成者」、集計の方法を「合計」、集計するフィールドは「作成数」にチェック、「集計行をデータの下に挿入する」にチェックし、OKします。すると次の表になります A B C D E F 番号 作成日 作成者 作成数 1 10 8/7 斎藤 300 2 11 8/7 斎藤 200 斎藤 3 12 8/9 斎藤 500 斎藤 4 13 8/10 斎藤 100 斎藤 5 斎藤 計 1100 6 14 8/7 山田 100 山田 7 15 8/9 山田 200 山田 8 16 8/10 山田 500 山田 9 山田 計 800 10 17 8/6 渡部 500 渡部 11 18 8/7 渡部 400 渡部 12 渡部 計 900 13 総計 2800 ここでF6に次の計算式を入力します。 =ROUND(D6/COUNTIF(E2:E12,E5),1) なお、この式は小数点2位以下四捨五入の式ですから、切り捨てるときはROUNDDOWNにしてください。 次に表左上名前ボックスの下の「123」とある数字の「2」をクリックします。すると合計行だけが現れますので、この状態でF6を選択し、右クリックでコピー、そのままShift、F13まで選択し、編集→ジャンプをクリックします。「ジャンプ」ダイアログボックスが現れますので、「セル選択」をクリックし、「可視セル」にチェック、OKします。するとF6,10,13が反転状態になりますので、選択セル上で右クリック→貼り付けをクリックします。 そして名前ボックスの下の「3」をクリックすると、合計行だけにお求めの答えが現れます。以上で完了です。
関連するQ&A
- エクセルでの簡単な集計について
A B C D E F ・・・・W X 1 2 3 4 1の行に単価、2~4の行は個数です Xの列に単価*個数の合計を各行ごとに出したい。 なるべく簡単な式を教えてください。
- ベストアンサー
- Windows系OS
- ピボットテーブルの集計結果を使って、さらに条件を付けて集計をしたいです
ピボットテーブルの集計結果を使って、さらに条件を付けて集計をしたいです。 たとえば、このようなピボットテーブルから、 [A] [B] [C] [D] 1月 Group Account1 Account2 G0 田中 東京 5 加藤 大阪 2 G1 佐藤 大阪 3 G1 田中 名古屋 A列のGroupをキーにして、D列を集計します。 G0の合計は7で個数は2、G1の合計は3で個数は1、という結果を出すにはどのようにしたら良いでしょうか?
- 締切済み
- その他MS Office製品
- Excelでの別シート集計について
Excelで月別、項目別で時間を集計するシートを作成しようとしています。 シート2ではシート1 F列コード別に集計してD列の時間データを月別に合計 シート3ではシート1 F列コードとG列コード別(Fが1001でGが1001、、、)に集計してD列時間データを合計、という表データにして抽出したいと考えています。 シート1には K欄に年月を表示 =IF(OR(A7="",B7="",C7=""),DATE(2100,12,31),DATE(A7+2000,B7,C7)) L列にF列コード+年月 =F7&(2000+A7)&B7 M列にG列コード+年月 =G7&(2000+A7)&B7 というところまでは設定したのですが、出力先となるシート2、シート3にはどのような設定をすればよいのか行き詰っています。 なにとぞ易しい回答をよろしくお願い申し上げます。
- ベストアンサー
- その他MS Office製品
- エクセル関数の質問
よろしくおねがいします。 以下のようなA列B列に数字が何行もあるのですが、 A列の数字(時間なのですが)を二つを別シートに記入すると A列の二つ分の期間を参照してB列の数字の合計や個数を計算したいのですが、 VLOOKでは期間分の値を計算できないので 何かいい方法はないでしょうか? A B 1000 1 2000 -5 3000 8 4000 1 5000 3 6000 5 7000 -3 8000 2 9000 3 別シートにA列の数字を下記の例のよう二つに入力すると A列の期間を参照してB列の値を計算して B列に全合計 C列に+の合計 D列に-の合計 E列に+の個数 F列に-の個数 を表示させる。 <例1> A B(全合計) C(+の合計) D(-の合計) E(+の個数) F(-の個数) 1000 5000 8 13 -5 4 1 <例2> A B(全合計) C(+の合計) D(-の合計) E(+の個数) F(-の個数) 6000 9000 7 10 -3 3 1 のような感じで計算したいのですが わかりづらくてすいませんが、分かる方がいたらご教示お願います。
- ベストアンサー
- オフィス系ソフト
- エクセルで集計
エクセルでの合計について教えていただきたいのです。 A1~A10000まで日付が、B1~B10000まで数値が入力されています。 B列の数値を50行ごとに合計し、C列に表示する方法。 現在は、sum関数で手作業です。 簡単に表示できる方法を教えてください。 また、C列に合計のある行をD列(D1・D2・D3・・・)、E列(E1・E2・E3・・・)、F列(F1・F2・F3・・・)に並べたいのです。(50行ごとに間引いて表示するような感じです) 現在は、=C50・=C100・=C150のように手作業です。 もっと多量のデータが入力されたシートもあります。また、100行ごと150行ごとなど合計行が違う場合もあります。 エクセル初心者です。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 同列に文字入力があるまで隣列の個数を合計
excelシートに以下のような表があり別表に下記項目に基づき合計値を入力したい。 1. I3セルにD列項目「あ」のうちB列記号「A+B+C」のF列個数合計を入力 2. J3セルにはD列項目「あ」のうちB列記号「D」のF列個数合計を入力 3. I4セルにD列項目「い」のうちB列記号「A+B+C」のF列個数合計を入力 4. J4セルにはD列項目「い」のうちB列記号「D+E」のF列個数合計を入力 以下続くのですが関数もしくはVBAコードが解る方宜しくお願いします。
- 締切済み
- Visual Basic
- 条件がある列の集計の仕方
数字が入っている列にもうひとつ条件をつけてその合計を求めたいのですが、関数が成り立ちません・・。 A列 B列 C列 D列 A 1 3 B 10 W 10 C 10 1 D 1 W 22 E 5 7 F 5 W 33 B列=1で、C列<>W(C列=0でもいいのかな?)のD列の合計を求めたいのです。 例の答えは、1=3 10=1 5=7となるようにです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルでの条件式等による数値集計
エクセルの条件式&集計についての質問です。 A列に売上年月日 C~F列には1行目は仕入年月日、2行目以降は仕入額が入っています。C~F列は同じ年月日は発生しません。 A列が07/2/28で商品1の場合、A列と同じ年月日のD列までの仕入額合計”30”をG列に表示させたいのです。 G列にどのような計算式を入力すればよいのでしょうか? マクロなどを使用せずに処理したいのですが…宜しくお願い致します。 A:売上日 B:品名 C:07/1/31 D:07/2/28 E:07/3/31 F:07/4/30 G:計 07/2/28 商品1 10 20 15 5 30 07/2/28 商品2 60 90 20 70 150 07/3/31 商品3 20 50 10 90 80 07/4/30 商品4 0 200 10 80 290
- ベストアンサー
- オフィス系ソフト
- エクセル2000 同じ文字が入力されている個数を集計する
A列には1~47の数字が200行まで入力されているものとします。 1 a c f e d 2 b a e d c 2 c d d f b 2 a f c a c ・ ・ ・ 47 d e d a b これときa~fが入力されている個数を次のように表にしたいと思いますが、関数でできますでしょうか。 a b c d e f 1 1 0 1 1 1 1 2 3 2 4 3 1 2
- ベストアンサー
- オフィス系ソフト
- Excel関数で一致した条件を合計する方法
Excelの関数を使って、E2:E4のセルにF列の「A」~「D」に 一致した場合、G列の「8」または「9」を加算する方法を教えて下さい。 例えば、スギの場合だと...... スギの1日目が「A」の時、F1:G4の表をもとに、「8」になり スギの2日目が「C」の時「7」になり スギの3日目が「A」の時「8」になり、 E2の合計は「8+7+8」と加算されるということです。 スギの合計は23、 マツの合計は25、 サクラの合計は28というふうになればいいのですが・・・。 どなたか教えて下さい。お願いします。 A B C D E F G 1 1日 2日 3日 合計 A 8 2 スギ A C A B 9 3 マツ C D A C 7 4 サクラ B B D D 10
- ベストアンサー
- オフィス系ソフト
お礼
お返事遅くなりまして申し訳ございません 大変参考になりました。 本当にありがとうございますm(__)m