DỮ LIỆU HIỂN THỊ CHỜ SẴN THOẢN MÃN CÁC ĐIỀU KIỆN HỖN HỢP (1 người xem)

Liên hệ QC

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

ThuyNguyenHN

Thành viên hoạt động
Tham gia
24/6/09
Bài viết
159
Được thích
12
Em chào các anh chị và các bạn!

Theo yêu cầu công việc em có 1 bài toán như sau:
Có 1 nguồn hàng được đặt ở các kho (nơi xuất phát): A1, A2, ...., A8 với số lượng trong cột số lượng. Các nơi xuất phát này có đặc điểm được phân là nhóm từ 1 đến 5 và phân Hệ thống là X, Y, Z.

Nguồn hàng đó cần phân phối đến Nơi đến là Z1, Z2, .... với số lượng tương ứng
Nơi đến cũng được phân theo nhóm từ 1 đến 5 và phân Hệ thống là X, Y, Z

(Dữ liệu nguồn hàng hay kho hàng được thể hiện trong sheet DATA. Dữ liệu cần phân phối được thể hiện trong bảng nền vàng của Shet ORDER)

Yêu cầu: Khi bảng nền vàng bên Sheet ORDER nhập dữ liệu vào thì bên nền bảng nền xanh của sheet ORDER đó sẽ có dữ liệu chờ sẵn thỏa mãn điều kiện chi tiết trong file em đính kèm ạ. Dữ liệu chờ sẵn này sẽ xô ra dạng danh sách List data khi nhấn chuột vào như phần thiết lập data list của excel ạ)
--> Điều kiện có thể khái quát như sau:
1. Hệ thống Xuất phát là X thì có thể đến các hệ thống còn lại của Hệ thống đến (X,Y,Z)
2. Nhóm xuất phát là 1 thì có thể đến tất cả các nhóm của Nhóm đến (1,2,3,4,5), nhóm cao k đến được nhóm thấp hơn
3. Số lượng của bên Đến phải nhỏ hơn hoặc bằng Số lượng bên Xuất phát có

Bài toán khá phức tạp nên em mong các anh chị và các bạn cùng giúp em với ạ!
Em cảm ơn cách anh chị và các bạn!
 

File đính kèm

Em chào các anh chị và các bạn!

Theo yêu cầu công việc em có 1 bài toán như sau:
Có 1 nguồn hàng được đặt ở các kho (nơi xuất phát): A1, A2, ...., A8 với số lượng trong cột số lượng. Các nơi xuất phát này có đặc điểm được phân là nhóm từ 1 đến 5 và phân Hệ thống là X, Y, Z.

Nguồn hàng đó cần phân phối đến Nơi đến là Z1, Z2, .... với số lượng tương ứng
Nơi đến cũng được phân theo nhóm từ 1 đến 5 và phân Hệ thống là X, Y, Z

(Dữ liệu nguồn hàng hay kho hàng được thể hiện trong sheet DATA. Dữ liệu cần phân phối được thể hiện trong bảng nền vàng của Shet ORDER)

Yêu cầu: Khi bảng nền vàng bên Sheet ORDER nhập dữ liệu vào thì bên nền bảng nền xanh của sheet ORDER đó sẽ có dữ liệu chờ sẵn thỏa mãn điều kiện chi tiết trong file em đính kèm ạ. Dữ liệu chờ sẵn này sẽ xô ra dạng danh sách List data khi nhấn chuột vào như phần thiết lập data list của excel ạ)
--> Điều kiện có thể khái quát như sau:
1. Hệ thống Xuất phát là X thì có thể đến các hệ thống còn lại của Hệ thống đến (X,Y,Z)
2. Nhóm xuất phát là 1 thì có thể đến tất cả các nhóm của Nhóm đến (1,2,3,4,5), nhóm cao k đến được nhóm thấp hơn
3. Số lượng của bên Đến phải nhỏ hơn hoặc bằng Số lượng bên Xuất phát có

Bài toán khá phức tạp nên em mong các anh chị và các bạn cùng giúp em với ạ!
Em cảm ơn cách anh chị và các bạn!
Chính xác có bao nhiêu hệ thống và nhóm ở file thực?
 
Em chào các anh chị và các bạn!

