Hiển thị điều kiện đối với kí tự đầu tiên

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

2become1

Thành viên mới
Tham gia
3/11/08
Bài viết
5
Được thích
0
Cho em hỏi về ex với ạ! em có 1 bài tập: có 1 cột là các mã hàng và các mã đó như sau: A1,A2,B1,B2,BD1,C1,C2 và một cột nữa là số lượng nhập.
Đề bài yêu cầu là xác định số lượng nhập cao nhất của mặt hàng có kí tự đầu tiên là B. Mong các anh giúp đỡ ạ!
 
Giả sử cột A: là mã hàng; cột B: là lượng nhập
tại ô C1 bạn nhập công thức sau:
=max((B1:B1000)*(left((A1:A1000),1)="b")) xong nhấn ctrl + shift + enter

Thân
 
thế bây giờ mình muốn đưa ra màn hình tên các mặt hàng có giá nhập cao nhất có kí tự đầu là B làm thế nào?
 
thế bây giờ mình muốn đưa ra màn hình tên các mặt hàng có giá nhập cao nhất có kí tự đầu là B làm thế nào?
Với yêu cầu này bạn dùng AutoFilter là lẹ nhất
Tuy nhiên nếu bạn muốn lọc sang 1 nơi khác thì cũng có cách, nhưng bạn nên đưa file lên cho dể hình dung nhé
 
thế bây giờ mình muốn đưa ra màn hình tên các mặt hàng có giá nhập cao nhất có kí tự đầu là B làm thế nào?
Tạm thời, trong khi tìm xem thử có công thức nào ngắn hơn không, bạn dùng cái này đỡ:
=INDEX(A1:A1000, MATCH(MAX((B1:B1000) * (LEFT(A1:A1000)="B")), B1:B1000, 0))​
Công thức mảng nghe.
 
Lần chỉnh sửa cuối:

File đính kèm

Công thức để đưa ra màn hình danh sách mặt hàng có kí tự đầu tiên của mã hàng là B có giá nhập cao nhất:
= INDEX(D4:D10, MATCH(MAX((E4:E10)*(LEFT(C4:C10)="B")), E4:E10, 0))

= Tủ Lạnh (có mã là B2)
Công thức này cho kết quả đúng chỉ là do may mắn thôi!
 
Nhờ giải thích

Công thức này cho kết quả đúng chỉ là do may mắn thôi!
Bạn có thể nói rõ hơn về "sự may mắn" đó không? Tôi test nhưng không biết "đã may mắn" chỗ nào?
Cũng qua đây, đề nghị khi post thì cũng nên phân tích để người đọc yếu như tôi có thể hiểu được và không phải thắc mắc.
Rất cảm ơn bạn nếu được nghe giải thích.
 
Có lẽ huuthang_bd muốn nói đến một danh sách có nhiều mặt hàng có cùng giá mua cao nhất thì phải!
 
Bạn có thể nói rõ hơn về "sự may mắn" đó không? Tôi test nhưng không biết "đã may mắn" chỗ nào?
Cũng qua đây, đề nghị khi post thì cũng nên phân tích để người đọc yếu như tôi có thể hiểu được và không phải thắc mắc.
Rất cảm ơn bạn nếu được nghe giải thích.
Có lẽ bạn ấy muốn đề cập đến việc có 2 hoặc nhiều mã hàng B cùng MAX chăng?
Nếu thể vẫn ra kết quả, có điều chỉ ra 1 kết quả đầu
 
Có lẽ huuthang_bd muốn nói đến một danh sách có nhiều mặt hàng có cùng giá mua cao nhất thì phải!
Nếu có một mã hàng nào đó nằm bên trên mã hàng B2 (A1 chẳng hạn) và cũng có giá nhập là 5 thì hàm Match có tìm được vị trí của Tủ lạnh không??
 
Lần chỉnh sửa cuối:
Nếu có một mã hàng nào đó nằm bên trên mã hàng B2 (A1 chẳng hạn) và cũng có giá nhập là 5 thì hàm Match có tìm được vị trí của Tủ lạnh không??
Hoàn toàn chính xác
Vậy sửa lại:
PHP:
=INDEX($D$4:$D$10,MATCH(TRUE,(IF(LEFT($C$4:$C$10)="B",1,0))*($E$4:$E$10)=MAX((E4:E10)*(LEFT((C4:C10),1)="B")),0))
Bạn có cách nào ngắn hơn không?
 
Em có cách này ngắn hơn 1 chút nè!
PHP:
 =INDEX(D4:D10,MATCH(1,((E4:E10=(MAX((E4:E10)*(LEFT(C4:C10)="B"))))*(LEFT(C4:C10)="B"))))
Thân.
 
