註冊
登錄
首頁
論壇版規
禁止列表
說明
地圖
數位書香
私人消息 (0)
公共消息 (0)
論壇任務 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
麻辣家族討論版版
»
Excelㄧ般區
» 請問字串要如何統計次數不重復?
返回列表
下一主題
上一主題
發帖
請問字串要如何統計次數不重復?
Hsieh
發短消息
加為好友
Hsieh
當前離線
UID
3
帖子
4901
主題
44
精華
24
積分
4916
金錢
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
在線時間
4204 小時
註冊時間
2010-4-30
最後登錄
2026-7-16
超級版主
帖子
4901
主題
44
精華
24
積分
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
註冊時間
2010-4-30
最後登錄
2026-7-16
1
#
跳轉到
»
發表於 2010-7-24 17:01
|
顯示全部帖子
回復
1#
oiggu
選取d3儲存格,加入定義名稱x
公式=OFFSET(Sheet1!$A:$A,,,COUNTA(Sheet1!$A:$A),)
下載
(11.34 KB)
2010-7-24 17:02
d3陣列公式
{=IF(ISNUMBER(MATCH($C3&D$2,LEFT(x,5),0)),SUM(1/COUNTIF(OFFSET($A$1,MATCH($C3&D$2,LEFT(x,5),0)-1,,COUNTIF(x,"="&$C3&D$2&"*")),OFFSET($A$1,MATCH($C3&D$2,LEFT(x,5),0)-1,,COUNTIF(x,"="&$C3&D$2&"*")))),0)}
向下向右複製
學海無涯_不恥下問
TOP
Hsieh
發短消息
加為好友
Hsieh
當前離線
UID
3
帖子
4901
主題
44
精華
24
積分
4916
金錢
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
在線時間
4204 小時
註冊時間
2010-4-30
最後登錄
2026-7-16
超級版主
帖子
4901
主題
44
精華
24
積分
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
註冊時間
2010-4-30
最後登錄
2026-7-16
2
#
發表於 2010-7-24 23:34
|
顯示全部帖子
回復
5#
oiggu
Sub MyCount()
Set d = CreateObject("Scripting.Dictionary")
With Sheet1
For Each a In .Range(.[A1], .[A65536].End(xlUp))
If d(Left(a, 5)) = "" Then
d(Left(a, 5)) = a
ElseIf InStr(d(Left(a, 5)), a) = 0 Then
d(Left(a, 5)) = d(Left(a, 5)) & "," & a
End If
Next
For Each a In .[C3:C5]
For Each b In .[D2:F2]
.Cells(a.Row, b.Column) = UBound(Split(d(a & b), ",")) + 1
Next
Next
End With
End Sub
複製代碼
學海無涯_不恥下問
TOP
Hsieh
發短消息
加為好友
Hsieh
當前離線
UID
3
帖子
4901
主題
44
精華
24
積分
4916
金錢
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
在線時間
4204 小時
註冊時間
2010-4-30
最後登錄
2026-7-16
超級版主
帖子
4901
主題
44
精華
24
積分
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
註冊時間
2010-4-30
最後登錄
2026-7-16
3
#
發表於 2010-7-25 20:52
|
顯示全部帖子
回復
7#
oiggu
Sub MyCount()
Set d = CreateObject("Scripting.Dictionary")
Set d1 = CreateObject("Scripting.Dictionary")
With Sheet1
For Each a In .Range(.[A1], .[A65536].End(xlUp))
d1(Left(a, 5)) = d1(Left(a, 5)) + Application.Sum(a.Offset(, 1).Resize(, 3))
If d(Left(a, 5)) = "" Then
d(Left(a, 5)) = a
ElseIf InStr(d(Left(a, 5)), a) = 0 Then
d(Left(a, 5)) = d(Left(a, 5)) & "," & a
End If
Next
For Each a In .[F5:F7]
For Each b In .[G3:L3]
If (b.Column Mod 2) = 1 Then Cells(a.Row, b.Column) = UBound(Split(d(a & b), ",")) + 1
If (b.Column Mod 2) = 0 Then Cells(a.Row, b.Column) = d1(a & b)
Next
Next
End With
End Sub
複製代碼
學海無涯_不恥下問
TOP
Hsieh
發短消息
加為好友
Hsieh
當前離線
UID
3
帖子
4901
主題
44
精華
24
積分
4916
金錢
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
在線時間
4204 小時
註冊時間
2010-4-30
最後登錄
2026-7-16
超級版主
帖子
4901
主題
44
精華
24
積分
4916
點名
142
作業系統
Windows 7
軟體版本
Office 20xx
閱讀權限
150
性別
男
來自
台北
註冊時間
2010-4-30
最後登錄
2026-7-16
4
#
發表於 2010-7-29 19:51
|
顯示全部帖子
本帖最後由 Hsieh 於 2010-7-29 22:26 編輯
回復
10#
oiggu
可見你對程式碼並未真正了解含意
況且這種統計用樞紐分析很快就能解決
建議你先把EXCEL基本功能了解
VBA是輔助工具
有了基本操作的基礎,VBA的運用才會靈活
test.rar
(16.58 KB)
下載次數: 4
2010-7-29 19:50
下載
(10.36 KB)
2010-7-29 22:23
Sub nn()
Dim A As Range, B As Range
Set d = CreateObject("Scripting.Dictionary")
With Sheets("DATE")
For Each A In .Range(.[B1], .[B1].End(xlToRight))
For Each B In .Range(.[A2], .[A2].End(xlDown))
d(A & B) = d(A & B) + Val(.Cells(A.Column, B.Row))
Next
Next
End With
With Sheets("A")
For Each A In .Range(.[B1], .[B1].End(xlToRight))
For Each B In .Range(.[A3], .[A3].End(xlDown))
.Cells(A.Column, B.Row) = d(A & B)
Next
Next
End With
End Sub
複製代碼
學海無涯_不恥下問
TOP
靜思自在 :
靜坐常恩己過、閒談莫論人非。
返回列表
下一主題
上一主題
Excel程式區
EXCEL專屬討論區
Excelㄧ般區
Excel程式區
進階應用專區
OFFICE 系列
Word
PowerPoint
Access
Office不分區
程式語言
VB 與 VB.Net
C 與 C#
Java 與 J#
程式設計不分區
資料庫
ORACLE
My SQL
MS SQL
網頁設計
ASP 與 ASP.NET
PHP
PHP+MySQL 入門實作
JavaScript
FLASH / ActionScript
HTM/ HTML/ CSS
網頁設計不分區
電腦與作業系統
電腦各種硬體討論
一般電腦軟體討論
論壇事務
管理公告
投訴反映
新手測試
愛 • 生活
公益佈告欄
生活與感動
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]
申請友情鏈接
Facebook粉絲