Theo yêu cầu công việc em có 1 bài toán như sau:
Có 1 nguồn hàng được đặt ở các kho (nơi xuất phát): A1, A2, ...., A8 với số lượng trong cột số lượng. Các nơi xuất phát này có đặc điểm được phân là nhóm từ 1 đến 5 và phân Hệ thống là X, Y, Z.

Nguồn hàng đó cần phân phối đến Nơi đến là Z1, Z2, .... với số lượng tương ứng
Nơi đến cũng được phân theo nhóm từ 1 đến 5 và phân Hệ thống là X, Y, Z

(Dữ liệu nguồn hàng hay kho hàng được thể hiện trong sheet DATA. Dữ liệu cần phân phối được thể hiện trong bảng nền vàng của Shet ORDER)

Yêu cầu: Khi bảng nền vàng bên Sheet ORDER nhập dữ liệu vào thì bên nền bảng nền xanh của sheet ORDER đó sẽ có dữ liệu chờ sẵn thỏa mãn điều kiện chi tiết trong file em đính kèm ạ. Dữ liệu chờ sẵn này sẽ xô ra dạng danh sách List data khi nhấn chuột vào như phần thiết lập data list của excel ạ)
--> Điều kiện có thể khái quát như sau:
1. Hệ thống Xuất phát là X thì có thể đến các hệ thống còn lại của Hệ thống đến (X,Y,Z)
2. Nhóm xuất phát là 1 thì có thể đến tất cả các nhóm của Nhóm đến (1,2,3,4,5), nhóm cao k đến được nhóm thấp hơn
3. Số lượng của bên Đến phải nhỏ hơn hoặc bằng Số lượng bên Xuất phát có

Bài toán khá phức tạp nên em mong các anh chị và các bạn cùng giúp em với ạ!
Em cảm ơn cách anh chị và các bạn!
Lâu lâu 'múa rìu qua mắt thợ'! dùng đúng một dòng code VBA: Target.Calculate để tạo List động theo yêu cầu chủ thớt, thêm 2 cột phụ và sử dụng 4 name để 'bắt dòng hiện hành'

Bạn chủ thớt xem file kèm

Chúc anh em ngày vui.
p/s: anh em đừng cười code thô thiển nha, cảm ơn nhiều. /-*+//-*+//-*+/
 

File đính kèm

Lâu lâu 'múa rìu qua mắt thợ'! dùng đúng một dòng code VBA: Target.Calculate để tạo List động theo yêu cầu chủ thớt, thêm 2 cột phụ và sử dụng 4 name để 'bắt dòng hiện hành'

Bạn chủ thớt xem file kèm

Chúc anh em ngày vui.
p/s: anh em đừng cười code thô thiển nha, cảm ơn nhiều. /-*+//-*+//-*+/
Cách làm sáng tạo và quá hay, thêm 1 cột phụ cho đủ bộ
Chúc các bạn 1 ngày vui /-*+//-*+//-*+/
 

File đính kèm

Cảm ơn các anh, các bạn!
Cách giải quyết rất hợp lý! Hy vọng em sẽ áp dụng được trong công việc!

(Hiện tại em mất rất nhiều thời gian trong việc sắp xếp thủ công giữa các nhóm và hệ thống này mà đôi khi vẫn bị nhầm nữa)
 
Lâu lâu 'múa rìu qua mắt thợ'! dùng đúng một dòng code VBA: Target.Calculate để tạo List động theo yêu cầu chủ thớt, thêm 2 cột phụ và sử dụng 4 name để 'bắt dòng hiện hành'

Bạn chủ thớt xem file kèm

Chúc anh em ngày vui.
p/s: anh em đừng cười code thô thiển nha, cảm ơn nhiều. /-*+//-*+//-*+/

Anh QuocGiaCan ơi đoạn code này có tác dụng gì ạ?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("H3:J13")) Is Nothing Then Target.Calculate
End Sub
 
Anh QuocGiaCan ơi đoạn code này có tác dụng gì ạ?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("H3:J13")) Is Nothing Then Target.Calculate
End Sub
Khà khà khà!
/-*+/-=.,,/-*+/

Bạn hỏi tôi cũng bằng không! Câu lệnh đó là trong file của bạn hiền tôi @HieuCD tạo tại bài #6.
Tôi chủ yếu vô 'chọt' bạn tôi, rồi phải dzọt thôi, đâu dám 'lấn sân'!

