Xét dữ liệu trong mảng 2 chiều

Liên hệ QC

quanghuywcr

Thành viên mới
Tham gia
5/11/20
Bài viết
6
Được thích
0
Kính chào các anh/chị trong group
Anh chị giúp đỡ dùm em phần này em code mãi mà không ra.
mục tiêu của em là dò tìm từng ô trong sheet "code" những ô nào có dấu "x" thì lấy mã sku và tên nhà cung cấp bỏ vào sheet danh sách mẫu
điều kiện 1 là phải xét hết tất cả các nhà cung cấp, cung cấp mặt hàng có mã sku đó. tức là xét dòng 3 cột 2 rồi đến dòng 3 cột 3, dòng 3 cột 4...., sau đó mới tới mã sku tiếp theo( là dòng tiếp theo và bắt đầu lại từ cột 2)
Điều kiện 2 là số mẫu được lọc ra ít nhất phải bằng số mẫu lấy từ sheet "dashboard" tức có thể lớn hơn, nhưng không được ít hơn.
 

File đính kèm

  • CODE.xlsx
    173.9 KB · Đọc: 14
Kính chào các anh/chị trong group
Anh chị giúp đỡ dùm em phần này em code mãi mà không ra.
mục tiêu của em là dò tìm từng ô trong sheet "code" những ô nào có dấu "x" thì lấy mã sku và tên nhà cung cấp bỏ vào sheet danh sách mẫu
điều kiện 1 là phải xét hết tất cả các nhà cung cấp, cung cấp mặt hàng có mã sku đó. tức là xét dòng 3 cột 2 rồi đến dòng 3 cột 3, dòng 3 cột 4...., sau đó mới tới mã sku tiếp theo( là dòng tiếp theo và bắt đầu lại từ cột 2)
Điều kiện 2 là số mẫu được lọc ra ít nhất phải bằng số mẫu lấy từ sheet "dashboard" tức có thể lớn hơn, nhưng không được ít hơn.
Có ai hiểu điều kiện không?
 
Có hiểu sơ sơ nhưng thông tin về điều kiện là chưa đủ Bác,như trong file nếu như mỗi mã SKU của thớt là mà cứ mỗi ô có dấu tích là lấy một lần hay là tính tổng các nhà cung ứng vào ? ở sheets danhsachmau cho hai dòng dữ liệu như thế không hiểu gì luôn
 
Thông tin của bạn cung cấp là chưa đủ để mọi người hiểu.Nhưng theo tôi hiểu thì cứ có dấu tích là những nhà cung ứng cần lấy mã và tên nhà cung ứng,Nên bạn xem file sau.Lưu ý là lần sau có thắc mắc thông tin cũng cấp đủ nhé,Tôi biết cái file này là file mô phỏng nhưng cái phần kết quả mong muốn bên sheets danhsachmau cũng chưa đủ để người giúp hiểu được
 

File đính kèm

  • GPE_Lấy Mẫu.xlsm
    175.1 KB · Đọc: 13
Có ai hiểu điều kiện không?
trước tiên mình xin cảm ơn bạn/anh/chị đã quan tâm đến bài post. Mình xin giải thích cụ thể như sau:
Mình hiện tại đang làm ở một kho hàng, nhiệm vụ là lập danh sách các mẫu cần test để xác định hàng nhập vào có an toàn hay không.
Một mẫu là một dấu x mình đánh trong sheet "code" được tạo ra từ tên một nhà cung cấp và mã sku của mặt hàng đó.
Giờ mình mong muốn là khi mình nhập vào một số lượng mẫu mình muốn test thì code sẽ tự động chạy quét từng ô trong sheet 3 và trích ra sheets 4
ví dụ thế này:
Mình nhập vào ô B4 trong sheet 1 là 10 mẫu, code sẽ chạy trên sheets 3, đầu tiên là mã sku1, lấy toàn bộ nhà cung cấp có cung cấp mặt hàng có mã sku đó tức là quét tất cả các cột cùng dòng sku đó. sau đó tính tổng mẫu quét được. nếu tổng mẫu nhỏ hơn số mẫu yêu cầu thì quét tiếp tới mã sku 2 (dòng 2), và thực hiện quét như ban đầu. Nếu tổng mẫu bằng số mẫu yêu cầu mà chưa quét hết nhà cung cấp thì vẫn quét tiếp tới nhà cung cấp cuối cùng. Tức là tổng mẫu xuất ra có thể là 11, 12, 13... miễn sau nó quét tới nhà cung cấp cuối cùng thì ngưng. nhưng số mẫu ít nhất cần đạt được là 10. Cuối cùng là xuất ra sheets 4 tương ứng các cột là sku và nhà cung cấp.
Bài đã được tự động gộp:

