Excel VBA質問箱 IV

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

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


15543 / 76734 ←次へ | 前へ→

【66667】Re:集計方法を教えてください
発言  Yuki  - 10/9/23(木) 10:50 -

引用なし
パスワード
   ▼コロネ さん:
>ピボットテーブルを使わずに、集計する方法が
>分かりません。

>ピボットテーブルがベストなのでしょうか?
多分

で配列の処理です。
Sheet1にデータでSheet2に出力です。

Sub LoopSum()
  Dim v1   As Variant
  Dim v2   As Variant
  Dim i    As Long
  Dim j    As Long
  Dim k    As Long
  Dim col   As Long
  Dim eR   As Long
  Dim eC   As Long
  
  With Worksheets("Sheet1")
    v1 = .Range("A1").CurrentRegion.Value
  End With
  
  ReDim v2(1 To UBound(v1), 1 To UBound(v1))
  v2(1, 1) = v1(1, 1)
  v2(1, 2) = v1(1, 2)
  
  For i = 2 To UBound(v1)
    For j = 3 To UBound(v2, 2)
      If v2(1, j) = "" Then
        v2(1, j) = v1(i, 3)
        col = j
        eC = j
        Exit For
      Else
        If v1(i, 3) = v2(1, j) Then
          col = j
          Exit For
        End If
      End If
    Next
    For k = 2 To UBound(v2)
      If v2(k, 1) = "" Then
        v2(k, 1) = v1(i, 1)
        v2(k, 2) = "計"
        v2(k, col) = v1(i, 4)
        eR = k
        Exit For
      Else
        If v1(i, 1) = v2(k, 1) Then
          v2(k, col) = v2(k, col) + v1(i, 4)
          Exit For
        End If
      End If
    Next
  Next
  With Worksheets("Sheet2")
    .Cells.ClearContents
    .Range("A1").Resize(eR, eC).Value = v2
  End With
End Sub

0 hits

【66664】集計方法を教えてください コロネ 10/9/23(木) 3:56 質問
【66666】Re:集計方法を教えてください かみちゃん 10/9/23(木) 7:59 発言
【66667】Re:集計方法を教えてください Yuki 10/9/23(木) 10:50 発言
【66668】Re:集計方法を教えてください kanabun 10/9/23(木) 10:58 発言
【66669】Re:集計方法を教えてください Yuki 10/9/23(木) 15:28 発言
【66670】Re:集計方法を教えてください Yuki 10/9/23(木) 15:39 発言
【66672】Re:集計方法を教えてください kanabun 10/9/23(木) 17:13 発言
【66678】Re:集計方法を教えてください kanabun 10/9/24(金) 9:30 発言
【66681】Re:集計方法を教えてください コロネ 10/9/24(金) 22:08 お礼

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