Cứ yên chí, bạn sẽ câu trả lời thỏa đáng.

Chúc bạn ngày vui.
 
Khà khà khà!
/-*+/-=.,,/-*+/

Bạn hỏi tôi cũng bằng không! Câu lệnh đó là trong file của bạn hiền tôi @HieuCD tạo tại bài #6.
Tôi chủ yếu vô 'chọt' bạn tôi, rồi phải dzọt thôi, đâu dám 'lấn sân'!

Cứ yên chí, bạn sẽ câu trả lời thỏa đáng.

Chúc bạn ngày vui.

:)
Cảm ơn anh!
Vậy nhờ anh @HieuCD thêm thông tin giúp em ạ.

Một tuần mới chúc các anh, các bạn luôn hứng khởi! :)
 
Anh QuocGiaCan ơi đoạn code này có tác dụng gì ạ?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("H3:J13")) Is Nothing Then Target.Calculate
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range): Khi bạn chọn chuột hoặc dùng phiếm di chuyển sang ô khác thì code chạy
Target: là ô hoặc dãy ô bạn đang chọn
If Not Intersect(Target, Range("H3:J13")) Is Nothing Then: nếu ô bạn chọn nằm trong vùng "H3:J13" thì thực hiện lệnh
Target.Calculate: Tính lại công thức tương đương bấm F9 trong Excel, nếu vùng chọn không nằm trong chính xác hơn là "giao" với "H3:J13" thì lệnh không thực hiện
 
Chào các anh
Cảm ơn các anh đã giúp giải quyết vấn đề.
Em có file đính kèm là vấn đề phát sinh mong các anh chỉ thêm giúp em.
-------------------------------------------------------------------------------------------
File gồm 2 sheet:
Sheet DATA: là 1 bảng dữ liệu sẵn có nhập bằng tay hàng tuần
Sheet XEM: là sheet khi nhập dữ liệu vào cột HỆ THỐNG và cột NHÓM thì bên cột LOẠI HÀNG nếu nhấn chuột vào sẽ xô ra danh sách Tên hàng được lấy ra từ bên sheet DATA ạ.
-------------------------------------------------------------------------------------------
Cảm ơn các anh!
 

File đính kèm

Chào các anh
Cảm ơn các anh đã giúp giải quyết vấn đề.
Em có file đính kèm là vấn đề phát sinh mong các anh chỉ thêm giúp em.
-------------------------------------------------------------------------------------------
File gồm 2 sheet:
Sheet DATA: là 1 bảng dữ liệu sẵn có nhập bằng tay hàng tuần
Sheet XEM: là sheet khi nhập dữ liệu vào cột HỆ THỐNG và cột NHÓM thì bên cột LOẠI HÀNG nếu nhấn chuột vào sẽ xô ra danh sách Tên hàng được lấy ra từ bên sheet DATA ạ.
-------------------------------------------------------------------------------------------
Cảm ơn các anh!
Yêu cầu bài nầy và bài trước giống, hay khác nhau?
 
Nhóm GGP có mấy nhóm?
DANH SÁCH HÀNG CÓ SẴN có thể thay đổi không, liệt kê đủ các trường hợp công thức sẽ nhẹ hơn
HỆ THỐNG: Chỉ có 2 hệ thống là GGP và GP
GGP: Chỉ có 2 nhóm là B1 và B2, nhưng có khoảng 3-5 LOẠI HÀNG
GP: Có nhiều nhất 7 nhóm và có khoảng 15-20 LOẠI HÀNG
Danh sách Hàng có sẵn, nhưng có nhiều, khoảng 300 hàng anh ạ.

(Em xin đính chính lại ạ)
 
Lần chỉnh sửa cuối:
HỆ THỐNG: Chỉ có 2 hệ thống là GGP và GP
GGP: Chỉ có 2 nhóm là B1 và B2, nhưng có khoảng 3-5 LOẠI HÀNG
GP: Có nhiều nhất 7 nhóm và có khoảng 15-20 LOẠI HÀNG
Danh sách Hàng có sẵn, nhưng có nhiều, khoảng 300 hàng anh ạ.

(Em xin đính chính lại ạ)
Làm tương tự file trước
 

File đính kèm