Mà sau vấn đề cần xử lý bằng code thì bạn đăng vào box lập trình với excel mọi người sẽ thấy nha
Dạ cảm ơn bạn!
Bài đã được tự động gộp:

Thông tin của bạn cung cấp là chưa đủ để mọi người hiểu.Nhưng theo tôi hiểu thì cứ có dấu tích là những nhà cung ứng cần lấy mã và tên nhà cung ứng,Nên bạn xem file sau.Lưu ý là lần sau có thắc mắc thông tin cũng cấp đủ nhé,Tôi biết cái file này là file mô phỏng nhưng cái phần kết quả mong muốn bên sheets danhsachmau cũng chưa đủ để người giúp hiểu được
Trước tiên mình xin cảm ơn bạn/anh/chị đã quan tâm đến bài post. Mình xin giải thích cụ thể như sau:
Mình hiện tại đang làm ở một kho hàng, nhiệm vụ là lập danh sách các mẫu cần test để xác định hàng nhập vào có an toàn hay không.
Một mẫu là một dấu x mình đánh trong sheet "code" được tạo ra từ tên một nhà cung cấp và mã sku của mặt hàng đó.
Giờ mình mong muốn là khi mình nhập vào một số lượng mẫu mình muốn test thì code sẽ tự động chạy quét từng ô trong sheet 3 và trích ra sheets 4
ví dụ thế này:
Mình nhập vào ô B4 trong sheet 1 là 10 mẫu, code sẽ chạy trên sheets 3, đầu tiên là mã sku1, lấy toàn bộ nhà cung cấp có cung cấp mặt hàng có mã sku đó tức là quét tất cả các cột cùng dòng sku đó. sau đó tính tổng mẫu quét được. nếu tổng mẫu nhỏ hơn số mẫu yêu cầu thì quét tiếp tới mã sku 2 (dòng 2), và thực hiện quét như ban đầu. Nếu tổng mẫu bằng số mẫu yêu cầu mà chưa quét hết nhà cung cấp thì vẫn quét tiếp tới nhà cung cấp cuối cùng. Tức là tổng mẫu xuất ra có thể là 11, 12, 13... miễn sau nó quét tới nhà cung cấp cuối cùng thì ngưng. nhưng số mẫu ít nhất cần đạt được là 10. Cuối cùng là xuất ra sheets 4 tương ứng các cột là sku và nhà cung cấp.
 
Xin hỏi bạn là với file mình gửi ở trên đã giải quyết được vấn đề hay chưa?
Code trên mình viết là đã quyết đến nhà cũng cấp cuỗi cùng của từng dòng rồi bạn.và trừ khi là số dấu tích bé hơn số bạn nhập vào ô B4 trong sheet 1 .còn không thì số mẫu code thu được luôn luôn lớn hơn số đã nhập
Bài đã được tự động gộp:

1.Mở file
2.Nhấn vào 【Lấy Mẫu】
3.Thao tác bằng tay để kiểm tra kết quả
1604688576082.png
 
