はじめに
来店客数シートに入っているデータから、年代別、時間別にクロス集計表を作る。
問題
問題)来店客数のデータをクロス集計せよ
解答
データ
日付 | 時刻 | 年代 | 客数 |
2022/10/1 | 8:00 | 70代 | 3 |
2022/10/1 | 8:09 | 60代 | 2 |
2022/10/1 | 8:18 | 10代 | 2 |
2022/10/1 | 8:23 | 20代 | 4 |
2022/10/1 | 8:32 | 30代 | 4 |
2022/10/1 | 8:36 | 20代 | 2 |
2022/10/1 | 8:41 | 50代 | 4 |
2022/10/1 | 8:45 | 20代 | 1 |
2022/10/1 | 8:48 | 20代 | 2 |
2022/10/1 | 8:55 | 30代 | 4 |
2022/10/1 | 9:04 | 50代 | 3 |
2022/10/1 | 9:13 | 40代 | 4 |
2022/10/1 | 9:17 | 30代 | 4 |
2022/10/1 | 9:19 | 50代 | 4 |
2022/10/1 | 9:28 | 40代 | 1 |
2022/10/1 | 9:31 | 30代 | 2 |
2022/10/1 | 9:39 | 40代 | 4 |
2022/10/1 | 9:44 | 20代 | 2 |
2022/10/1 | 9:48 | 10代 | 4 |
2022/10/1 | 9:51 | 50代 | 4 |
2022/10/1 | 9:58 | 50代 | 4 |
2022/10/1 | 10:04 | 50代 | 2 |
2022/10/1 | 10:06 | 20代 | 2 |
2022/10/1 | 10:09 | 50代 | 4 |
2022/10/1 | 10:18 | 20代 | 1 |
2022/10/1 | 10:25 | 20代 | 1 |
2022/10/1 | 10:34 | 20代 | 2 |
2022/10/1 | 10:38 | 30代 | 3 |
2022/10/1 | 10:45 | 50代 | 3 |
2022/10/1 | 10:51 | 20代 | 3 |
2022/10/1 | 10:54 | 30代 | 4 |
2022/10/1 | 11:00 | 40代 | 3 |
2022/10/1 | 11:03 | 10代 | 4 |
2022/10/1 | 11:08 | 40代 | 4 |
2022/10/1 | 11:10 | 50代 | 1 |
2022/10/1 | 11:15 | 30代 | 1 |
2022/10/1 | 11:16 | 20代 | 3 |
2022/10/1 | 11:22 | 40代 | 2 |
2022/10/1 | 11:25 | 30代 | 3 |
2022/10/1 | 11:30 | 40代 | 3 |
2022/10/1 | 11:30 | 50代 | 2 |
2022/10/1 | 11:30 | 10代 | 1 |
2022/10/1 | 11:33 | 20代 | 4 |
2022/10/1 | 11:35 | 40代 | 4 |
2022/10/1 | 11:35 | 50代 | 2 |
2022/10/1 | 11:37 | 10代 | 4 |
2022/10/1 | 11:38 | 50代 | 3 |
2022/10/1 | 11:40 | 20代 | 2 |
2022/10/1 | 11:42 | 50代 | 1 |
2022/10/1 | 11:42 | 50代 | 1 |
2022/10/1 | 11:44 | 10代 | 2 |
2022/10/1 | 11:46 | 30代 | 3 |
2022/10/1 | 11:46 | 40代 | 1 |
2022/10/1 | 11:49 | 20代 | 1 |
2022/10/1 | 11:51 | 10代 | 1 |
2022/10/1 | 11:51 | 30代 | 2 |
2022/10/1 | 11:52 | 30代 | 1 |
2022/10/1 | 11:53 | 10代 | 2 |
2022/10/1 | 11:53 | 30代 | 1 |
2022/10/1 | 11:54 | 50代 | 3 |
2022/10/1 | 11:55 | 40代 | 1 |
2022/10/1 | 11:55 | 30代 | 1 |
2022/10/1 | 11:58 | 40代 | 2 |
2022/10/1 | 11:58 | 50代 | 3 |
2022/10/1 | 11:59 | 10代 | 4 |
2022/10/1 | 12:00 | 50代 | 1 |
2022/10/1 | 12:02 | 10代 | 2 |
2022/10/1 | 12:02 | 10代 | 1 |
2022/10/1 | 12:04 | 10代 | 2 |
2022/10/1 | 12:06 | 30代 | 1 |
2022/10/1 | 12:07 | 30代 | 3 |
2022/10/1 | 12:09 | 20代 | 2 |
2022/10/1 | 12:09 | 50代 | 3 |
2022/10/1 | 12:11 | 20代 | 1 |
2022/10/1 | 12:11 | 30代 | 3 |
2022/10/1 | 12:12 | 10代 | 4 |
2022/10/1 | 12:13 | 20代 | 2 |
2022/10/1 | 12:15 | 40代 | 3 |
2022/10/1 | 12:15 | 40代 | 3 |
2022/10/1 | 12:16 | 10代 | 3 |
2022/10/1 | 12:17 | 20代 | 4 |
2022/10/1 | 12:20 | 40代 | 3 |
2022/10/1 | 12:20 | 10代 | 2 |
2022/10/1 | 12:21 | 50代 | 2 |
2022/10/1 | 12:22 | 20代 | 1 |
2022/10/1 | 12:23 | 40代 | 4 |
2022/10/1 | 12:24 | 10代 | 3 |
2022/10/1 | 12:25 | 50代 | 4 |
2022/10/1 | 12:25 | 50代 | 4 |
2022/10/1 | 12:26 | 50代 | 3 |
2022/10/1 | 12:27 | 30代 | 2 |
2022/10/1 | 12:31 | 30代 | 4 |
2022/10/1 | 12:31 | 50代 | 1 |
2022/10/1 | 12:31 | 10代 | 3 |
2022/10/1 | 12:34 | 50代 | 3 |
2022/10/1 | 12:34 | 10代 | 2 |
2022/10/1 | 12:36 | 20代 | 3 |
2022/10/1 | 12:38 | 40代 | 1 |
2022/10/1 | 12:40 | 20代 | 1 |
2022/10/1 | 12:42 | 30代 | 2 |
2022/10/1 | 12:43 | 20代 | 3 |
2022/10/1 | 12:43 | 40代 | 1 |
2022/10/1 | 12:43 | 30代 | 1 |
2022/10/1 | 12:45 | 20代 | 1 |
2022/10/1 | 12:46 | 50代 | 4 |
2022/10/1 | 12:47 | 30代 | 3 |
2022/10/1 | 12:48 | 20代 | 2 |
2022/10/1 | 12:49 | 10代 | 4 |
2022/10/1 | 12:49 | 10代 | 1 |
2022/10/1 | 12:51 | 50代 | 3 |
2022/10/1 | 12:52 | 10代 | 3 |
2022/10/1 | 12:52 | 50代 | 3 |
2022/10/1 | 12:53 | 50代 | 2 |
2022/10/1 | 12:54 | 40代 | 3 |
2022/10/1 | 12:55 | 50代 | 3 |
2022/10/1 | 12:56 | 20代 | 1 |
2022/10/1 | 12:58 | 60代 | 1 |
2022/10/1 | 12:58 | 20代 | 1 |
2022/10/1 | 12:58 | 10代 | 2 |
2022/10/1 | 13:00 | 10代 | 2 |
2022/10/1 | 13:01 | 30代 | 2 |
2022/10/1 | 13:03 | 30代 | 4 |
2022/10/1 | 13:03 | 40代 | 1 |
2022/10/1 | 13:07 | 40代 | 2 |
2022/10/1 | 13:09 | 10代 | 4 |
2022/10/1 | 13:09 | 50代 | 3 |
2022/10/1 | 13:10 | 40代 | 1 |
2022/10/1 | 13:12 | 30代 | 3 |
2022/10/1 | 13:12 | 70代 | 4 |
2022/10/1 | 13:14 | 20代 | 4 |
2022/10/1 | 13:16 | 40代 | 2 |
2022/10/1 | 13:17 | 30代 | 3 |
2022/10/1 | 13:18 | 50代 | 4 |
2022/10/1 | 13:19 | 10代 | 1 |
2022/10/1 | 13:19 | 40代 | 2 |
2022/10/1 | 13:21 | 50代 | 1 |
2022/10/1 | 13:23 | 10代 | 3 |
2022/10/1 | 13:25 | 20代 | 4 |
2022/10/1 | 13:25 | 20代 | 2 |
2022/10/1 | 13:27 | 30代 | 4 |
2022/10/1 | 13:27 | 40代 | 2 |
2022/10/1 | 13:27 | 10代 | 4 |
2022/10/1 | 13:28 | 30代 | 1 |
2022/10/1 | 13:30 | 40代 | 2 |
2022/10/1 | 13:30 | 40代 | 3 |
2022/10/1 | 13:34 | 10代 | 4 |
2022/10/1 | 13:35 | 10代 | 3 |
2022/10/1 | 13:42 | 20代 | 3 |
2022/10/1 | 13:44 | 20代 | 3 |
2022/10/1 | 13:51 | 40代 | 1 |
2022/10/1 | 13:52 | 20代 | 4 |
2022/10/1 | 13:54 | 10代 | 2 |
2022/10/1 | 14:01 | 50代 | 3 |
2022/10/1 | 14:06 | 30代 | 4 |
2022/10/1 | 14:13 | 20代 | 1 |
2022/10/1 | 14:21 | 20代 | 4 |
2022/10/1 | 14:24 | 40代 | 4 |
2022/10/1 | 14:26 | 50代 | 1 |
2022/10/1 | 14:35 | 30代 | 4 |
2022/10/1 | 14:43 | 10代 | 1 |
2022/10/1 | 14:47 | 40代 | 2 |
2022/10/1 | 14:53 | 50代 | 4 |
2022/10/1 | 15:02 | 10代 | 3 |
2022/10/1 | 15:09 | 20代 | 2 |
2022/10/1 | 15:17 | 10代 | 1 |
2022/10/1 | 15:22 | 10代 | 2 |
2022/10/1 | 15:29 | 40代 | 3 |
2022/10/1 | 15:34 | 40代 | 3 |
2022/10/1 | 15:36 | 60代 | 2 |
2022/10/1 | 15:44 | 30代 | 2 |
2022/10/1 | 15:48 | 30代 | 2 |
2022/10/1 | 15:56 | 70代 | 4 |
2022/10/1 | 16:01 | 30代 | 1 |
2022/10/1 | 16:10 | 40代 | 3 |
2022/10/1 | 16:13 | 10代 | 3 |
2022/10/1 | 16:15 | 50代 | 4 |
2022/10/1 | 16:23 | 30代 | 2 |
2022/10/1 | 16:32 | 30代 | 3 |
2022/10/1 | 16:40 | 50代 | 3 |
2022/10/1 | 16:48 | 10代 | 1 |
2022/10/1 | 16:52 | 20代 | 1 |
2022/10/1 | 16:55 | 10代 | 4 |
2022/10/1 | 16:57 | 10代 | 1 |
2022/10/1 | 17:02 | 50代 | 3 |
2022/10/1 | 17:04 | 30代 | 4 |
2022/10/1 | 17:07 | 40代 | 3 |
2022/10/1 | 17:12 | 40代 | 1 |
2022/10/1 | 17:17 | 50代 | 1 |
2022/10/1 | 17:22 | 40代 | 2 |
2022/10/1 | 17:29 | 40代 | 4 |
2022/10/1 | 17:31 | 40代 | 3 |
2022/10/1 | 17:39 | 50代 | 3 |
2022/10/1 | 17:41 | 20代 | 4 |
2022/10/1 | 17:49 | 40代 | 2 |
2022/10/1 | 17:58 | 10代 | 3 |
2022/10/1 | 18:05 | 10代 | 4 |
2022/10/1 | 18:13 | 20代 | 2 |
2022/10/1 | 18:17 | 30代 | 3 |
2022/10/1 | 18:20 | 50代 | 1 |
2022/10/1 | 18:22 | 30代 | 2 |
2022/10/1 | 18:25 | 40代 | 2 |
2022/10/1 | 18:34 | 10代 | 4 |
2022/10/1 | 18:37 | 30代 | 3 |
2022/10/1 | 18:42 | 40代 | 4 |
2022/10/1 | 18:45 | 20代 | 1 |
2022/10/1 | 18:54 | 30代 | 2 |
2022/10/1 | 18:56 | 40代 | 2 |
2022/10/1 | 18:59 | 20代 | 1 |
2022/10/1 | 19:07 | 40代 | 1 |
2022/10/1 | 19:09 | 20代 | 2 |
2022/10/1 | 19:11 | 40代 | 1 |
2022/10/1 | 19:14 | 30代 | 3 |
2022/10/1 | 19:16 | 30代 | 2 |
2022/10/1 | 19:18 | 20代 | 2 |
2022/10/1 | 19:23 | 30代 | 2 |
2022/10/1 | 19:26 | 30代 | 1 |
2022/10/1 | 19:33 | 40代 | 2 |
2022/10/1 | 19:41 | 30代 | 1 |
2022/10/1 | 19:50 | 30代 | 2 |
2022/10/1 | 19:55 | 40代 | 3 |
2022/10/1 | 20:03 | 20代 | 1 |
2022/10/1 | 20:10 | 60代 | 1 |
2022/10/1 | 20:17 | 20代 | 2 |
2022/10/1 | 20:22 | 30代 | 4 |
2022/10/1 | 20:30 | 40代 | 4 |
2022/10/1 | 20:39 | 40代 | 3 |
2022/10/1 | 20:41 | 10代 | 1 |
2022/10/1 | 20:47 | 50代 | 2 |
2022/10/1 | 20:52 | 20代 | 4 |
2022/10/1 | 21:01 | 10代 | 1 |
2022/10/1 | 21:09 | 20代 | 3 |
2022/10/1 | 21:14 | 50代 | 4 |
2022/10/1 | 21:20 | 50代 | 2 |
2022/10/1 | 21:23 | 40代 | 1 |
2022/10/1 | 21:30 | 20代 | 2 |
2022/10/1 | 21:31 | 30代 | 1 |
2022/10/1 | 21:40 | 40代 | 4 |
2022/10/1 | 21:43 | 50代 | 4 |
2022/10/1 | 21:48 | 70代 | 1 |
2022/10/1 | 21:52 | 20代 | 4 |
2022/10/1 | 21:55 | 20代 | 3 |
コード
Option Explicit
Option Base 1
Sub main()
Dim rng As Range
Dim timedt As String, agedt As String
With Sheets("集計")
For Each rng In .Range("C3:E6")
timedt = .Cells(rng.Row, 1).Value
agedt = .Cells(1, rng.Column).Value
Select Case timedt
Case "モーニングタイム"
Call dataFilter(2, "<11:00")
Case "ランチタイム"
Call dataFilter(2, ">=11:00", "<14:00")
Case "ティータイム"
Call dataFilter(2, ">=14:00", "<17:00")
Case "ディナータイム"
Call dataFilter(2, ">=17:00")
End Select
Select Case agedt
Case "若年層"
Call dataFilter(3, ">=10代", "<=20代")
Case "中年層"
Call dataFilter(3, ">=30代", "<=50代")
Case "高齢層"
Call dataFilter(3, ">=60代")
End Select
rng.Value = WorksheetFunction.Subtotal(9, Sheets("来店客数").Columns(4))
Sheets("来店客数").Range("A1").AutoFilter
Next rng
End With
End Sub
ーーーーーーーーーーーーーーーーーーーーーーー
Sub dataFilter(fld As Integer, terms1 As String, Optional terms2 As String)
With Sheets("来店客数")
If terms2 <> "" Then
.Range("A1").AutoFilter Field:=fld, Criteria1:=terms1, Operator:=xlAnd, Criteria2:=terms2
Else
.Range("A1").AutoFilter Field:=fld, Criteria1:=terms1
End If
End With
End Sub
コードは以上になる。mainで場合分けをして、サブルーチンに入れている。サブルーチンではautofilterを使って条件を絞り込みを行っているだけである。集計コマンドボタンにはmainを割り当てる。
サイトご利用方法
次のページ・前のページを利用するよりも、グローバルメニュー(ヘッダー部分にある項目)・サブメニュー記事の項目をクリックしていただければ、その項目の全体像が一目でみることができ、クリックすればそのサイトへ飛びます。
google、yahoo、Bingなどで検索する場合、検索ワードは先頭に、孤立じじい、と入力しその後に、グローバルメニュー・サブメニュー記事のどれかひとつの項目を入力すると、その検索サイトが上位表示されます。