返回列表 上一主題 發帖

[發問] 簡單組合問題。

[發問] 簡單組合問題。

本帖最後由 stephenlee 於 2021-6-2 11:44 編輯

附件表,如何用 F欄"Line"及Q欄"CTN" 來自動分類出是由那個Line 組合成, X欄 "line group" 是得出X欄的結果,
如何做像X欄那樣的結果, X 欄是我要求得出的結果,F欄 Line 資料有多有少, 要根據Q欄來分Line 是由多少組成。
謝謝

組合.zip (7.33 KB)

回復  stephenlee

請測試看看,謝謝。

Sub test()
Dim Arr, a, a1
Arr = Range("A2:A" & [A65536] ...
samwang 發表於 2021-6-5 12:25



  這個也是完全符合要求,完美解決了我所需的問題。 非常感激大大一直幫忙,幫我節省了處理資料的時間,十分感謝。

題外話:  大大真的很強。

TOP

回復 10# stephenlee

請測試看看,謝謝。

Sub test()
Dim Arr, a, a1
Arr = Range("A2:A" & [A65536].End(3).Row)
For i = 1 To UBound(Arr)
    a = Split(Arr(i, 1), "-")(0)
    a1 = Split(Arr(i, 1), "-")(1)
    If a = a1 Then Arr(i, 1) = a
Next
Range("B2").Resize(UBound(Arr)).NumberFormatLocal = "@"
Range("B2").Resize(UBound(Arr)) = Arr
End Sub

TOP

回復  stephenlee

請再測試看看,謝謝。

Sub test3()
Dim Arr, xD, i%, i2&, N%
Arr = Range([F1] ...
samwang 發表於 2021-6-4 18:04



    以上指令完全符合要求,太感謝大大幫了我這麼多忙,不好意思要你花時間幫我研究。非常感謝。  在此謝謝了。

不知道能不能幫我最後一個問題,這個簡單一點。

檔案內 A 欄是資料, B欄是 運算結果。

要求是 當 A欄儲存格 在 -  前和後是一樣的話, 只保留 第一個 - 前的數字

如果不一樣,那就不用變。 A欄的資料有多有少。

A欄為 資料,B 欄為要求輸出後的結果,跪謝了。

抽數字.zip (6.79 KB)

TOP

回復 8# stephenlee

請再測試看看,謝謝。

Sub test3()
Dim Arr, xD, i%, i2&, N%
Arr = Range([F1], [Q65536].End(3))
Set xD = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(Arr)
    If Not xD.Exists(Arr(i, 12) & "") Then
        xD(Arr(i, 12) & "") = i
        For i2 = i To UBound(Arr)
           If Not xD.Exists(Arr(i2, 12) & "") Then Exit For
        Next
        Cells(i, 24) = Arr(i, 1) & "~" & Arr(i2 - 1, 1)
    End If
Next
End Sub

TOP

回復  stephenlee

不好意思沒注意到,請再測試看看,謝謝。

Sub test2()
Dim Arr, xD, i%, i2&, N% ...
samwang 發表於 2021-6-3 15:56



    麻煩你才對,用最新指示,發覺 1/8 會出現結果,但 2/8 就沒有任何資料,  會隔一個才出現結果,要再麻煩你看看。謝謝

TOP

回復 6# stephenlee

不好意思沒注意到,請再測試看看,謝謝。

Sub test2()
Dim Arr, xD, i%, i2&, N%
Arr = Range([F1], [Q65536].End(3))
Set xD = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(Arr)
    If Not xD.Exists(Arr(i, 12) & "") Then
        xD(Arr(i, 12) & "") = i
        For i2 = i To UBound(Arr)
            N = xD(Arr(i2, 12) & ""): If N = 0 Then Exit For
        Next
        Cells(i, 24) = Arr(i, 1) & "~" & Arr(i2 - 1, 1)
    End If
Next
End Sub

TOP

回復  stephenlee

請測試看看,謝謝。

Sub test()
Dim Arr, xD, i%, i2&, N%
Arr = Range([F1], [ ...
samwang 發表於 2021-6-2 16:08



非常感謝大大,又是閣下再次幫忙。
不過有一個部份還差一點,望閣下看是否能幫忙解決。
感謝你花了太多時間幫我研究這個。

使用了VBA 指示後,例如 CTN  5/8  正確的組合應該是 5-15, 但顯示了 5-11 。第 8/8 也是 正確應該是5-15 。 但也顯示 5-11

能不能做到根據F欄和Q欄 的資料多少來做出組合排列, 就是F欄和Q欄都是有機會多和少,要根據情況排列,做法是一樣的,謝謝了。

TOP

回復 3# stephenlee

請測試看看,謝謝。

Sub test()
Dim Arr, xD, i%, i2&, N%
Arr = Range([F1], [Q65536].End(3))
Set xD = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(Arr)
    If Not xD.Exists(Arr(i, 12) & "") Then
        xD(Arr(i, 12) & "") = ""
        For i2 = i To UBound(Arr)
            If xD.Exists(Arr(i2, 12) & "") Then N = N + 1
        Next
        Cells(i, 24) = Arr(i, 1) & "~" & N: N = 0
    End If
Next
End Sub

TOP

google"EXCEL迷"  blog  或google網址:https://hcm19522.blogspot.com/

TOP

        靜思自在 : 難行能行,難捨能捨,難為能為,才能昇華自我的人格。
返回列表 上一主題