trước tiên mình xin cảm ơn bạn/anh/chị đã quan tâm đến bài post. Mình xin giải thích cụ thể như sau:
Mình hiện tại đang làm ở một kho hàng, nhiệm vụ là lập danh sách các mẫu cần test để xác định hàng nhập vào có an toàn hay không.
Một mẫu là một dấu x mình đánh trong sheet "code" được tạo ra từ tên một nhà cung cấp và mã sku của mặt hàng đó.
Giờ mình mong muốn là khi mình nhập vào một số lượng mẫu mình muốn test thì code sẽ tự động chạy quét từng ô trong sheet 3 và trích ra sheets 4
ví dụ thế này:
Mình nhập vào ô B4 trong sheet 1 là 10 mẫu, code sẽ chạy trên sheets 3, đầu tiên là mã sku1, lấy toàn bộ nhà cung cấp có cung cấp mặt hàng có mã sku đó tức là quét tất cả các cột cùng dòng sku đó. sau đó tính tổng mẫu quét được. nếu tổng mẫu nhỏ hơn số mẫu yêu cầu thì quét tiếp tới mã sku 2 (dòng 2), và thực hiện quét như ban đầu. Nếu tổng mẫu bằng số mẫu yêu cầu mà chưa quét hết nhà cung cấp thì vẫn quét tiếp tới nhà cung cấp cuối cùng. Tức là tổng mẫu xuất ra có thể là 11, 12, 13... miễn sau nó quét tới nhà cung cấp cuối cùng thì ngưng. nhưng số mẫu ít nhất cần đạt được là 10. Cuối cùng là xuất ra sheets 4 tương ứng các cột là sku và nhà cung cấp.
Bài đã được tự động gộp:


Dạ cảm ơn bạn!
Bài đã được tự động gộp:


Trước tiên mình xin cảm ơn bạn/anh/chị đã quan tâm đến bài post. Mình xin giải thích cụ thể như sau:
Mình hiện tại đang làm ở một kho hàng, nhiệm vụ là lập danh sách các mẫu cần test để xác định hàng nhập vào có an toàn hay không.
Một mẫu là một dấu x mình đánh trong sheet "code" được tạo ra từ tên một nhà cung cấp và mã sku của mặt hàng đó.
Giờ mình mong muốn là khi mình nhập vào một số lượng mẫu mình muốn test thì code sẽ tự động chạy quét từng ô trong sheet 3 và trích ra sheets 4
ví dụ thế này:
Mình nhập vào ô B4 trong sheet 1 là 10 mẫu, code sẽ chạy trên sheets 3, đầu tiên là mã sku1, lấy toàn bộ nhà cung cấp có cung cấp mặt hàng có mã sku đó tức là quét tất cả các cột cùng dòng sku đó. sau đó tính tổng mẫu quét được. nếu tổng mẫu nhỏ hơn số mẫu yêu cầu thì quét tiếp tới mã sku 2 (dòng 2), và thực hiện quét như ban đầu. Nếu tổng mẫu bằng số mẫu yêu cầu mà chưa quét hết nhà cung cấp thì vẫn quét tiếp tới nhà cung cấp cuối cùng. Tức là tổng mẫu xuất ra có thể là 11, 12, 13... miễn sau nó quét tới nhà cung cấp cuối cùng thì ngưng. nhưng số mẫu ít nhất cần đạt được là 10. Cuối cùng là xuất ra sheets 4 tương ứng các cột là sku và nhà cung cấp.
Chép code vào sheet Dashboard
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim nMau
  If Target.Address(0, 0) = "B4" Then
    nMau = Target.Value
    If IsNumeric(nMau) Then
      nMau = CLng(nMau)
      If nMau > 0 Then
        Call LayMau(nMau)
      End If
    End If
  End If
End Sub

Private Sub LayMau(ByRef nMau)
  Dim aCode(), Res()
  Dim sRow&, sCol&, i&, k&, j&, sKu$
 
  With Sheets("code")
    aCode = .Range("A3").CurrentRegion.Value
  End With
  sRow = UBound(aCode): sCol = UBound(aCode, 2)
  ReDim Res(1 To nMau + sCol, 1 To 4)
  For i = 3 To sRow
    sKu = aCode(i, 1)
    For j = 2 To sCol
      If LCase(aCode(i, j)) = "x" Then
        k = k + 1
        Res(k, 1) = k
        Res(k, 2) = sKu
        Res(k, 4) = aCode(2, j)
      End If
    Next j
    If k >= nMau Then Exit For
  Next i
  With Sheets("danhsachmau")
    i = .Range("B" & Rows.Count).End(xlUp).Row
    If i > 2 Then .Range("A3:D" & i).ClearContents
    .Range("A3").Resize(k, 4) = Res
    .Select
  End With
