ある社の製品を「持ってる」「知っている」「知らない」に分けて回答してもらいました。
ピボットテーブルで出身地別に集計しようと思いましたがうまくいきません。
添付画像のとおりでデータの表が調査結果です。
ピボットテーブルでやってみようとしたのですが、
1社(Panasonic)だけならば、選択したあとにフィルターボタンから「持ってる」だけを選択すると実現できました。
しかし対象をSONY、SANYO増やしていくと、よくわからない結果になってしまい、どうにもなりません。
どなたか理想の表を実現できる手段をご存知ないでしょうか?
No.1ベストアンサー
- 回答日時:
ご質問者のやりたいことを実現する方法として2つほど思いつきました。
1.ご質問者も使われたピボットテーブルを使用する方法
2.ピボットテーブルではなく、関数を使用する方法
上記の方法を順に説明します。
1.ピボットテーブルを使用する方法
ご質問者のご希望の表を作成するため、以下の準備をします。
(1)もともとのデータはsheet1にあるものとしてsheet2に内容をコピーします。
(2)sheet2の適当な場所(ここでは$I$9)に、入力規則を使って「持ってる」「知ってる」「知らない」を選択できるセルを設置します。
(3)「持ってる」「知ってる」「知らない」という回答内容が入力されているセルに集計したい項目に該当すれば1、そうでなければ0とする関数を記入します。
※C2の例を示すと=IF(Sheet1!C2=$I$9,1,0)という関数。これを縦方向、横方向にオートフィルでコピーします。
(4)上記の結果、添付画像1のような表ができるので、これをピボットテーブルを使って添付画像2のように加工します。
2.関数を使用する方法
(1)もともとデータのあるシートとは別のシートに、集計結果の表を作成するため、「日本」「北米」「アジア」といった行方向の項目と「Panasonic」「SONY」・・・といった列方向の表題をあらかじめ作成します。
(2)そのシートの適当な場所(ここでは$I$6)に、入力規則を使って「持ってる」「知ってる」「知らない」を選択できるセルを設置します。
(3)集計値を計算するセルに条件に合致したものの件数をカウントするための計算式を記入します。
※B2の例を示すと=COUNTIFS(Sheet1!$B$2:$B$8,$A2,Sheet1!C$2:C$8,$I$6)という関数。これを縦方向、横方向にオートフィルでコピーします。
(4)縦方向、横方向の合計をSUM関数を使って集計して完成です。
※添付画像3を参照してください。
No.2
- 回答日時:
VBA で良かったですか?ダメならスルーということで
標準モジュールに以下を記述し Samp1 を実行してみます
処理対象は、アクティブシートの A5 ~ の表
結果は新規シートに
Option Explicit
Public Sub Samp1()
Dim vC As Variant, v As Variant
Dim r As Range
vC = Array("持ってる", "知ってる", "知らない")
Application.ScreenUpdating = False
With ActiveSheet
With Worksheets.Add
Set r = .Range("B2")
End With
For Each v In vC
Call Samp1Sub(.Range("A5"), v, r)
Next
End With
Application.ScreenUpdating = True
End Sub
Private Sub Samp1Sub(rng As Range, ByVal sS As String, r As Range)
Dim dic As Object
Dim vA As Variant
Dim sF As String
Dim i As Long, j As Long, k As Long, n As Long
Set dic = CreateObject("Scripting.Dictionary")
With Range(rng.End(xlDown).Offset(1), rng.End(xlToRight))
vA = .Value
End With
sF = "=SUM(RC[" & 2 - UBound(vA, 2) & "]:RC[-1])"
n = 1
For j = 1 To UBound(vA, 2) - 1
vA(n, j) = vA(n, j + 1)
Next
vA(n, j) = "総計"
For i = n + 1 To UBound(vA) - 1
For j = 3 To UBound(vA, 2)
If (vA(i, j) = sS) Then
vA(i, j) = 1
Else
vA(i, j) = 0
End If
Next
k = dic(vA(i, 2))
If (k = 0) Then
n = n + 1
dic(vA(i, 2)) = n
For j = 1 To UBound(vA, 2) - 1
vA(n, j) = vA(i, j + 1)
Next
vA(n, j) = sF
Else
For j = 2 To UBound(vA, 2) - 1
vA(k, j) = vA(k, j) + vA(i, j + 1)
Next
End If
Next
n = n + 1
sF = "=SUM(R[" & 2 - n & "]C:R[-1]C)"
vA(n, 1) = "総計"
For j = 2 To UBound(vA, 2)
vA(n, j) = sF
Next
r.Value = "【" & sS & "】"
With r.Offset(1).Resize(n, UBound(vA, 2))
.Value = vA
With .Rows(1)
.Interior.ColorIndex = 15
.HorizontalAlignment = xlCenter
End With
.Borders.LineStyle = xlContinuous
End With
Set r = r.Offset(n + 3)
Set dic = Nothing
End Sub
お礼遅れました。社外に出す資料のためVBAは可能な限り避けたいので今回は使用しませんでしたが、ローカルで試したら行けました!
データ抽出だけするならばこちらのほうが良さそうです。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) ピボットテーブルへの集計フィールド挿入 1 2023/02/26 11:33
- Excel(エクセル) EXCELピボットテーブル(複数アイテム) 1 2023/04/27 12:15
- Excel(エクセル) EXCELピボットテーブル関数について 2 2023/04/10 20:35
- Excel(エクセル) ピボットテーブル集計表について。ピボットテーブルで集計を行うとき、内訳集計ではなく、通常集計表にする 2 2023/08/10 07:16
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
- 統計学 統計:アンケート結果の読み解き方法(カイ二乗検定の必要性の有無) 13 2022/12/03 23:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) 2列のエクセルの表を変更したい 2 2022/06/30 10:39
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの作業計算方法について
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
はがきについて。
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
【関数】先頭だけにある、半角...
-
Excel ピボットテーブルで日付...
-
Excelのpivotについて質問です
-
時間によってファイル名が変わ...
-
エクセル 白黒印刷で白線を印刷...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
WPS OFFICEでの縦書きについて
-
Excelのチェックボックスの使い...
-
エクセルの条件付き書式につい...
-
エクセルのセルに同じ大きさの...
-
エクセルの関数について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報