- Tham gia
- 23/3/16
- Bài viết
- 705
- Được thích
- 52
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 đó: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
=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 đầ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.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),)
Chủ yếu học hỏi từ các đàn anh bạn ơiLầ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.![]()
Cũng là 1 cách để tham khảo. Cơ mà nếu ô B4=14 và C4=B thì ...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ì ...
=LOOKUP(2,1/(($C$4:$C$13=G5)*($B$4:$B$13=MAX(IF($C$4:$C$13=G5,$B$4:$B$13,"")))),$D$4:$D$13)
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 ănCô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),)
À, 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à 20Fải nhuyễn hàm DMAX() thêm nữa!!
Công thức khác
H5 =LOOKUP(2,1/($B$4:$B$13=MAX(($C$4:$C$13=G5)*B4:B13))/($C$4:$C$13=G5),$D$4:$D$13)
Thêm 1 tham khảo cho bạn (Tại [H5]):
=VLOOKUP(DMAX(B313,B3,G4:G5),B3
13,3,FALSE)
Thay cái này đi, theo thứ tự trên dưới:Cũng là 1 cách để tham khảo. Cơ mà nếu ô B4=14 và C4=B thì ...
=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),)
=OFFSET(D$3,RIGHT(AGGREGATE(15,6,-B$4:B$13-ROW(A$1:A$10)/1000/(C$4:C$13=G5),1),3),)
Có thể +0.1 là được rồiNế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
Góp vui thêm 1 cách nữa:
H5=MOD(AGGREGATE(14,6,($B$4:$B$13*10^10+$D$4:$D$13)/($C$4:$C$13=G5),1),10^10)