返回列表 上一主題 發帖

跨欄對比

跨欄對比


有三個表格,在表格“1”執行,
表格“1” 欄B 和欄G 兩樣分別在表格“KP" & "KH" 找尋,如果找到相同的數據。

舉例:
96089 & 5580 組合在KP 表裏找到
“1”表的欄M (Project) 傳回"KP"表的 "$A$1"
“1”表的欄O (KP) 傳回"KP"表的 "$C$1"

96183 & 4780 組合在 KP & KH 表裏都找到
"1”表的欄M (Project) 傳回"KP"表的 "$H$1" & "KH" 表的“$H$1", 兩者都是"BH" 相同,所以顯示"BH"
"1”表的欄N (KH) 傳回"KH"表的 "$J$1"
"1”表的欄O (KP) 傳回"KP"表的 "$J$1"

94851 & 5370 組合在 KH 表裏都找到
"1”表的欄M (Project) 傳回"KH"表的 "$A$1" &  "$H$1", 兩者不 相同,所以顯示"BF/BH"
"1”表的欄N (KH) 傳回"KH"表的 "$C$1" &  "$J$1", 兩者都是“噴油”相同,所以顯示“噴油”

96093 & 5260 組合在 KH & KP表裏都找到
"1”表的欄M (Project) 傳回"KP"表的"$A$1" & "$H$1" & "KH" 表的"$A$1" & "$H$1", 四都是"BF/ BH/ BF/ BH" 相同,因爲重複,所以顯示"BF/ BH"
"1”表的欄N (KH) 傳回"KH"表的 "$C$1" &  "$J$1", 兩者都是“噴油”相同,所以顯示“噴油”
"1”表的欄O (KP) 傳回"KP"表的  "$C$1" &  "$J$1", 兩者都是“噴油”相同,所以顯示“噴油”

對比.rar (15.59 KB)

回復 37# 198188

Crr(1, 3)  改為 Crr(i, 3). 試試看
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 36# Andy2483


    測試過,答案沒有問題。
另外有個問題,請問 "噴油" 是讀取 KP & KH  工作表内 C1 & J1 的儲存格嗎? 我測試過好像不是,請問程式哪個位置是操作這個的?
因爲有兩種選擇 “ 噴油” 和 “不噴油”,我想看看能不能自己修改一下。
或者能否像帖子裏的圖片,第一欄模號,第二欄長度,第三欄 “噴油” 或者 空白,然後直接讀取第三欄的數據。

TOP

回復 35# 198188
謝謝前輩指導,請再試試看
Option Explicit
Sub TEST()
Dim Arr, Brr, Crr, V$, Z, Q, i&, T$, TT$, A, xA As Range, N%, C%
Set Z = CreateObject("Scripting.Dictionary")
Set xA = Range(ActiveSheet.[G1], ActiveSheet.[B65536].End(3)(1, 0))
xA.Offset(1, 12).Resize(, 3).ClearContents:  Brr = xA
For i = 2 To UBound(Brr)
   T = Format(Trim(Brr(i, 2)), "0000000"): V = Format(Val(Brr(i, 7)), "0000000"): TT = T & "/" & V
   Z(TT) = Z(TT) & "/" & i
Next
Arr = ActiveSheet.[M1].Resize(UBound(Brr), 3)
A = Array(Range([KH!C1], [KH!A65536].End(3)), Range([KH!J1], [KH!H65536].End(3)), Range([KP!C1], [KP!A65536].End(3)), Range([KP!J1], [KP!H65536].End(3)))
For Each Crr In A
   Crr = Crr: N = N + 1
   For i = 3 To UBound(Crr)
      T = Format(Trim(Crr(i, 1)), "0000000"): V = Format(Val(Crr(i, 2)), "0000000"): TT = T & "/" & V
      If Z.Exists(TT) Then
         Q = Split(Z(TT) & "/", "/")
         For C = 1 To UBound(Q) - 1
            If Arr(Q(C), 1) = "" Then
               Arr(Q(C), 1) = Crr(1, 1)
               ElseIf InStr("/" & Arr(Q(C), 1) & "/", "/" & Crr(1, 1) & "/") = 0 Then
               Arr(Q(C), 1) = Arr(Q(C), 1) & "/" & Crr(1, 1)
            End If
            Arr(Q(C), N \ 3 + 2) = Crr(1, 3)
         Next
      End If
   Next
Next
ActiveSheet.[M1].Resize(UBound(Brr), 3) = Arr
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 32# Andy2483


    執行工作表裏面的資料 (SECTION & LENGTH) 組合會有重複性的,因爲是包裝不同的NO裏,所以(SECTION & LENGTH) 組合不會是唯一

TOP

本帖最後由 198188 於 2024-3-5 15:20 編輯

回復 33# 准提部林


Project 名稱 (BH / BF) 這些會經常變動,
KH / KP 欄裏只有噴油,沒有其他了

TOP

回復 25# 198188


是問:除了噴油, 還有沒有其它? 例如:上膜??
即同一鍵值, 有不同工作內容???

BF/BH  噴油/上膜~~~

TOP

回復 31# 198188


    今天才查到2列與137列關鍵字相同,後學不察,抱歉
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 30# Andy2483


    前輩指哪個資料? KP & KH 還是執行的工作表?
三個表裏的文字都是數字,沒有符號。

TOP

回復 29# 198188


    資料裡可能有看不見的特殊符號
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 君子如水,隨方就圓,無處不自在。
返回列表 上一主題