Làm tương tự file trước
Cảm ơn anh!
Em có đọc và tìm hiểu về hàm INDEX với MATCH mà chưa hiểu rõ được đoạn công thức dưới đây, mong anh chỉ cho em thêm về đoạn công thức này ạ:

=INDEX(DATA!$C$5:$C$11,MATCH(0,INDEX(COUNTIF($I$3:I3,DATA!$C$5:$C$11)+(DATA!$E$5:$E$11<>Nhom)+(DATA!$D$5:$D$11<>HT),),0))
 
Cảm ơn anh!
Em có đọc và tìm hiểu về hàm INDEX với MATCH mà chưa hiểu rõ được đoạn công thức dưới đây, mong anh chỉ cho em thêm về đoạn công thức này ạ:

=INDEX(DATA!$C$5:$C$11,MATCH(0,INDEX(COUNTIF($I$3:I3,DATA!$C$5:$C$11)+(DATA!$E$5:$E$11<>Nhom)+(DATA!$D$5:$D$11<>HT),),0))
Bạn dùng chuột chọn và bôi màu từng thành phần của công thức như chọn COUNTIF($I$3:I3,DATA!$C$5:$C$11) và bấm F9 sẽ thấy kết quả của hàm Countif
Công thức trên là công thức mảng lấy dữ liệu loại trùng theo điều kiện
MATCH(0,INDEX(COUNTIF($I$3:I3,DATA!$C$5:$C$11)+(DATA!$E$5:$E$11<>Nhom)+(DATA!$D$5:$D$11<>HT),),0): tìm vị trí số 0 đầu tiên trong mảng INDEX(COUNTIF($I$3:I3,DATA!$C$5:$C$11)+(DATA!$E$5:$E$11<>Nhom)+(DATA!$D$5:$D$11<>HT),) thỏa 3 điều kiện sau:
Công thức cộng 3 mảng đúng ra phải bấm Ctrl+Shift+Enter, dùng hàm Index để Enter bình thường
COUNTIF($I$3:I3,DATA!$C$5:$C$11): dữ liệu đã lấy sẽ có kết quả khác 0, sẽ bị loại không lấy nhằm loại trùng
(DATA!$E$5:$E$11<>Nhom): dữ liệu khác nhóm có kết quả là 1 (True) sẽ bị loại, chỉ lấy dữ liệu của nhóm đang xét
(DATA!$D$5:$D$11<>HT): dữ liệu khác hệ thống có kết quả là 1, chỉ lấy dữ liệu của hệ thống đang xét
Index đầu tiên có tác dụng lấy kết quả trong dãy DATA!$C$5:$C$11
 
Bạn dùng chuột chọn và bôi màu từng thành phần của công thức như chọn COUNTIF($I$3:I3,DATA!$C$5:$C$11) và bấm F9 sẽ thấy kết quả của hàm Countif
Công thức trên là công thức mảng lấy dữ liệu loại trùng theo điều kiện
MATCH(0,INDEX(COUNTIF($I$3:I3,DATA!$C$5:$C$11)+(DATA!$E$5:$E$11<>Nhom)+(DATA!$D$5:$D$11<>HT),),0): tìm vị trí số 0 đầu tiên trong mảng INDEX(COUNTIF($I$3:I3,DATA!$C$5:$C$11)+(DATA!$E$5:$E$11<>Nhom)+(DATA!$D$5:$D$11<>HT),) thỏa 3 điều kiện sau:
Công thức cộng 3 mảng đúng ra phải bấm Ctrl+Shift+Enter, dùng hàm Index để Enter bình thường
COUNTIF($I$3:I3,DATA!$C$5:$C$11): dữ liệu đã lấy sẽ có kết quả khác 0, sẽ bị loại không lấy nhằm loại trùng
(DATA!$E$5:$E$11<>Nhom): dữ liệu khác nhóm có kết quả là 1 (True) sẽ bị loại, chỉ lấy dữ liệu của nhóm đang xét
(DATA!$D$5:$D$11<>HT): dữ liệu khác hệ thống có kết quả là 1, chỉ lấy dữ liệu của hệ thống đang xét
Index đầu tiên có tác dụng lấy kết quả trong dãy DATA!$C$5:$C$11

Cảm ơn anh HieuCD rất nhiều!
Anh cũng nghỉ muộn thế.
Chúc anh ngủ ngon nha!
 
Web KT

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

Back
Top Bottom