Board logo

標題: [發問] 資料重複但只顯示出一次 [打印本頁]

作者: g93353    時間: 2012-6-15 15:00     標題: 資料重複但只顯示出一次

如標題

小弟想請問一下
若儲存格人名有重複 如何只顯示一次而不會重複加總呢
請教各位大大了>”<
    A
1 Gary  
2    Gary
3     LILY
4    JOHN
5    MOLLY
6    MOLLY
7    JAM
8 共5人(不是7人)
作者: register313    時間: 2012-6-15 15:20

回復 1# g93353
  1. Sub XX()
  2. Set d = CreateObject("scripting.dictionary")
  3. For Each A In Range([A1], [A1].End(xlDown))
  4.   d(A.Value) = ""
  5. Next
  6. Cells(1, "B").Resize(d.Count, 1) = Application.Transpose(d.keys)
  7. Cells(1 + d.Count, "B") = "共" & d.Count & "人"
  8. End Sub
複製代碼

作者: g93353    時間: 2012-6-15 15:50

謝謝 register313 大大的回答
想請問一下(SORRY剛剛沒提到) 
若Range的範圍不是到.End(xlDown) (到總數的前一格)
EX:
    A
1 Gary  
2    Gary
3     LILY
4    JOHN
5    MOLLY
6    MOLLY
7    JAM
8 共5人(不是7人)
9 總數

若用您的方法 如果都沒有人的話 好像也會顯示1人
不知道RANGE的設定要怎麼更改 或是有別得方法呢>”<
作者: register313    時間: 2012-6-15 16:19

回復 3# g93353
  1. Sub YY()
  2. Set d = CreateObject("scripting.dictionary")
  3. n = Application.Match("總數", Columns("A"), 0)
  4. For Each A In Range("A1:A" & n - 2)
  5.   If A.Value <> "" Then d(A.Value) = ""
  6. Next
  7. If d.Count <> 0 Then Cells(1, "B").Resize(d.Count, 1) = Application.Transpose(d.keys)
  8. Cells(n - 1, "A") = "共" & d.Count & "人"
  9. Cells(1 + d.Count, "B") = "共" & d.Count & "人"
  10. End Sub
複製代碼

作者: g93353    時間: 2012-6-15 16:48

感謝 register313 大大
可以請問一下
Cells(1, "B").Resize(d.Count, 1) = Application.Transpose(d.keys)
這行所表示的意思嗎??
作者: register313    時間: 2012-6-15 16:58

回復 5# g93353

Cells(1, "B").Resize(d.Count, 1) = Application.Transpose(d.keys)

d.Count                                         字典內關鍵字的數目(數字)
d.keys                                           字典內的關鍵字(橫向陣列)
Cells(1, "B")=Range("A1")=[A1]     儲存格A1
Cells(1, "B").Resize(d.Count, 1)      將儲存格A1之範圍擴大為d.Count列1欄
Application.Transpose(d.keys)         將字典內的關鍵字(橫向陣列)轉置為直向陣列
作者: GBKEE    時間: 2012-6-17 21:04

回復 1# g93353
參考這裡    4#   '使用 AdvancedFilter 進階篩選 篩選不重復的資料




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)