Cách Sử dụng Data Validation lọc có nhiều điều kiện (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Pham Cao Van

Thành viên mới
Tham gia
1/6/17
Bài viết
36
Được thích
6
Giới tính
Nam
Chào các Anh/Chị trong group,

Em đang gặp bài toán khó về cân bằng, mong các Anh/Chị giúp đỡ.

Bài toán:
Tại cột Dò Tìm sẽ đưa ra 2 lựa chọn:
+ Level 1: Nếu tại cột "thời gian chênh lệch" đang âm thì sẽ dò tất cả các "công đoạn" cùng "số nhóm" và cùng "loại máy móc" đang có "thời gian chênh lệch" dương và ngược lại. Sẽ hiện ra các công đoạn đó cho mình lựa chọn. Khi lựa chọn xong, 2 cột "thời gian chênh lệch" (âm và dương) được lựa chọn sẽ trừ lần nhau.
+ Lever 2: Nếu tại cột "thời gian chênh lệch" đang âm thì sẽ dò tất cả các "công đoạn" khác "số nhóm" và cùng "loại máy móc" đang có "thời gian chênh lệch" dương và ngược lại. Sẽ hiện ra các công đoạn đó cho mình lựa chọn. Khi lựa chọn xong, 2 cột "thời gian chênh lệch" (âm và dương) được lựa chọn sẽ trừ lần nhau.
(vui lòng xem file đính kèm đề bài + 1 mẫu kết quả).

Em đang lấy 1 ví dụ kết quả ra cho ô E4 và F4 như sau:
218963
Em xin Cảm ơn!
 

File đính kèm

Bạn tham khảo trước cách mình làm nhờ VBA
Thanks bạn nhiều,
Cách của bạn khá hay.
Tuy nhiên bài toán của mình chỉ là hiện giờ tại cột "thời gian chênh lệch " đang có công đoạn thì dương, công đoạn thì âm.
Mình chỉ muốn cân bằng nó lại (lấy âm cho dương và dương cho âm).
Dựa theo độ ưu tiên đầu tiên là cùng loại máy móc, sau là cùng số nhóm.
Bạn có cách nào sổ dữ liệu ra như hình đính kèm phần trên được không bạn!
 
Tạm thời là vầy:

Lần sau không được đăng bài cùng nội dung ở nhiều nơi & với lý do như vậy: Đây là bài cuối cùng của mình với chủ đề này của bạn!

[File mình đã tháo, thu hồi tài nguyên; Cảm phiền xem file bài kế tiếp liền kề; Rất cảm ơn!]
 
Lần chỉnh sửa cuối:
Cảm ơn bạn nhiều,
Cách của bạn khá hay.
Tuy nhiên bài toán của mình chỉ là hiện giờ tại cột "thời gian chênh lệch " đang có công đoạn thì dương, công đoạn thì âm.
Mình chỉ muốn cân bằng nó lại (lấy âm cho dương và dương cho âm).
Dựa theo độ ưu tiên đầu tiên là cùng loại máy móc, sau là cùng số nhóm.
Bạn có cách nào sổ dữ liệu ra như hình đính kèm phần trên được không bạn!
Xem file kèm.

Thân
 

File đính kèm

Rỗi biếu bạn cái Form để quậy tưng cho zui!
 

File đính kèm

Rỗi biếu bạn cái Form để quậy tưng cho zui!
Cảm ơn bạn nhiều.
Về phần mình đăng 2 bài cùng 1 nội dung vì bài trước mình đăng mà chưa ai giúp được (chỉ có 1 comment). Nên mình mới đăng thêm 1 bài nữa để tìm sự giúp đỡ. Tuy vậy, về phần này mình xin lỗi vì đăng 2 lần. Bạn cũng hiểu và thông cảm cho mình nha!
Bài đã được tự động gộp:

Oh, như này là đúng quá rồi
Bạn có thể chỉ cho mình cách làm không bạn?
Mình nói thật chưa biết gì về VBA.
Mong bạn giúp đỡ!
 
Lần chỉnh sửa cuối:
Bài toán:
+ Level 1: Nếu tại cột "thời gian chênh lệch" đang âm thì sẽ dò tất cả các "công đoạn" cùng "số nhóm" và cùng "loại máy móc" đang có "thời gian chênh lệch" dương và ngược lại. Sẽ hiện ra các công đoạn đó cho mình lựa chọn. Khi lựa chọn xong, 2 cột "thời gian chênh lệch" (âm và dương) được lựa chọn sẽ trừ lần nhau.
+ Lever 2: . . . . . .
Form bài trên của mình sẽ giup bạn bù trừ 2 dễ dàng, bạn muốn tiếp không?
 
Form bài trên của mình sẽ giup bạn bù trừ 2 dễ dàng, bạn muốn tiếp không?
Oh, vậy phiền bạn rồi!
Nhân đây mình cũng chia sẻ luôn về bài toán.
Hiện tại mình đang làm cho công ty may, bài toán này là bài toán thực tế và theo thuật ngữ sản xuất thì gọi là cân bằng chuyền.
Vì trình độ VBA của mình không có, nên mình gửi bạn file gốc (file này mình định làm file mẫu) bạn làm giúp mình trên file này luôn nha, mình sợ về sau mình không viết được trên file gốc này.
Với bạn viết code (lập trình gì đó, mình không rành) giúp mình, kiểu như khi thêm dữ liệu công đoạn mới thì bài toán vẫn dò tìm thêm dữ liệu này (vì file trên là file áp dụng cho 1 dây chuyền sản xuất, nếu áp dụng cho dây chuyền khác thì tên công đoạn và số lượng công đoạn sẽ thay đổi).
Nếu được, bạn thêm giúp mình cột thời gian chênh lệch bên cạnh form bạn thiết kế.
219095
Mình cảm ơn bạn rất nhiều!
Bài đã được tự động gộp:

Bạn ơi, nếu phần nay khó quá.
Bạn có thể lập trình lại trên file mới mình gửi này được không bạn!
Bạn ráng giúp mình khi thêm hàng mới. Thì vẫn dò được những hàng mới này. Kiểu như dữ liệu không cố định số hàng ak' bạn!
Cảm ơn bạn!
 

File đính kèm

  • Ver 3.xlsx
    Ver 3.xlsx
    782.7 KB · Đọc: 3
  • 1560347273231.png
    1560347273231.png
    8.7 KB · Đọc: 2
  • Ver 3.xlsx
    Ver 3.xlsx
    782.7 KB · Đọc: 2
. . . . . . . . . . . . . . . . :D
 

File đính kèm

.Về phần mình đăng 2 bài cùng 1 nội dung vì bài trước mình đăng mà chưa ai giúp được (chỉ có 1 comment). Nên mình mới đăng thêm 1 bài nữa để tìm sự giúp đỡ.
Góp ý cho bạn và cũng là góp ý chung cho các thành viên khác:

Bạn đăng 2 bài viết hay chủ đề có cùng nội dung sẽ không được giúp đỡ mà còn bị xóa bài viết, lý do : Vi phạm nội quy.

A_Noiquy.GIF
 
Bạn có thể lập trình lại trên file mới mình gửi này được không bạn!
Bạn ráng giúp mình khi thêm hàng mới. Thì vẫn dò được những hàng mới này. Kiểu như dữ liệu không cố định số hàng ak' bạn!
Cảm ơn bạn!
Giải pháp này không dựa hoàn toàn vào viết code (nên cũng không thể gọi là "lập trình" được), chỉ lợi dụng tính năng của 1 dòng lệnh: tính toán lại (giống thao tác: nhấn F9 vậy), chủ yếu tôi dùng hoàn toàn bằng công thức mảng để trích lục dữ liệu theo điều kiện, bạn có thể tham khảo bên sheet "Canbang". Nhưng, dù chỉ dùng có 1 dòng lệnh bạn cũng phải lưu file theo các đuôi .xls, .xlsm hoặc .xlsb, thì lúc đó file mới hoạt động được. Nếu muốn xem code đó, sau khi mở file ra bạn chỉ cần nhấn tổ hợp phím Alt+F11.

1/ Công thức mảng liệt kê dữ liệu theo điều kiện của bạn nêu ra, dựa vào số dòng mà bạn đang đứng.
2/ Hai "Name": VungLV1 và VungLV2 tạo vùng động xác định mỗi vùng chỉ lấy các giá trị hiện hữu không lấy giá trị rỗng.
3/ Dùng Data Validation cho hai cột bạn muốn "cân bằng" bên sheet "Output 3".

Lưu ý: Do dùng công thức mảng, nên nếu dữ liệu (sheet Output 3) của bạn quá 1.000 dòng, thì công thức trích lục sẽ làm cho máy trì trệ.

Thân
 

File đính kèm

Mình hiểu quá trình cân bằng là như thế này
Giả sử ta chọn con số âm nào đó như -3.566 của công đoạn 19
Sau khi chọn nó, ta sẽ được 1 danh sách các số dương với nó là các công đoạn thực tế như bảng sau:
PHP:
Công đoạn   Thời gian
  22        10.99  
  56        39.706
  55        73.469
  114       3.843
  80        8.930
Vậy bước tiếp theo ta bấm chọn vô dòng có công đoạn mang số 114 (TG là 3.843)
Lúc này macro sẽ thực hiện 2 nhiệm vụ:
1 Công đoạn nào có trị tuyệt đối nhỏ hơn sẽ cho về 0 (CĐ 19)
2 Công đoạn 114 sẽ là 3.843 - 3.566 ?

[Nếu đúng vậy thì chỉ có thể xài VBA mà thôi!]
 
Web KT

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

Back
Top Bottom