標題:
如何判斷為同一組
[打印本頁]
作者:
s7659109
時間:
2018-7-31 11:40
標題:
如何判斷為同一組
請問,如何依A,B及D欄為條件,判斷是否為同一組?
作者:
li_hsien
時間:
2018-7-31 11:44
回復
1#
s7659109
根據附件我看不太懂@@
第2列、第12列、第13列 為什麼都是NO1?
對於"同一組"有明確的定義嗎?
作者:
a5007185
時間:
2018-7-31 13:51
本帖最後由 a5007185 於 2018-7-31 13:53 編輯
回復
1#
s7659109
我是用VBA處理的,
請參考以下程式碼。
Sub NumberCode()
Dim i%, Str$, ArrStr$
i = 2
ArrStr = "" '清空已記錄到的條件
Do Until Range("C" & i) = ""
'將A欄、B欄、D欄合併為一個字串作為條件
Str = Range("A" & i) & Range("B" & i) & Range("D" & i)
'若該條件未記錄過,則記錄之。
If InStr("," & ArrStr & ",", "," & Str & ",") = 0 Then ArrStr = ArrStr & "," & Str
'撈出Str在陣列ArrStr中的索引值
Range("F" & i) = "No. " & UBound(Split(Split(ArrStr, Str)(0), ","))
i = i + 1
Loop
End Sub
複製代碼
作者:
s7659109
時間:
2018-7-31 15:35
本帖最後由 s7659109 於 2018-7-31 15:37 編輯
問題:
條件:當a欄b欄及d欄一致時,才給同一編號,測試error
作者:
naruto018
時間:
2018-7-31 15:39
回復
1#
s7659109
填入F2,其餘下拉
=IF(COUNTIFS($A$1:A1,A2,$B$1:B1,B2,$D$1:D1,D2)>0,LOOKUP(1,0/(($A$1:A1=A2)*($B$1:B1=B2)*($D$1:D1=D2)),$F$1:F1),"NO"&SUMPRODUCT(1/COUNTIF($F$1:F1,$F$1:F1)))
複製代碼
作者:
s7659109
時間:
2018-7-31 15:43
因原始資料有8000筆,希望以vba解決
作者:
s7659109
時間:
2018-7-31 15:54
函數測試仍error
作者:
stillfish00
時間:
2018-7-31 17:27
回復
7#
s7659109
你給錯條件了,你再看清楚一點。。。
作者:
s7659109
時間:
2018-7-31 18:51
以no1為例第2列至第12列都是同組,其中d欄cr(借方),dr(貸方),確實以:a欄b欄及d欄為判讀要件
已更正對照內容了
作者:
s7659109
時間:
2018-7-31 18:52
以no1為例第2列至第12列都是同組,其中d欄cr(借方),dr(貸方),確實以:a欄b欄及d欄為判讀要件
作者:
faye59
時間:
2018-7-31 22:00
回復
10#
s7659109
以no1為例第2列至第12列都是同組,其中d欄cr(借方),dr(貸方),確實以:a欄b欄及d欄為判讀要件
參考你的附檔
1.同組標同一編號(條件為a:b:d相同)
2.希望結果(條件為a:b相同)
我的理解是這樣...
依照你的希望結果d欄位沒有參考的條件...
dr cr不管哪個都一樣歸類同組,
a與b成立就歸類同組了。
借3#大大程序修改,
這樣就跟你"希望結果"一樣了!?
Sub NumberCode()
Dim i%, Str$, ArrStr$
i = 2
ArrStr = "" '清空已記錄到的條件
Do Until Range("C" & i) = ""
'將A欄、B欄、D欄合併為一個字串作為條件
Str = Range("A" & i) & Range("B" & i) '& Range("D" & i)
'若該條件未記錄過,則記錄之。
If InStr("," & ArrStr & ",", "," & Str & ",") = 0 Then ArrStr = ArrStr & "," & Str
'撈出Str在陣列ArrStr中的索引值
Range("F" & i) = "No. " & UBound(Split(Split(ArrStr, Str)(0), ","))
i = i + 1
Loop
End Sub
複製代碼
作者:
s7659109
時間:
2018-8-1 09:09
可以了,但如果超過百萬row,如何優化,加快速度,如附檔案
作者:
a5007185
時間:
2018-8-1 22:45
回復
12#
s7659109
如果是上百萬的,
我想如果是透過Excel還是需要一點時間,
我不太清楚你原始資料上百萬筆是什麼樣的狀況,
但是我將你原本的範例用自動填滿至Excel最大行數 1,048,576,
試著運作的結果大致上花了快兩分鐘的時間,
我想如果還需要減少運作時間,
可能你需要考慮其他語言的協助,
這樣可能對於你來講比較實用。
另外我想確定一下你附檔的用意,
我不太清楚你想表達的是什麼,
我不知道這和你原本的問題有什麼關聯性。
作者:
s7659109
時間:
2018-8-2 07:29
需要與vlookup搭配使用,謝謝你的幫忙。
作者:
s7659109
時間:
2018-8-2 07:30
也謝謝邏輯大大。
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)