Bạn dùng hàm VLOOKUP để giải quyết vấn đề này.Mình làm phiếu giao hàng, trước giờ hay nhập tay ở đơn giá. Giờ muốn chọn mã hàng nào thì đơn giá nhảy ra luôn.
Hàm VLOOKUP
Chức năng: Hàm VLOOKUP là hàm dò tìm theo cột, sẽ trả về giá trị của một ô nằm trên một cột nào đó nếu thỏa mãn điều kiện dò tìm.
Cú pháp hàm: VLOOKUP(lookup_value,table_array,col_index_num,option_lookup)
- Lookup_value: là giá trị dùng để dò tìm, giá trị này sẽ được dò tìm trong cột đầu tiên của bảng dữ liệu dò tìm. Giá trị dò tìm có thể là một số, một chuỗi, một công thức trả về giá trị hay một tham chiếu đến một ô nào đó dùng làm giá trị dò tìm.
- Table_array: là bảng dùng để dò tìm, bảng dò tìm có thể là tham chiếu đến một vùng nào đó hay Name trả về vùng dò tìm. Bảng dò tìm gồm có Rj hàng và Ci cột (I,j >=1), trong đó cột thứ nhất của bảng dò tìm sẽ được dùng để dò tìm.
- Col_index_num: là số thứ tự của cột (tính từ trái qua phải) trong bảng dò tìm chứa giá trị mà ta muốn trả về. Col_index_num phải >=1 và <= số cột lớn nhất có trong bảng dò tìm, ngược lại hàm sẽ trả về #VALUE! hoặc #REF.
- Option_lookup: là tùy chọn xác định kiểu dò tìm, có 2 kiểu dò tìm:
- True hoặc 1 hoặc để trống: là kiểu dò tìm tương đối, hàm sẽ lấy giá trị đầu tiên mà nó tìm được trên cột đầu tiên trong bảng dò tìm. Trong trường hợp tìm không thấy, nó sẽ lấy giá trị lớn nhất mà có giá trị nhỏ hơn giá trị dò tìm.
- False hoặc 0: là kiểu dò tìm chính xác, hàm sẽ lấy giá trị đầu tiên mà nó tìm được trên cột đầu tiên trong bảng dò tìm. Trong trường hợp tìm không thấy, hàm sẽ trả về #N/A.
Hàm IF
Hàm đầu tiên tôi muốn bàn tới là hàm IF(). Có lẽ đây là một trong những hàm được dùng nhiều nhất trong các bảng tính Excel.
Cái lập luận: "Nếu tôi tôi đúng thì làm cho tôi cái này, nếu tôi sai thì làm cho tôi cái kia".. Có lẽ trong chúng ta ai cũng hiểu.
Vậy tôi sẽ không giải nghĩa nhiều về hàm này, mà sẽ dùng các ví dụ để minh họa.
Một tình huống đơn giản nhất
Cú pháp: IF(logical_test, value_is_true)
_____logical_test: Một biểu thức sẽ được xét xem đúng (TRUE) hay sai (FALSE)
_____value_is_true: giá trị trả về khi biểu thức logical_test được kiểm tra là đúng (TRUE)
Ví dụ:
=IF(A1 >= 1000, "It’s big!")
Nghĩa là, nếu giá trị ở A1 lớn hơn hoặc bằng 1000, thì kết quả nhận được sẽ là "It's big!", còn không, nếu A1 nhỏ hơn 1000, kết quả sẽ là FALSE.
Một ví dụ khác, giả sử bạn có một bảng đánh giá mức độ bán ra, mua vào của một danh mục hàng hóa dài, và bạn muốn theo dõi những mặt hàng có doanh số bán ra không đạt yêu cầu để điều chỉnh chiến lược kinh doanh của mình, bằng cách gán những dấu "<" bên cạnh nó, hễ phần trăm doanh số càng thấp thì những dấu hiệu "<" càng nhiều...
Bạn có thể dùng hàm IF(), theo mẫu:
=IF(cell<0, flag)
Với cell là giá trị doanh số mà bạn muốn theo dõi, và flag là dấu hiệu để mô tả, ví dụ, cell chứa giá trị doanh số là B2:
=IF(B2<0, "<<<<<")
Để những dấu "<" tỷ lệ thuận với mức sụt giảm doanh số bán hàng, bạn có thể dùng hàm REPT(), với công thức:
REPT("<" , B2 * -100)
Ở đây, phải nhân giá trị của B2 với -100, bởi vì chúng ta chỉ xét những trường hợp B2<0
Và công thức hoàn chỉnh để thể hiện mức độ sụt giảm doanh số của từng mặt hàng sẽ là:
=IF(B2<0, REPT("<" , B2 * -100))
Bạn dùng hàm VLOOKUP để giải quyết vấn đề này.
Trong file, bạn dùng Data Validation lộn xộn quá, mình đã sửa. Xem file và xem thêm hàm VLOOKUP, hàm IF:
Thử công thức này ở E5:Nhờ các bạn trong trường hợp này nếu đại lý lấy hàng cấp khác nhau thì đơn giá củng khác nhau. Xin các bạn giúp đỡ. Tks
Thử công thức này ở E5:
=IF(B5="","",VLOOKUP(B5,$I$3:$M$6,MATCH(G5,$I$2:$M$2,0),0))
Dùng IF cũng được:Xin cảm ơn bạn, nhiều khi mình nghĩ xa xôi quá, kết hợp if mà chẳng ra được. Tks bạn lần nữa.