Trợ giúp công thức Excel, tìm kiếm

  • Thread starter Thread starter Sil_90
  • Ngày gửi Ngày gửi
Liên hệ QC

Sil_90

Thành viên chính thức
Tham gia
22/5/17
Bài viết
94
Được thích
13
Giới tính
Nữ
chào các anh chị.
em có 2 sheet dữ liệu như bên dưới
em muốn tìm kiếm giữ liệu từ sheet 2 ứng với cột Component từ sheet 1.
nhưng 1 code giả dụ nó có 2 vender như code :1410155 em muốn tìm kiếm sang vender 1, và vender 2. như em cop ví dụ ở sheet 1 ấy ạ
anh chị giúp em công thức hoặc VBA để giải bài toán này với.


sheet 1:

Component
Vendor material number 1
Vender material number 2Vender material number 3
1410155​
RM04FTN0WR04X000 PTL
1430690​
1430690​
1430690​
SR000000453

Sheet 2:
MaterialVendor material numberName 1
1410155​
RM04FTN0TA-I TECHNOLOGY CO.LTD
1410155​
WR04X000 PTLWALSIN TECHNOLOGY CORPORATION (HK)
1430690​
WR04X000 PTLWALSIN TECHNOLOGY CORPORATION (HK)
1430690​
RC0402JR-070RLYAGEO USA (HK) LTD
 
Tiếng Anh đọc bắt ớn quá. Tôi chỉ có thể đoán sơ bạn muốn gì thôi chứ không thể chắc. Và kiểu tiếng Anh như vầy thì e rằng file dữ liệu còn kinh khiếp nữa.
Viết công thức hay VBA gì cũng thấy rõ tương lai là chỉnh sửa vài lần. Ớn quá.

Gợi ý:
Mã hàng của mình thì lấy tên "Part Number". Mã hàng của nơi cung cấp thì lấy tên "Vendor Part Number". Nếu nhiều bên cung cấp thì lấy: "Supplier 1 Part Number, ....". Nhưng thường thì người ta lộn lại:
Part No, Internal (mã mình)
Part No, Supplier 1
Part No, Supplier 2
...
 
Lần chỉnh sửa cuối:
sheet 1 là file gốc có chứa nhiều giữ liệu mình cần, còn sheet 2 là thông tin của Vender mình chỉ cần có vậy thôi,
1 mã có bao nhiêu Vender và nó ra như dòng 1 của sheet 1 mình đã lấy ví dụ. ko có gì phức tạp hơn.
bạn có thể giúp mình không?
 
Vender hay vendor? đừng có dùng "ko" với tôi. Tôi không thích nói chuyện viết tắt và chào hỏi bằng tiếng Tây.

Mã:
' this code assumes the followings:
' - data comes from sheet2, starts at row 1, with 1 line of headers
' - results will be writtenn to sheet1, starts a1 A1
' - one part can have several suppliers, each with their own partno
' - a part must have at least one supplier : IMPORTANT
' - one sppplier may supply several parts
' - results are aggregated, but not sorted
Dim Dic1 As Object, Dic2 As Object
Dim ShSrc As Worksheet, ShDes As WorkSheet
Dim aSrc(), aDes()
Dim numRows As Long, i As Long ' for source data
Dim iDes As Long, jDes As Long ' for results
Dim partNo As String, supPart As String, supName As String

Set Dic1 = CreateObject("Scripting.Dictionary) ' to monitor our partno
Set Dic2 = CreateObject("Scripting.Dictionary) ' to monitor supplier name
Set ShSrc = Sheets("Sheet2")
Set ShDes = Sheets("Sheet1")
numRows = ShSrc.Cells(ShSrc.Rows.Count
aSrc = ShSrc.Range("A1").Resize(numRows, "A").End(xlUp).Row, 3).Value
' aSrc columns: 1 our partno, 2 supplier partno, 3 supplier
Redim aDes(1 To UBound(aSrc), 1 To 1)
iDes = 1 ' header for results
jDes = 1
aDes(iDes, jDes) = "our Partno")
For i = 2 To UBound(aSrc) ' skip 1st line, which is header line
  partNo = aSrc(i, 1)
  supPart = aSrc(i, 2)
  supName = aSrc(i, 3)
  If Not Dic1.Exists(partNo) Then ' new partno: add new row
    iDes = iDes + 1
    aDes(iDes, 1) = partNo ' write part number
    Dic1.Add partNo, iDes
  End If
  If Not Dic2.Exists(supName) Then ' new supplier: add new column
    jDes = jDes + 1
    Redim Preserve aDes(1 To numRows, 1 To jDes)
    aDes(1, jDes) = supName ' write supplier name
    Dic2.Add supName, jDes
  End If
  aDes(Dic1(partNo).Item, Dic2(supName).Item) = supPart ' write supplier partno
Next i
ShDes.Range("A1").Resize(iDes, jDes).Value = aDes


Nếu sheet1 có những món hàng mà sheet2 không có thì phải viết code kiểu khác.
 
Lần chỉnh sửa cuối:
chính xác là như vậy, sheet 1 có một số mã hàng mà sheet 2 không có bạn ạ
 
Web KT

Bài viết mới nhất

Back
Top Bottom