[[20051208173722]] 『相手先・項目別に集計』(アシベ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『相手先・項目別に集計』(アシベ)

          A         B                   C                D    E   ・・・  P
  1    2004年度(A1とB1は結合)      (空欄)             4月  5月  ・・・ 合計
  2    相手先      摘要               詳細             (D以降1行と2行結合)
  3    Aホテル   チケット代   (C列は表示していない)     100
  4              チケット代                                  150
  5    Bホテル   チケット代
  6              協賛金
  7              チケット代
  8              チケット代
 10    A商店     お中元ギフト
 11              新店協賛
 12              お歳暮ギフト
 13    B商店     お中元ギフト
 14              新店協賛
 15              お歳暮ギフト
 16              新店協賛
 17    C商店     お歳暮ギフト

 50    (空欄)      合計

 ちょっと分かりにくいですが、以上のような表があります。
 それぞれが発生するたびに行を追加して摘要、特定の摘要には詳細を入力し、
 そのご、発生した月にその金額を入力しています。
 今は1行に1つの金額しかありません。

 これを別のシートに相手先と摘要で分けた表

          A         B                   C                D    E   ・・・  P
  1    2004年度                         4月  5月  ・・・ 合計
  2    相手先      摘要               詳細              
  3    Aホテル   チケット代                             100  150
  4    Bホテル   チケット代
  5              協賛金
  6    A商店     お中元ギフト
  7              新店協賛
  8              お歳暮ギフト
  9    B商店     お中元ギフト
 10              新店協賛
 11              お歳暮ギフト
 12    C商店     お歳暮ギフト

 30                合計

 としたいのですが、ピポットテーブルを使用すると
 フィールド名が正しくないというエラーが出てしまいます。
 これはどうすればいいのでしょうか?
 漠然とした質問になってしまいましたが教えていただけないでしょうか。
 ピポットテーブルでなくても構いません。
 お願いします。

 こんばんわ。
 例えば、Aホテルのチケット代が同月に多数発生した場合も行を追加していますか?(seiya)

 項目名が2行に分かれている(1,2行目)のがピボットで障害になります。
また、一行にするだけでは、現状のデータ形式では困難。
  1    2004年度           
  2    相手先      摘要       日付        詳細       金額
  3    Aホテル   チケット代   4月                     100
  4    Aホテル   チケット代   5月                     150
  5    Bホテル   チケット代   5月                     110
 ・
 ・
という風にしておかないとピボット集計できないのでは?
ピボットでの集計を目標とするならデータの作成の仕方から再考すべき。
(みやほりん)

 seiyaさん、同月に発生することもあります。
 c行にはチケットの内容を個別にメモ書きしています。
 みやほりんさん、あまりピポットテーブルについて分からないので。
 すいません。
 (アシベ)

 ピボットテーブルについては下記
http://hp.vector.co.jp/authors/VA014071/tips/xl_pvt1.html

          A         B                   C                D    E   ・・・  P
  1    2004年度                                
  2    相手先      摘要               詳細              4月  5月  ・・・ 合計
  3    Aホテル   チケット代                  100
  4              チケット代                                  150
 
元となるデータについては上記A4が空白になっていますが、
このままピボットに使用しても4行目のデータは「相手先は未入力のデータ」
として扱われ、Aホテルのデータとしては集計されません。
たとえば「150」という取引が発生したら、その取引の行には「誰と」「何を」
「いつ」取引した、というようなデータが必ず入力されていないと、ピボット
を利用しての集計は意図通りにはできない、ということです。
次のようなリスト形式のデータからなら、
	A	B	C	D	E
1	2004年度 				
2	相手先	摘要	日付	詳細	金額
3	Aホテル	チケット代	4月		100
4	Aホテル	チケット代	5月		150
5	Bホテル	チケット代	5月		110
6	Bホテル	協賛金	6月		95
7	Bホテル	チケット代	7月		100
8	Bホテル	チケット代	8月		140
 
ピボットテーブル利用で下記のような集計結果になります。
 		
合計 / 金額		日付					
相手先	摘要	4月	5月	6月	7月	8月	総計
Aホテル	チケット代	100	150				250
Aホテル 集計	100	150				250
Bホテル	チケット代		110		100	140	350
	協賛金			95			95
Bホテル 集計		110	95	100	140	445
総計		100	260	95	100	140	695
(みやほりん)

 下記で試してください。

 Sub test()
 Dim a, dic As Object, w(), x, y, z
 Set dic = CreateObject("scripting.dictionary")
 With Sheets("sheet1")
     a = .Range("a1").CurrentRegion.Value
     For i = 3 To UBound(a, 1)
         If IsEmpty(a(i, 1)) Then a(i, 1) = a(i - 1, 1)
         z = a(i, 1) & ":" & a(i, 2)
         If Not dic.exists(z) Then
             ReDim w(1 To 15)
             For ii = 1 To 15
                 w(ii) = a(i, ii)
             Next
             dic.Add z, w
         Else
             w = dic(z)
             For ii = 4 To 15
                 w(ii) = w(ii) + a(i, ii)
             Next
             dic(z) = w
         End If
     Next
 End With
 Erase a, w
 x = dic.items: dic.removeall
 With Sheets("sheet2")
     .Rows(1).Value = Sheets("sheet1").Rows(1).Value
     With .Range("a2")
         For i = 0 To UBound(x)
             .Offset(i).Resize(, UBound(x(i))) = x(i)
         Next
     End With
     For Each r In .Range("a2", .Range("a" & Rows.Count).End(xlUp))
         If Not dic.exists(r.Value) Then
             dic.Add r.Value, Empty
         Else
             r.Value = Empty
         End If
     Next
 End With
 Set dic = Nothing
 End Sub

 表の構成を再考してください。非常に無駄の多い構成だと思います。
 それと、やむを得ない場合を除き、「結合」は × 。後の処理で問題になります。
 (seiya)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.