Chọn giá trị đúng với điều kiện đưa ra

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

doinho

Thành viên thường trực
Tham gia
22/8/08
Bài viết
234
Được thích
9
Chào các bạn,
Mình đang gặp vấn đề như sau:

Trong bảng tính của mình:
Cột A là Ngày
Cột B là Mã
Cột C là Số liệu
Và cột D là cột Chọn
Mình đã sắp xếp cột Mã theo thứ tự, để các giá trị mã giống nhau sẽ được sắp xếp gần nhau. Mình có tô màu để các bạn dễ nhìn.

Trong các mã giống nhau, mình muốn chọn 1 giá trị thỏa mãn điều kiện sau:

+ Nếu trong mã, cột Số liệu vừa có số dương và số âm, thì chọn số dương nhỏ nhất.

+ Nếu trong mã, cột Số liệu chỉ có số âm, thì chọn số âm lớn nhất.

+ Nếu trong mã, cột Số liệu chỉ có số dương, thì chọn số dương nhỏ nhất.

Và khi chọn sẽ đánh dấu x vào ô Chọn.

Các bạn xem file giúp mình nha.

Cảm ơn các bạn.
 

File đính kèm

+ Nếu trong mã, cột Số liệu vừa có số dương và số âm, thì chọn số dương nhỏ nhất.

+ Nếu trong mã, cột Số liệu chỉ có số âm, thì chọn số âm lớn nhất.

+ Nếu trong mã, cột Số liệu chỉ có số dương, thì chọn số dương nhỏ nhất.
Xét số âm, số dương rồi.. Vậy số không âm, số không dương (là số 0) thì tính sao?
 
Xét số âm, số dương rồi.. Vậy số không âm, số không dương (là số 0) thì tính sao?
Tùy theo định nghĩa số âm/dương.
Tuy nhiên, muốn nói âm thì nó vẫn là số âm lớn nhất, và dương thì nó vẫn là số dương nhỏ nhất. Cho nên chọn nó luôn.
 
Cột [Mã] không cần sắp xếp.

Mã:
D2=IF(IF(AGGREGATE(14,6,($C$2:$C$12)/($B$2:$B$12=$B2),1)>0,AGGREGATE(15,6,$C$2:$C$12/($C$2:$C$12>0)/($B$2:$B$12=$B2),1),AGGREGATE(14,6,$C$2:$C$12/($C$2:$C$12<0)/($B$2:$B$12=$B2),1))=C2,"x","")
 
Cột [Mã] không cần sắp xếp.

Mã:
D2=IF(IF(AGGREGATE(14,6,($C$2:$C$12)/($B$2:$B$12=$B2),1)>0,AGGREGATE(15,6,$C$2:$C$12/($C$2:$C$12>0)/($B$2:$B$12=$B2),1),AGGREGATE(14,6,$C$2:$C$12/($C$2:$C$12<0)/($B$2:$B$12=$B2),1))=C2,"x","")

Cảm ơn bạn, mình làm được rồi.

Nếu mình muốn lấy giá trị = 0. chỉ cần thêm dấu bằng ở dấu lớn và nhỏ hơn bằng 0 trong công thức của bạn là được phải không?
 
Góp vui công thức mảng:
Mã:
=IF(MAX(IF($B$2:$B$12=B2,$C$2:$C$12))<0,IF(MAX(IF($B$2:$B$12=B2,$C$2:$C$12))=C2,"x",""),
IF(MIN(IF(($B$2:$B$12=B2)*($C$2:$C$12>0),$C$2:$C$12))=C2,"x",""))
 
Thế nếu có toàn âm và 2, 3, ... âm cùng lớn nhất thì chọn (đánh dấu x) âm nào? Có 3 cô ngoan nhất trong số toàn các cô hư mà chọn 1 cô thì vô lý. Tương tự nếu có dương và 2, 3, ... đều dương nhỏ nhất thì x cho dương nào?

Muốn ăn ốc tọt (Ốc nhồi, ốc mút, ốc sên ăn cả rồi. Ốc tọt chưa bao giờ được ăn, hồi hộp quá đi) nên không suy nghĩ nhiều.
D2
Mã:
=IF(C2>0,IF(COUNTIFS(B$2:B$12,B2,C$2:C$12,"<"&C2,C$2:C$12,">0"),"","x"),IF(COUNTIFS(B$2:B$12,B2,C$2:C$12,">"&C2),"","x"))
 
Lần chỉnh sửa cuối:
Em nghĩ có nhiều bạn muốn được ăn.. Hê hê.
...
Muốn ăn ốc tọt (Ốc nhồi, ốc mút, ốc sên ăn cả rồi. Ốc tọt chưa bao giờ được ăn, hồi hộp quá đi) nên không suy nghĩ nhiều.
...
Thời buổi bi giờ, thầy/cô dẫu chỉ mới đủ khả năng cập nhật công nghệ đến 3,5 (chưa đến 4 chấm không) cũng thừa biết là bài mình ra, học sinh chỉ cần tìm đúng diễn đàn thì lấy lời giải trong vòng 1-2 tiếng đồng hồ (*)
Tuy nhiên, chiếu theo luật "nó lú nhưng chú nó khôn" thì người làm việc đâu bắt buộc phải tự biết giải quyết vấn đề mà chỉ cần biết cách nhờ người khác giải quyết. Luật này, cọng với sự thịnh hành của điên thoại thông minh, đưa đến chân lý "một trăm giờ học không sánh bằng 1 phút gú gồ"
Chấp nhận là vậy, người thầy/cô có lương tâm tối thiểu cũng:
Khi thấy một cái công thức khủng thì cần hỏi lại học sinh chứng minh lô gic áp dụng công thức. Không giải thích được lô gic thì ăn ốc tọt.

(*) chiếu theo kinh nghiệm thấy ở đây, nhiều học sinh còn đợi đến giờ chót mới giở bài ra học và tin rằng diễn đàn có thể giúp mình thấu triệt bài vở trong vòng 1 đêm!
 
Góp thêm công thức mảng
Mã:
=IF(MIN(IF($B$2:$B$12=B2,ABS((($C$2:$C$12<0)*10^9+1)*$C$2:$C$12)))/((C2<0)*10^9+1)=ABS(C2),"x","")
 
Mình đã làm được rồi.
Chân thành cảm ơn các bạn trên diễn đàn GPE đã hỗ trợ mình nha.
 
Web KT

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

Back
Top Bottom