返回列表 上一主題 發帖

[發問] 統計筆數及計算數量

回復 4# ML089

發文時,勾選下方禁用表情選項
學海無涯_不恥下問

TOP

回復 1# b9208
  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. Set d1 = CreateObject("Scripting.Dictionary")
  4. For Each a In Range([B8], [B8].End(xlDown))
  5. m = a.Text & "," & a.Offset(, 2) & "," & a.Offset(, 4)
  6. n = a.Text & "," & a.Offset(, 1) & "," & a.Offset(, 2)
  7.    If d(m) <= a.Offset(, 7) Then _
  8.    d(m) = a.Offset(, 7)
  9.    d1(n) = ""
  10. Next
  11. For Each ky In d.keys
  12.   ar = Split(ky, ",")
  13.   d(ar(0) & ar(1)) = d(ar(0) & ar(1)) + d(ky)
  14. Next
  15. For Each ky In d1.keys
  16.   ar = Split(ky, ",")
  17.   d1(ar(0) & ar(2)) = d1(ar(0) & ar(2)) + 1
  18. Next
  19. For Each a In [N8:N14]
  20.    For Each c In [O7:P7]
  21.      Cells(a.Row, c.Column) = IIf(d1(a & c) = "", 0, d1(a & c))
  22.    Next
  23. Next
  24. For Each a In [N19:N25]
  25.    For Each c In [O7:P7]
  26.      Cells(a.Row, c.Column) = IIf(d(a & c) = "", 0, d(a & c))
  27.    Next
  28. Next
  29. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 9# ML089

隔天表情符號消失,是因為我幫你編輯過了
學海無涯_不恥下問

TOP

回復 14# b9208
  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. Set d1 = CreateObject("Scripting.Dictionary")
  4. With Sheets("Sheet1")
  5. For Each a In .Range(.[B8], .[B8].End(xlDown))
  6. m = a.Text & "," & a.Offset(, 2) & "," & a.Offset(, 4)
  7. n = a.Text & "," & a.Offset(, 1) & "," & a.Offset(, 2)
  8.    If d(m) <= a.Offset(, 7) Then _
  9.    d(m) = a.Offset(, 7) '取出B、D、F欄同組最大值
  10.    d1(n) = "" 'B、C、D欄不重複索引
  11. Next
  12. End With
  13. For Each ky In d.keys
  14.   ar = Split(ky, ",")
  15.   d(ar(0) & ar(1)) = d(ar(0) & ar(1)) + d(ky) '取出B、D、F欄同組加總
  16. Next
  17. For Each ky In d1.keys
  18.   ar = Split(ky, ",")
  19.   d1(ar(0) & ar(2)) = d1(ar(0) & ar(2)) + 1 ''B、C、D欄組合計數
  20. Next
  21. With Sheets("Sheet2")
  22. For Each c In .[O7:P7]
  23. cnt = 0
  24.    For Each a In .[N8:N14]
  25.     .Cells(a.Row, c.Column) = IIf(d1(a & c) = "", 0, d1(a & c))  '依序填入組合計數
  26.      cnt = cnt + d1(a & c)
  27.    Next
  28. .Cells(15, c.Column) = cnt
  29. Next
  30. For Each c In .[O7:P7]
  31. cnt = 0
  32.     For Each a In .[N19:N25]
  33.      .Cells(a.Row, c.Column) = IIf(d(a & c) = "", 0, d(a & c)) '依序填入組合加總
  34.      cnt = cnt + d1(a & c)
  35.    Next
  36. .Cells(26, c.Column) = cnt
  37. Next
  38. End With
  39. End Sub
複製代碼
T1.rar (13.39 KB)
學海無涯_不恥下問

TOP

回復 18# b9208
在此階段的字典作用,主要是取得項目
先知道同組的索引有哪些?
後面
For Each ky In d1.keys
  ar = Split(ky, ",")
  d1(ar(0) & ar(2)) = d1(ar(0) & ar(2)) + 1 ''B、C、D欄組合計數
Next
這段就是讓B、D欄相同者計數
學海無涯_不恥下問

TOP

        靜思自在 : 改變自己是自救,影響別人是救人。
返回列表 上一主題