2013-04-25 49 views
11

Tôi đã sau:Excel Data Validation Danh sách sử dụng công thức với bộ lọc

Worksheet Accounts:

Accounts worksheet

Worksheet bài:

Posts worksheet

Tôi muốn biết nếu nó có thể định nghĩa Data Validation của loại List cho toàn bộ cột B trong bảng bài sử dụng công thức, do đó Data Validation cửa sổ bật lên chỉ hiển thị tài khoản Id từ Accounts tờ mà website cột phù hợp website cột của một hàng đã chọn trong bài tờ và có giá trị tích cực trong Status cột?

Nói cách SQL-ish hoặc LINQ-ish:

CHỌN Id TỪ Accounts mà trang web = @ SelectedPostRow.Website VÀ Status = kích hoạt

Marks trên cho thấy hình ảnh thứ hai mà các giá trị sẽ được hiển thị trong menu thả xuống.

Trả lời

2

Có, bạn có thể thực hiện việc này nhưng yêu cầu một số thiết lập hỗ trợ.

Đầu tiên cho mỗi tùy chọn trang web của bạn, bạn cần tạo một dải ô được đặt tên cho các tùy chọn nằm trong danh sách thả xuống bạn đang tìm cách tạo.

Để làm điều này, chỉ cần đánh dấu vào danh sách của các tế bào và nhấp chuột phải, chọn tên chiếc Range

Sau đó, bạn cần phải tạo ra một danh sách tra cứu cho tên trang web của bạn đến phạm vi tên possiblities

Sau đó, trong nguồn xác thực dữ liệu của bạn sử dụng diễn đàn như sau:

=indirect(vlookup(a1,$i$8:$j$13,2,false)) 

sau đó whala, danh sách thả xuống thay đổi dựa trên giá trị trang web.

Bây giờ nếu bạn cũng cần tự động hóa các dải ô được đặt tên, bạn có thể thay đổi chúng để bao gồm toàn bộ các cột và sau đó sử dụng bảng tổng hợp để lấy dữ liệu. Chỉ cần một trục xoay độc lập cho mỗi tùy chọn trang web.

Mỗi lần bạn lấy dữ liệu mới, bạn sẽ cần phải làm mới các trục, nhưng nó sẽ hoạt động.

+0

Nếu tôi hiểu chính xác bạn, tôi phải tạo một dải tên tài khoản có tên cho mỗi giá trị Trang web. Điều này sẽ không hiệu quả đối với tôi vì bảng Tài khoản có thể được bổ sung với các tài khoản mới và tôi không muốn tăng phạm vi được đặt tên mỗi khi điều này xảy ra. Pivot cũng sẽ không hoạt động vì nó sẽ yêu cầu làm mới. Tôi muốn điều này hoàn toàn tự động mà không cần thêm các công việc kế toán. Còn phần Status = Active thì sao? – Stipo

+0

Bảng tổng hợp sẽ là những gì bạn cần để thực hiện phần Status = Active. Cũng Pivots có thể được làm mới thông qua VBA, có thể được tự động hóa. –

3

Vấn đề này cần một chút chuẩn bị. Trong cùng một trang tính hoặc trong trang tính khác, hãy sao chép dữ liệu của bạn (hoặc thêm các ô có liên quan)

Trong cột A bạn có số có thể xếp hạng. tôi đắc nó với (cell A2):

= IF (C2 = $ J $ 2,1,0) * IF (E2 = "Active", 1,0) * ROW()

Trong cột B rank số lượng và loại trừ các hàng không mong muốn (B2):

= IF (A2 = 0,0, rANK (A2, A: A))

Sau đó, bạn có thể VLOOKUP trong cột H, sử dụng một enum trong cột G (nhập theo cách thủ công). Công thức cho H1:

= hàm IFERROR (VLOOKUP (G2, $ B $ 2: $ D $ 9,3, FALSE), "")

Bây giờ bạn có thể thiết lập xác nhận của bạn dựa trên cột H

screenshot

PS: có thể có sai sót nhỏ trong các công thức như tôi đã dịch chúng từ Ý và tôi không thể kiểm tra bằng tiếng Anh.

+1

thông minh & thanh lịch – Israel