返回列表 上一主題 發帖

[發問] 簡單組合問題。

[發問] 簡單組合問題。

本帖最後由 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)

回復 1# stephenlee


不好意思,不太能理解X欄的結果如何產出,可否請你再詳細說明規則,感謝。

TOP

回復  stephenlee


不好意思,不太能理解X欄的結果如何產出,可否請你再詳細說明規則,感謝。
samwang 發表於 2021-6-2 14:28



   麻煩你, 其實CTN 是箱 編號  1/8 代表第一箱,而X欄  1/8 代表 有1-12 Line 存在, 所以在第一行打上 1-12,
其他的也是這樣。,我想將資料貼上後,自動會得出X 欄的結果。謝謝

TOP

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

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

回復  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

回復 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 test2()
Dim Arr, xD, i%, i2&, N% ...
samwang 發表於 2021-6-3 15:56



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

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 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

        靜思自在 : 站在半路,比走到目標更辛苦。
返回列表 上一主題