Lần chỉnh sửa cuối:
Công thức này cho kết quả đúng chỉ là do may mắn thôi!
CẢM ƠN BẠN.
Đúng là tôi sơ ý. Công thức mảng này:
=MAX((E4:E10)*(LEFT((C4:C10),1)="B"))​
Là dùng để đi tìm giá trị nhập cao nhất của nhóm hàng có mã bắt đầu bằng B. Và công thức đó cho ra một con số.
Nếu như dùng hàm MATCH lấy con số đó đi dò... thì sai bét!
 
Lần chỉnh sửa cuối:
Hoàn toàn chính xác
Vậy sửa lại:
PHP:
=INDEX($D$4:$D$10,MATCH(TRUE,(IF(LEFT($C$4:$C$10)="B",1,0))*($E$4:$E$10)=MAX((E4:E10)*(LEFT((C4:C10),1)="B")),0))
Bạn có cách nào ngắn hơn không?

Tôi test thì thấy cái này cũng đúng:

INDEX(D4:D10,MATCH(MAX((LEFT(C4:C10,1)="B")*E4:E10),(LEFT(C4:C10,1)="B")*E4:E10,0))
 
Có cách nào liệt kê toàn bộ các mã hàng có cùng giá nhập cao nhất và có ký tự đầu là "B" vào 1 ô hay không?
 
Công thức này của anh Tuấn, tuy dài, nhưng chính xác:
=INDEX($D$4:$D$10, MATCH(TRUE, (IF(LEFT($C$4:$C$10) = "B", 1, 0)) * ($E$4:$E$10) = MAX((E4:E10)*(LEFT((C4:C10), 1) = "B")), 0))
Còn của Po_Pikachu, tuy ngắn hơn, nhưng không chính xác:
=INDEX(D4:D10, MATCH(1, ((E4:E10 = (MAX((E4:E10) * (LEFT(C4:C10) = "B")))) * (LEFT(C4:C10) = "B"))))​

Chứng minh:

1. Thay hết giá trị nhập của các món hàng có mã hàng bắt đầu là B giống y hệt nhau, công thức của anh Tuấn sẽ lấy cái nó gặp đầu tiên: Quạt cây, trong khi công thức của Po_Pickachu thì lúc nào cũng ra là Tủ lạnh...

2. Thay giá trị nhập của Quạt cây (có mã là BD1) thành cao nhất, công thức của Po_Pikachu cho kết quả là Máy giặt 6 (có mã là C1)!

Tôi chưa biết công thức của Po_Pikachu sai ở đâu, tạm thời chỉ nêu ra mấy nhận xét như vậy đã.
 
À thì ra em thiếu biến làm cho nó chính xác đó mà! Hay nói cách khác là quá trình quét từ dưới lên (hoặc từ phải sang trái) nếu không có số 0 này. Khi có số 0 thì nó quét ngược lại. Thế thôi. Xin sửa lại như vầy: =INDEX(D4:D10,MATCH(1,((E4:E10=(MAX((E4:E10)*(LEFT(C4:C10)="B"))))*(LEFT(C4:C10)="B")),0)) Thân.
 
Lần chỉnh sửa cuối:
Công thức này của anh Tuấn, tuy dài, nhưng chính xác:
=INDEX($D$4:$D$10, MATCH(TRUE, (IF(LEFT($C$4:$C$10) = "B", 1, 0)) * ($E$4:$E$10) = MAX((E4:E10)*(LEFT((C4:C10), 1) = "B")), 0))
Còn của Po_Pikachu, tuy ngắn hơn, nhưng không chính xác:
=INDEX(D4:D10, MATCH(1, ((E4:E10 = (MAX((E4:E10) * (LEFT(C4:C10) = "B")))) * (LEFT(C4:C10) = "B"))))​
Chứng minh:

1. Thay hết giá trị nhập của các món hàng có mã hàng bắt đầu là B giống y hệt nhau, công thức của anh Tuấn sẽ lấy cái nó gặp đầu tiên: Quạt cây, trong khi công thức của Po_Pickachu thì lúc nào cũng ra là Tủ lạnh...

2. Thay giá trị nhập của Quạt cây (có mã là BD1) thành cao nhất, công thức của Po_Pikachu cho kết quả là Máy giặt 6 (có mã là C1)!

Tôi chưa biết công thức của Po_Pikachu sai ở đâu, tạm thời chỉ nêu ra mấy nhận xét như vậy đã.
Ủa.... Sao tôi test không thấy sai mà...
Có cách nào liệt kê toàn bộ các mã hàng có cùng giá nhập cao nhất và có ký tự đầu là "B" vào 1 ô hay không?
Cái này đương nhiên được... Đặt name:
PHP:
VT =IF(($E$4:$E$10=(MAX(($E$4:$E$10)*(LEFT($C$4:$C$10)="B"))))*(LEFT($C$4:$C$10)="B"),ROW(INDIRECT("1:"&ROWS($C$4:$C$10))),"")
Rồi INDEX là ra...
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom