標題:
請問SUMIF程式
[打印本頁]
作者:
lone_tiger0303
時間:
2011-8-3 12:49
標題:
請問SUMIF程式
項目 數量 項目 統計
A 1 A 5
A 2 B 2
C 2 C 4
D 2
E 2
R 2 統計欄是用函數SUMIF($A:$A,$E2,$B:$B)作統計
F 2 如何用巨集來呈現計算程式呢
F 2
G 2
E 2
Y 2
U 2
I 2
J 2
H 2
G 2
F 2
B 2
C 2
A 2
Z 2
作者:
oobird
時間:
2011-8-3 14:01
回復
1#
lone_tiger0303
Sub yy()
[d1].Consolidate [a1].CurrentRegion.Address(, , xlR1C1), xlSum, 1, 1
End Sub
複製代碼
作者:
lone_tiger0303
時間:
2011-8-3 14:43
我是新手~~所以看不太懂意思
這有一個檔案~~麻煩您協助
作者:
oobird
時間:
2011-8-3 17:40
新手就更該認真點
別隨便發個與你的檔案完全兩回事的問題。
作者:
lone_tiger0303
時間:
2011-8-3 17:43
oobird 老師~~抱歉~~學生知錯了
還請您不計前嫌
作者:
oobird
時間:
2011-8-3 23:45
回復
5#
lone_tiger0303
跑一下這個程式
Sub yy()
Dim d As Object, arr, a, i%, m%
Set d = CreateObject("Scripting.Dictionary")
a = Range("ac16:ah" & [ah65536].End(3).Row)
ReDim arr(1 To UBound(a), 1 To 3)
For i = 1 To UBound(a)
If d(a(i, 6)) = "" Then
m = m + 1
d(a(i, 6)) = m
arr(m, 1) = a(i, 6)
arr(m, 2) = a(i, 1)
arr(m, 3) = a(i, 2)
Else
arr(d(a(i, 6)), 2) = arr(d(a(i, 6)), 2) + a(i, 1)
arr(d(a(i, 6)), 3) = arr(d(a(i, 6)), 3) + a(i, 2)
End If
Next
Range("aj16").Resize(m, 3) = arr
End Sub
複製代碼
作者:
lone_tiger0303
時間:
2011-8-4 13:25
謝謝您的幫忙
作者:
lone_tiger0303
時間:
2011-8-4 15:40
oobird 老師
學生有一個巨集執行到一半會出現"型態錯誤"
不知錯在何處~~請老師不吝給予指導
作者:
Hsieh
時間:
2011-8-4 16:14
回復
8#
lone_tiger0303
錯誤是因為
k = Application.VLookup(m, Ay, 2)
當m在不存在於Ay時就會產生錯誤值
所以,無法在下一句中的寫入動作使用
B.Offset(, 1) = B.Offset(, -6) & "-" & k
改成
If Not IsError(k) Then B.Offset(, 1) = B.Offset(, -6) & "-" & k
作者:
lone_tiger0303
時間:
2011-8-4 16:53
謝謝!程式套用後以可以使用
但101201030D22 為何無法比對套資料
請再費心給予指導
作者:
Hsieh
時間:
2011-8-4 18:06
回復
10#
lone_tiger0303
VLOOKUP函數,若要模糊比對,資料庫必須是以遞增排序
請參考VLOOKUP函數說明
將第4個引數補上,讓他成為比對完全相同資料
k = Application.VLookup(m, Ay, 2, 0)
作者:
lone_tiger0303
時間:
2011-8-5 12:37
謝謝~~受教了
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)