Nhờ viết Code lấy dữ liệu từ sheet này qua sheet khác

Liên hệ QC

SoGoKu7

Thành viên chính thức
Tham gia
4/9/21
Bài viết
62
Được thích
13
Giới tính
Nữ
Xin chào Anh/Chị
Như tiêu đề, em nhờ Anh/Chị giúp đỡ em Code lấy dữ liệu từ sheet này qua sheet khác theo mô tả phía dưới
※ Hiện em đang dùng công thức để lấy dữ liệu nhưng dễ bị nhầm lẫn (sai)
Rất mong nhận được sự giúp đỡ
Trân thành cảm ơn Anh/Chị
1649047013016.png
 

File đính kèm

  • gpe.xlsx
    49.1 KB · Đọc: 6
Nếu dữ liệu ít thì dùng công thức cũng được mà. Dễ nhầm sai là trường hợp nào thế bạn
Dạ, công thức thì nó cũng có ra. Tuy nhiên là phải để ở dạng công thức chờ (chỗ này là chỗ dễ sai đó bác)
Với lại ở đây e để ít dữ liệu minh hoạ thế thôi, thực tế thì rất nhiều và quy luật lấy dữ liệu thì không đổi như trong mô tả ạ!
 
Upvote 0
Có khi nào cùng PO nhưng có nhiều ngày nhận khác nhau không bạn?

Dữ liệu của bạn không có nhưng có khi nào có trường hợp như vậy không?
 
Upvote 0
Dạ, công thức thì nó cũng có ra. Tuy nhiên là phải để ở dạng công thức chờ (chỗ này là chỗ dễ sai đó bác)
Với lại ở đây e để ít dữ liệu minh hoạ thế thôi, thực tế thì rất nhiều và quy luật lấy dữ liệu thì không đổi như trong mô tả ạ!
Sheet2 bạn khóa sheet à?
 
Upvote 0
Có khi nào cùng PO nhưng có nhiều ngày nhận khác nhau không bạn?

Dữ liệu của bạn không có nhưng có khi nào có trường hợp như vậy không?
Dạ, không có trường hợp đó Bác ạ!
Mỗi ngày khác nhau là một PO ạ!
Bài đã được tự động gộp:

Sheet2 bạn khóa sheet à?
Xin lỗi Bác,
Em quên chưa mở, mật khẩu là: 3256 Bác nhé!
 
Upvote 0
Dạ, không có trường hợp đó Bác ạ!
Mỗi ngày khác nhau là một PO ạ!
Bài đã được tự động gộp:


Xin lỗi Bác,
Em quên chưa mở, mật khẩu là: 3256 Bác nhé!
2 bạn là 1 à?................
Bài đã được tự động gộp:

Dạ, không có trường hợp đó Bác ạ!
Mỗi ngày khác nhau là một PO ạ!
Bài đã được tự động gộp:


Xin lỗi Bác,
Em quên chưa mở, mật khẩu là: 3256 Bác nhé!
Mỗi 1 PO No đều có số lượng PART SNO giống nhau à
 
Upvote 0

File đính kèm

  • DataSheetToSheet_SoGoKu7.xlsm
    67.4 KB · Đọc: 18
Lần chỉnh sửa cuối:
Upvote 0
Xin chào Anh/Chị
Như tiêu đề, em nhờ Anh/Chị giúp đỡ em Code lấy dữ liệu từ sheet này qua sheet khác theo mô tả phía dưới
※ Hiện em đang dùng công thức để lấy dữ liệu nhưng dễ bị nhầm lẫn (sai)
Rất mong nhận được sự giúp đỡ
Trân thành cảm ơn Anh/Chị
Góp vui, Hãy thử xem sao.
 

File đính kèm

  • gpe(Mr SoGoKu7).xlsm
    58.1 KB · Đọc: 7
Upvote 0
Góp vui, Hãy thử xem sao.
Tôi thấy hình như bạn nhầm chỗ dòng 2 của mảng PO: sArr(2, j) = Arr(i, 3) mới đúng chứ. Vả lại đâu có cần key gộp 3 cột, chỉ cần cột PO.No là đủ vì bạn thớt đã xác nhận không có chuyện 1 PO mà nhiều ngày.
 
