標題:
[發問]
請問前輩關於VBA 中字串統計問題
[打印本頁]
作者:
ii31sakura
時間:
2014-6-6 16:22
標題:
請問前輩關於VBA 中字串統計問題
各位前輩請問一下~如小弟資料中"A"欄位字串資料顯示、小弟想將符合條件後進行統計即為 字串(條件項目"-"需統計出現最多次數目與項目)←進行比較與統計,
因"-"之後的項目是隨機出現、小弟之前有請教過前輩類似清單例出進行統計,
但此次為符合某條件後才進行統計,所以請教前輩們是否有其它方法像如此統計呢?
註:1. 比較data來源 → A欄位
2.比較條件("G1")
3.將結果列至("J1" & "J2")、
麻煩各位前輩幫忙了、感謝大家。
[attach]18448[/attach]
作者:
stillfish00
時間:
2014-6-6 17:03
回復
1#
ii31sakura
Sub Test()
Dim r As Long, sCond As String
Dim d, sSN As String, sType As String, max, maxType
Set d = CreateObject("scripting.dictionary")
With Sheets("Data")
sCond = .[G1].Text
r = .Cells(.Rows.count, "A").End(xlUp).Row - 1
If r <= 0 Then Exit Sub
For Each s In .[A2].Resize(r).Value
sSN = Split(s, "-")(0)
sType = Split(s, "-")(1)
If sSN = sCond Then
d(s) = d(s) + 1
If d(s) > max Then max = d(s): maxType = sType
End If
Next
.[J1].Value = maxType
.[J2].Value = max
End With
End Sub
複製代碼
作者:
yen956
時間:
2014-6-6 17:51
回復
2#
stillfish00
大大你好:
對於 dictionary 的運作, 一直都很好奇,
看了大大的傑作, 又增加了幾分了解與困惑,
先收下再研究啦, 謝謝!!
作者:
ii31sakura
時間:
2014-6-6 18:46
回復
2#
stillfish00
很感謝stillfish00前輩 這麼熱心幫忙解決小弟的困擾、
讓想了好幾天的問題總是可以得到幫助,
再一次在此謝過後小弟再來收下研究了。
感謝大大~
作者:
GBKEE
時間:
2014-6-6 20:09
回復
4#
ii31sakura
統計出現最多次數目與項目
當出現最多次數目不只ㄧ項時
Sub Test()
Dim r As Long, sCond As String
Dim d As Object, k As Variant
Set d = CreateObject("scripting.dictionary")
With Sheets("Data")
sCond = .[G1].Text
r = .Cells(.Rows.Count, "A").End(xlUp).Row - 1
If r <= 0 Then Exit Sub
For Each s In .[A2].Resize(r).Value
If sCond = Split(s, "-")(0) Then d(s) = d(s) + 1
Next
r = 0
For Each k In d.keys
If d(k) = Application.WorksheetFunction.max(d.ITEMS) Then '出現最多次數目
With .[J1].Offset(, r)
.Value = Split(k, "-")(1)
.Offset(1).Value = d(k)
End With
r = r + 1
End If
Next
End With
End Sub
複製代碼
作者:
ii31sakura
時間:
2014-6-7 08:48
回復
5#
GBKEE
感謝GBKEE前輩提供小弟另一個方向操作與思考、很謝謝stillfish00與GBKEE兩位前輩的熱心幫忙~
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)