End Sub
 

File đính kèm

  • CODE.xlsb
    168.6 KB · Đọc: 15
Xin hỏi bạn là với file mình gửi ở trên đã giải quyết được vấn đề hay chưa?
Code trên mình viết là đã quyết đến nhà cũng cấp cuỗi cùng của từng dòng rồi bạn.và trừ khi là số dấu tích bé hơn số bạn nhập vào ô B4 trong sheet 1 .còn không thì số mẫu code thu được luôn luôn lớn hơn số đã nhập
Bài đã được tự động gộp:

1.Mở file
2.Nhấn vào 【Lấy Mẫu】
3.Thao tác bằng tay để kiểm tra kết quả
View attachment 248832
mình cảm ơn bạn đã giúp mình code, tuy code chưa giải quyết được vấn đề của mình, nhưng mình cũng xin chân thành cảm ơn bạn, và rất mong học được từ bạn những điều mới mẻ!
Chân thành cảm ơn!
 
Cả code của tôi và của bác Hieucd điều không đúng yêu cầu? :)
 
mình cảm ơn bạn đã giúp mình code, tuy code chưa giải quyết được vấn đề của mình

Ý đồ bạn muốn có phải như vầy không: Khi nhập số mẫu cần kiểm là 10 thì lọc ra được 4 SKU có số lượng NCC từ 10 trở lên (như hình)

Screen Shot 2020-11-11 at 9.03.15 AM.png
 
Cả code của tôi và của bác Hieucd điều không đúng yêu cầu? :)
Đây là code mình viết, hiện tại đã tạm thời giải quyết được vấn đề của mình tuy nhiên vẫn còn chút khúc mắc như sau:
Ví dụ ngày đầu tiên mình nhập 24 mẫu vào ô B4 sheet1 , thì code sẽ chạy từ dòng 3 đến dòng 5 chẳng hạn, nhưng ngày hôm sau mình muốn nhập 50 mẫu thì code sẽ chạy từ dòng 6 trở đi chứ không chạy từ dòng 3 nữa. Thứ hai là như bạn thấy thì mình chạy i từ 3 đến 323, giờ mình muốn khi mình nhập thêm số liệu mới vào sheet code thì nó sẽ hiệu chỉnh dòng cuối lên thêm, tức là không chỉ dừng lại ở 323 nữa.
Bạn có thể giúp mình được không?
P/S với lại mình ở tp hcm, nếu bạn cũng ở thành phố thì mình có thể mời bạn đi cafe để cảm ơn được không?
Bài đã được tự động gộp:

Ý đồ bạn muốn có phải như vầy không: Khi nhập số mẫu cần kiểm là 10 thì lọc ra được 4 SKU có số lượng NCC từ 10 trở lên (như hình)

View attachment 249076
ý đồ của mình đây bạn ơi. bạn nhập số mẫu vào ô b4 rồi bấm ô xanh " tạo danh sách mẫu" là sẽ hiểu ý mình nhé
 

File đính kèm

  • taodanhsachmau-code.xlsm
    193.5 KB · Đọc: 6
  • taodanhsachmau-code.xlsm
    193.5 KB · Đọc: 4
nếu là theo ý muốn chạy từ dòng nào đến dòng nào đó thì gán 2 biến,sau đó làm cái inputbox rồi nhập vào,hoặc đơn giản hơn là gán cho nó bằng hai ô nào đó,nhập điểm đầu và điểm cưới đển nó chạy.đái khái vầy
Mã:
Dim i&, BD&, KT&
BD = Sheet1.Range("A1").Value
KT = Sheet1.Range("B1").Value
For i = BD To KT
    'CODE
Next
Bài đã được tự động gộp:

Mã:
Dim Lr&
Lr = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
tìm dòng cuối bằng cách này,thay tên sheets và cột cho hợp lý là được.mình chưa xem file
Bài đã được tự động gộp:

với lại mình ở tp hcm
Hiện tại mình không ở Việt Nam :p
 
Web KT
Back
Top Bottom