Upvote 0
Tôi thấy hình như bạn nhầm chỗ dòng 2 của mảng PO: sArr(2, j) = Arr(i, 3) mới đúng chứ. Vả lại đâu có cần key gộp 3 cột, chỉ cần cột PO.No là đủ vì bạn thớt đã xác nhận không có chuyện 1 PO mà nhiều ngày.
Cảm ơn anh đã xem bài.
Đúng là sArr(2, j) = Arr(i, 3) mới đúng ý của chủ thớt.
Tôi làm xong và gửi trả lời trước khi đọc bài xác nhận của chủ thớt nên không sửa nữa, hai là tôi thấy có cả FORECAST nên cứ nhắm mắt code nên mới có chuyện nhầm như đã nói ở trên..
Thêm nữa là các bài mà các cột tiêu đề có 3 loại ngôn ngữ, mình thì tiếng việt còn chưa hiểu biết hết chứ nói gì đến tiếng Trung, Tiếng Anh, nhìn thôi đã thấy nản.
 
Upvote 0
Dạ, công thức thì nó cũng có ra. Tuy nhiên là phải để ở dạng công thức chờ (chỗ này là chỗ dễ sai đó bác)
Với lại ở đây e để ít dữ liệu minh hoạ thế thôi, thực tế thì rất nhiều và quy luật lấy dữ liệu thì không đổi như trong mô tả ạ!
Thêm 1 cách khác tham khảo
Mã:
Sub ABC()
Dim sArr(), Res1(), Res2(), i&, iRow&, R&, J&, K&
Dim Dic As Object
Set Dic = CreateObject("scripting.dictionary")
With Sheets("2")
    iRow = .Range("B" & Rows.Count).End(3).Row
    sArr = .Range("A4:N" & iRow).Value
End With
R = UBound(sArr)
ReDim Res1(1 To 3, 1 To R)
ReDim Res2(1 To R, 1 To R)
For i = 1 To UBound(sArr, 1)
    If Dic.exists(sArr(i, 2)) = False Then
        J = J + 1
        Dic.Item(sArr(i, 2)) = J
        Res1(1, J) = sArr(i, 10)
        Res1(2, J) = sArr(i, 3)
        Res1(3, J) = sArr(i, 2)
    End If
        If Dic.exists(sArr(i, 5)) = False Then
            K = K + 1
            Dic.Item(sArr(i, 5)) = K
            Res2(Dic.Item(sArr(i, 5)), 1) = sArr(i, 5)
            Res2(Dic.Item(sArr(i, 5)), Dic.Item(sArr(i, 2)) + 1) = sArr(i, 6)
        Else
            Res2(Dic.Item(sArr(i, 5)), J + 1) = Res2(Dic.Item(sArr(i, 5)), J + 1) + sArr(i, 6)
        End If
Next
With Sheets("1")
    .Range("D10").Resize(3, J).Value = Res1
    .Range("C16").Resize(K, J + 1).Value = Res2
End With
End Sub
 
Upvote 0
Anh còn phân biệt được là tiếng Trung, tiếng Anh. Với em là ngoại ngữ hết.
Thực ra chủ thớt đã giải thích cách lấy dữ liệu khá tường minh rồi. Do đó đâu cần đọc tên cột, tên chỉ tiêu tiếng này tiếng nọ làm gì, cứ array(i, cột mấy) làm tới thôi.
 
Upvote 0
Đội này cùng doanh trại à
Bọn em đang đầu quân cho Nhật Bổn bác ơi.
Bài đã được tự động gộp:

Lâu lắm mới thấy đồng nghiệp biết nhau trên GPE vì phần đông mem GPE giấu thân phận dữ quá
Bác Thóc đưa em váo đây bác à
Vào đây được các bác khai sáng, em đỡ lúa hẳn!
 
Upvote 0
Em cảm ơn các Anh/Chị đã nhiệt tình giúp đỡ ạ
Mới dùng đến Code của bác @Maika8008 thôi đã ngon lành rồi
Cảm ơn bác @HUONGHCKT @BuiQuangThuan và cả nhà đã hỗ trợ em nhé!
đa tạ!
 
Upvote 0
Web KT

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

Back
Top Bottom