1~29までの数字が書かれた29枚のカードから5枚を同時に引き、
記録していくデータベースを作成するとき、
1~29が何回出てきたかを以下の種類によってカウントしたいのですが…
・同じレコードの他の数字の上一桁(一の位、十の位)の数が
「単数(1つ)」か「複数(2つ以上)」かによって
別カウントとして集計していきたいのですが。
(記録テーブル[全て数値型])
回数 1枚目 2枚目 3枚目 4枚目 5枚目
------------------------------------------
(1) 1 2 3 4 10
(2) 1 2 3 10 11
(3) 1 10 11 12 20
(各番号テーブル)
フィールド名「各番号」
レコード数=29
上記のような記録のとき
回数(1)は一の位が4個出現(1.2.3.4)なのでカウントは複数
十の位が1個出現(10)なのでカウントは単数
回数(2)は一の位が3個出現(1.2.3)なのでカウントは複数
十の位が2個出現(10.11)なのでカウントは複数
回数(3)は一の位が1個出現(1)なのでカウントは単数
十の位が3個出現(10.11.12)なのでカウントは複数
二十の位が1個出現(20)なのでカウントは単数
要約すると一の位と十の位と二十の位に分けて
同時に引いた5枚のうち
それぞれの位が1つなのか複数なのかによって
カウントを別に分けて集計したいのですが…
・作りたいもの
(単数複数カウントクエリ)
カード 単 複 ←単、複ごとに出た数をカウント
-----------------------
1 1 2
2 2
3 2
:
10 1 2
11 2
12 1
:
20 1
:
上記のようなクエリはどうやれば作れるのでしょうか?
ご回答、よろしくお願いします
No.1ベストアンサー
- 回答日時:
テーブル1つと、クエリ2つでやってみました。
テーブル「T_n枚目」にテキストフィールド「n枚目」を作り、その内容は、
[1枚目]
[2枚目]
[3枚目]
[4枚目]
[5枚目]
の5文字5レコードとします。かぎカッコの中身は、記録テーブルのフィールド名と同じにします。
次にクエリ「Q_単複」を作ります。その内容は、
SELECT 記録テーブル.*, 10^([1枚目]\10)+10^([2枚目]\10)+10^([3枚目]\10)+10^([4枚目]\10)+10^([5枚目]\10)+1000 AS 各枚数, DLookUp([n枚目],"記録テーブル","[回数]=" & [回数])+0 AS カード, IIf(Mid([各枚数],Len([各枚数])-[カード]\10,1)=1,"単","複") AS 単複
FROM 記録テーブル, T_n枚目;
とします。
最後に、クロス集計クエリで
TRANSFORM Count(Q_単複.単複) AS 単複のカウント
SELECT Q_単複.カード
FROM Q_単複
GROUP BY Q_単複.カード
PIVOT Q_単複.単複;
を実行すればよいと思います。
この回答への補足
回答ありがとうございます。
いただいた回答の通りテーブル1つとクエリ2つで
思ったとおりの結果を得ることが出来ました!
いただいた回答を応用して30番台を含むときと
40番台を含むときの2種類を作ろうとしましたが
上手く行きませんでした。
「Q_単複」クエリをいじればよいと思うのですが
30番台を含む場合、
40番台を含む場合の
クエリにするには「Q_単複」の文のどこを変更すれば出来るのでしょうか?
No.4
- 回答日時:
No.1の続きです。
>30番台を含む場合、
>40番台を含む場合の
>クエリにするには「Q_単複」の文のどこを変更すれば
+1000
の部分を
+100000
に変更してください。
No.3
- 回答日時:
No2の追加です。
下記のプログラムを先のプログラムの跡に追加しますと単数は111ね複数は999と表示されますSelect Case Cells(yy, xx)
Case 1
Cells(yy, xx) = 111
Case 2 To 9
Cells(yy, xx) = 999
End Select
Next xx
Next yy
No.2
- 回答日時:
まず9以下、10から19まで、20以上の3つに数を調べることを考えました。
それを回答します。当方xpでえくせる97です。回数1枚目2345
1156153
21231011
3110111220
410
320
131
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2006/2/19 ユーザー名 :
'
'
Dim xx, yy As Integer
For yy = 2 To 4
Cells(yy, 8) = 0: Cells(yy, 9) = 0: Cells(yy, 10) = 0
For xx = 2 To 6
Select Case Cells(yy, xx)
Case 1 To 9
Cells(yy, 8) = Cells(yy, 8) + 1
Case 10 To 19
Cells(yy, 9) = Cells(yy, 9) + 1
Case 20 To 29
Cells(yy, 10) = Cells(yy, 10) + 1
Case Else
End Select
Next xx
Next yy
End Sub
上の段のデータに対し計算結果が下の団の様に出ます。
このあとの単数複数の計算は容易と思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Countifよりも早く重複数をカウントする方法ありますか? 18 2022/07/04 13:39
- Excel(エクセル) エクセルで重複データから重複を削除して指定の列に抽出したい 11 2022/05/11 11:26
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- その他(コンピューター・テクノロジー) googleスプレッドシートでカッコ内の文字数をカウントしたい 1 2023/01/17 15:52
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- Excel(エクセル) Excelでの複数条件のカウントについて 1 2022/09/25 07:40
- 数学 1から9の数字を書いたカードが一枚ずつある。これらの9枚のカードから同時に2枚を取り出し、数字の大き 5 2022/04/25 15:38
- Visual Basic(VBA) VBAのことで質問があります 2 2022/10/12 14:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセス:クエリの結合とリレ...
-
クロス集計クエリの結果をテー...
-
ACCESSで行数指定(5万行目~8...
-
Access2007 クエリが読み取り...
-
アクセスのクエリでSplit関数は...
-
Accessでテキストが合体できる...
-
ACCESS クエリをテーブルとして...
-
クエリのデータをテーブルに入...
-
accessでクエリの結果だけをリ...
-
クエリについて教えてください
-
ACCESSで残高のある請求書作成...
-
アクセス テーブル容量とクエリ...
-
アクセス テーブルデータをエ...
-
アクセス 置換 どちらが早い...
-
ACCESSでの重複レコードの削除
-
Accessでテーブルやクエリのリ...
-
更新不可能なクエリに対して更...
-
テンポラリファイルのための空...
-
Accessで重複していないデータ...
-
日付型のフィールドに空白を入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クロス集計クエリの結果をテー...
-
デザインビューにてテーブルが...
-
アクセス 項目毎にデータを横...
-
クエリのデータをテーブルに入...
-
accessでクエリの結果だけをリ...
-
アクセス:クエリの結合とリレ...
-
教えてください! アクセスのac...
-
Access「レコードが削除されま...
-
更新不可能なクエリに対して更...
-
アクセス クロス集計クエリ→テ...
-
アクセスのクエリでSplit関数は...
-
access インポート時、既にある...
-
ACCESSで行数指定(5万行目~8...
-
テンポラリファイルのための空...
-
Access DAOのExecuteメソッドの...
-
ACCESSでの重複レコードの削除
-
Accessのクロス集計→テーブル作...
-
Access2010「クエリが複雑すぎ...
-
access テーブル作成クエリでテ...
-
ACCESS2000 クエリをテーブル化...
おすすめ情報