Giúp hàm dò tìm theo mã hàng. Nếu trùng mã thì dò theo cột SL có số lớn nhật (1 người xem)

Liên hệ QC

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

minhtuan55

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
23/3/16
Bài viết
705
Được thích
52
Chào cả nhà GPE. Em cần 1 công thức dò tìm mã hàng như sau

1526993213302.png
 

File đính kèm

  • 1526993159844.png
    1526993159844.png
    32.3 KB · Đọc: 1
  • DO tim.xlsb
    DO tim.xlsb
    9 KB · Đọc: 20
Công thức ô H5: =INDEX($D$4:$D$13;MATCH(MAX(IF(($C$4:$C$13)=G5;$B$4:$B$13;0));IF(($C$4:$C$13)=G5;$B$4:$B$13;0);0))
Ctrl+Shift+Enter rồi fill xuống
(Máy mình dùng ";" để ngăn cách các đối tượng trong công thức nên bạn đổi lại cho phù hợp với định dạng máy bạn nhé)
Bạn xem file đính kèm
 

File đính kèm

Công thức ô H5: =INDEX($D$4:$D$13;MATCH(MAX(IF(($C$4:$C$13)=G5;$B$4:$B$13;0));IF(($C$4:$C$13)=G5;$B$4:$B$13;0);0))
Ctrl+Shift+Enter rồi fill xuống
(Máy mình dùng ";" để ngăn cách các đối tượng trong công thức nên bạn đổi lại cho phù hợp với định dạng máy bạn nhé)
Bạn xem file đính kèm
Công thức khi lưu vào file thì máy nào mở sẽ ra định dạng của máy đó:
PHP:
=OFFSET(D$3,RIGHT(AGGREGATE(14,6,(B$4:B$13+ROW(A$1:A$10)/10^6)/(C$4:C$13=G5),1),6),)
 
Lần chỉnh sửa cuối:
Công thức khi lưu vào file thì máy nào mở sẽ ra định dạng của máy đó:
PHP:
=OFFSET(D3,RIGHT(AGGREGATE(14,6,(B$4:B$13+ROW(A$1:A$10)/1000)/(C$4:C$13=G5),1),2),)
Lần đầu nhìn thấy hàm AGGREGATE này. Công thức của bác hay phết, em nghiền ngẫm mãi mới hiểu nó chạy ntn. -+*/-+*/-+*/
 
Thêm 1 tham khảo cho bạn (Tại [H5]):

=VLOOKUP(DMAX(B3: d13,B3,G4:G5),B3: d13,3,FALSE)

(Lúc này sửa lại [G4] = [C3])
 
Lần chỉnh sửa cuối:
Công thức khi lưu vào file thì máy nào mở sẽ ra định dạng của máy đó:
PHP:
=OFFSET(D$3,RIGHT(AGGREGATE(14,6,(B$4:B$13+ROW(A$1:A$10)/10^6)/(C$4:C$13=G5),1),6),)
Nếu số lượng được nhập từ bàn phím thì công thức của anh rất ok, nhưng nếu xuất từ phần mền ra hoặc cộng trừ nhân chia đôi lúc excel nó ra rất nhiều số thập phân, chẳng hạng 3.9999999999999999, mà mình chỉ nhìn thấy là số 4 thôi, như vậy công thức sẽ bị lỗi, để hạn chế nó anh có thể bỏ thêm hàm round nữa để cho chắc ăn
 
Fải nhuyễn hàm DMAX() thêm nữa!!
À, hàm DMAX của bác thì không vấn đề gì, nó trả về 14 là đúng rồi. Có điều hàm VLOOKUP thì không được ổn lắm, nó sẽ tìm số 14 đầu tiên nên nêú B4=14 và C4="B" thì nó sẽ trả kết quả là 20 o_O
Nhân tiện bác chỉ em cách làm tương tự cho ô H6 được không. (Làm sao để fill xuống được ấy). Em vẫn hay gặp khó khi sử dụng các hàm lấy criteria theo kiểu này :(
 
Thêm 1 tham khảo cho bạn (Tại [H5]):

=VLOOKUP(DMAX(B3:D13,B3,G4:G5),B3:D13,3,FALSE)​
Cũng là 1 cách để tham khảo. Cơ mà nếu ô B4=14 và C4=B thì ...
Thay cái này đi, theo thứ tự trên dưới:
Mã:
=OFFSET(D$3,1000-RIGHT(AGGREGATE(14,6,(B$4:B$13+(1-ROW(A$1:A$10)/1000))/(C$4:C$13=G5),1),3),)
Hoặc thay đổi dấu là xong:
Mã:
=OFFSET(D$3,RIGHT(AGGREGATE(15,6,-B$4:B$13-ROW(A$1:A$10)/1000/(C$4:C$13=G5),1),3),)
 
Lần chỉnh sửa cuối:
Nếu số lượng được nhập từ bàn phím thì công thức của anh rất ok, nhưng nếu xuất từ phần mền ra hoặc cộng trừ nhân chia đôi lúc excel nó ra rất nhiều số thập phân, chẳng hạng 3.9999999999999999, mà mình chỉ nhìn thấy là số 4 thôi, như vậy công thức sẽ bị lỗi, để hạn chế nó anh có thể bỏ thêm hàm round nữa để cho chắc ăn
Có thể +0.1 là được rồi :)
 
Web KT

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

Back
Top Bottom