Hỏi về cách tạo list Validation

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

cazonda

Thành viên mới
Tham gia
19/4/10
Bài viết
36
Được thích
15
Em có 1 bảng danh sách ở sheets data, trong đó có nhiều kho hàng.
Giờ em muốn tạo 1 list của Validation sao cho khi nhập kho hàng vào thì ô bên cạnh tạo ra danh sách hàng của 1 kho đó thôi.
Nếu tạo list validation bình thường thì mặc định nó sẽ đưa hết danh sách hàng của các kho đó vào, điều đó rất bất tiện vì kho hàng có nhiều mà danh sách hàng cũng nhiều.

Cảm ơn các bác
 

File đính kèm

Em có 1 bảng danh sách ở sheets data, trong đó có nhiều kho hàng.
Giờ em muốn tạo 1 list của Validation sao cho khi nhập kho hàng vào thì ô bên cạnh tạo ra danh sách hàng của 1 kho đó thôi.
Nếu tạo list validation bình thường thì mặc định nó sẽ đưa hết danh sách hàng của các kho đó vào, điều đó rất bất tiện vì kho hàng có nhiều mà danh sách hàng cũng nhiều.

Cảm ơn các bác
Gửi bạn xem coi đúng ý không
 

File đính kèm

Đúng rồi bạn, cảm ơn bạn rất nhiều.
Bạn có thể giải thích chi tiết giúp mình công thức ở Name được không?
=OFFSET(Data!$A$1,MATCH('Chi tiet'!$B6,Data!$A$1:$A$24,0)-1,COLUMN()-2,COUNTIF(Data!$A$2:$A$24,'Chi tiet'!$B6),1)
 
Đúng rồi bạn, cảm ơn bạn rất nhiều.
Bạn có thể giải thích chi tiết giúp mình công thức ở Name được không?
Nói nôm na cho bạn hiểu, offset là tạo ra một vùng có kích thước và phần tử theo điều kiện cho trước nào đấy. Ví dụ đang chọn kho D7, nó sẽ tạo ra vùng gồm mã Vt và tên Vt tương ứng với kho D7.
Bạn nên nghiên cứu thêm về hàm offset trên diễn đàn để hiểu thêm, k thể giải thích bạn hiểu ngay được.
Bạn xem thử hướng dẫn trong file nhé
 

File đính kèm

Lần chỉnh sửa cuối:
Đúng rồi bạn, cảm ơn bạn rất nhiều.
Bạn có thể giải thích chi tiết giúp mình công thức ở Name được không?

Cú pháp:
=OFFSET(reference, rows, cols, height, width)

Trong đó:
  • reference: là vùng tham chiếu làm cơ sở cho hàm (làm điểm xuất phát) để tạo vùng tham chiếu mới. reference phải chỉ đến một ô hoặc một dãy ô liên tục, nếu không hàm sẽ trả về lỗi #VALUE!.
  • rows: là số dòng bên trên hoặc bên dưới reference, tính từ ô đầu tiên (ô ở góc trên bên trái) của reference. Ví dụ nếu rows là 3, sẽ có 3 dòng trả về và nằm bên dưới reference. Khi rows là số dương thì các dòng trả về nằm bên dưới reference, khi rows là số âm thì các dòng trả về nằm bên trên reference.
  • cols: là số cột bên trái hoặc bên phải reference, tính từ ô đầu tiên (ô ở góc trên bên trái) của reference. Ví dụ nếu cols là 4 sẽ có 4 cột trả về và nằm bên phải của reference. Khi cols là số dương thì các cột trả về nằm bên phải reference, khi cols là số âm thì các cột trả về nằm bên trái reference.
  • height: là số dòng của vùng tham chiếu cần trả về. Height phải là số dương.
  • width: là số cột của vùng tham chiếu cần trả về. Width phải là số dương.
=OFFSET(Data!$A$1,MATCH('Chi tiet'!$B6,Data!$A$1:$A$24,0)-1,COLUMN()-2,COUNTIF(Data!$A$2:$A$24,'Chi tiet'!$B6),1)
Mình giải thích trong ngoặc trước sau đó từ phải qua trái
MATCH('Chi tiet'!$B6,Data!$A$1:$A$24,0):Tìm giá trị ở ô B6 trong bảng Data từ vùng A1:A24 nằm ở vị trí thứ mấy. Ví dụ B6 là D7 thì tìm trong bảng Data Vùng từ A1:A24 là 2
COUNTIF(Data!$A$2:$A$24,'Chi tiet'!$B6): Đếm giá trị ở ô B6 trong bảng Data từ vùng A1:A24 xuất hiện bao nhiêu lần. Ví dụ B6 là D7 thì đếm trong bảng Data Vùng từ A1:A24 là 6
1: Lá số cột chỉ lấy 1 cột
Column()-2: Cái này mình lợi dụng để đặt 1 name thôi Ví dụ bạn đang ở sheet Chi tiết ở Cột D thì Column() = 4 mà 4 - 2 là bằng 2
Data!$A$1: đó chỉ là ô mình tham chiếu để lấy vùng dữ liệu
Kết hợp tất cả lại: Offset(Data!$A$1,2,2,6,1) tương đương vùng B2:B7
Kết luận lại thì bạn sẽ được vùng B2:B7 nếu bạn chọn mã vật tư, C2:C7 nếu bạn chọn Tên Vật tư
Bạn đọc trang này sẽ hiểu rõ hơn. Chúc thành công
http://www.giaiphapexcel.com/forum/showthread.php?7188-H%C3%A0m-Offset-v%C3%A0-Validation
 
Web KT

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

Back
Top Bottom