Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


39921 / 76732 ←次へ | 前へ→

【41915】Re:データの集計方法について教えて下さい
発言  Ned  - 06/8/26(土) 4:06 -

引用なし
パスワード
   ▼jun さん:
>マクロの記録だと範囲は限定されたり色々制限ありますので、
...んん...これを解析するよりピボットベース+ひと工夫。の方がラクな気はしますけど
Sub sample()
  Dim sh1 As Worksheet
  Dim sh2 As Worksheet
  Dim dicA As Object
  Dim dicB As Object
  Dim dicC As Object
  Dim i As Long
  Dim j As Long
  Dim n As Long
  Dim vntA, vntB, x
  
  Set sh1 = Worksheets("Sheet1")
  Set sh2 = Worksheets("Sheet2")
  Set dicA = CreateObject("Scripting.Dictionary")
  Set dicB = CreateObject("Scripting.Dictionary")
  Set dicC = CreateObject("Scripting.Dictionary")
  sh2.UsedRange.Clear
  vntA = sh1.Range("A2").CurrentRegion.Value
  For i = 1 To UBound(vntA)
    x = vntA(i, 1) & "," & vntA(i, 2) & vntA(i, 3)
    dicA(x) = dicA(x) + vntA(i, 4)
    dicB(vntA(i, 1) & "," & vntA(i, 2)) = Empty
    dicC(vntA(i, 3)) = Empty
  Next i
  With sh2.Range("A1").Resize(dicB.Count)
    .Value = Application.Transpose(dicB.keys())
    .TextToColumns _
      Destination:=Range("A1"), _
       DataType:=xlDelimited, _
       Comma:=True, _
        FieldInfo:=Array(Array(1, 2), Array(2, 2))
  End With
  With sh2.Range("B1")
    .Resize(, dicC.Count).Value = dicC.keys()
    .Value = sh1.Range("B2").Value
  End With
  With sh2.Range("A1").CurrentRegion
    vntB = .Resize(, .Columns.Count + 1).Value
    n = UBound(vntB, 2)
    vntB(1, n) = "不良数計"
    For i = 2 To UBound(vntB)
      For j = 3 To dicC.Count + 1
      vntB(i, j) = dicA(vntB(i, 1) & "," & vntB(i, 2) & vntB(1, j))
      vntB(i, n) = vntB(i, n) + vntB(i, j)
      Next
    Next i
    .Resize(, .Columns.Count + 1).Value = vntB
  End With
  
  Set sh1 = Nothing
  Set sh2 = Nothing
  Set dicA = Nothing
  Set dicB = Nothing
  Set dicC = Nothing
End Sub
ちょっと手抜きしてます。&眠いので今日はここまでネm(_ _)m

0 hits

【41860】データの集計方法について教えて下さい K.K 06/8/24(木) 15:42 質問
【41862】Re:データの集計方法について教えて下さい かみちゃん 06/8/24(木) 15:52 発言
【41863】Re:データの集計方法について教えて下さい K.K 06/8/24(木) 16:19 発言
【41864】Re:データの集計方法について教えて下さい K.K 06/8/24(木) 16:30 発言
【41865】Re:データの集計方法について教えて下さい かみちゃん 06/8/24(木) 16:34 回答
【41866】Re:データの集計方法について教えて下さい K.K 06/8/24(木) 17:07 お礼
【41868】Re:データの集計方法について教えて下さい かみちゃん 06/8/24(木) 17:42 発言
【41869】Re:データの集計方法について教えて下さい kazuo 06/8/24(木) 18:18 発言
【41873】Re:データの集計方法について教えて下さい かみちゃん 06/8/24(木) 19:53 回答
【41874】Re:データの集計方法について教えて下さい かみちゃん 06/8/24(木) 19:57 発言
【41871】Re:データの集計方法について教えて下さい Ned 06/8/24(木) 18:58 発言
【41875】Re:データの集計方法について教えて下さい かみちゃん 06/8/24(木) 19:59 発言
【41876】Re:データの集計方法について教えて下さい Ned 06/8/24(木) 20:32 発言
【41889】Re:データの集計方法について教えて下さい kobasan 06/8/24(木) 23:11 発言
【41892】Re:データの集計方法について教えて下さい k.k 06/8/25(金) 10:54 お礼
【41912】Re:データの集計方法について教えて下さい jun 06/8/26(土) 2:25 質問
【41913】Re:データの集計方法について教えて下さい Ned 06/8/26(土) 2:32 発言
【41914】Re:データの集計方法について教えて下さい jun 06/8/26(土) 2:41 発言
【41915】Re:データの集計方法について教えて下さい Ned 06/8/26(土) 4:06 発言
【41923】Re:データの集計方法について教えて下さい jun 06/8/26(土) 9:09 発言
【41924】Re:データの集計方法について教えて下さい かみちゃん 06/8/26(土) 9:22 発言
【41926】Re:データの集計方法について教えて下さい jun 06/8/26(土) 9:45 発言
【41931】Re:データの集計方法について教えて下さい Ned 06/8/26(土) 10:56 発言
【41932】Re:データの集計方法について教えて下さい jun 06/8/26(土) 11:15 お礼
【41952】Re:データの集計方法について教えて下さい Ned 06/8/26(土) 22:32 発言
【41955】Re:データの集計方法について教えて下さい Ned 06/8/26(土) 23:24 発言
【41969】Re:データの集計方法について教えて下さい ichinose 06/8/27(日) 11:53 発言
【41970】Re:データの集計方法について教えて下さい jun 06/8/27(日) 12:01 お礼

39921 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free