Tìm số lớn nhì ? (1 người xem)

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

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

vumian

Mỗi bậc thang là mỗi Cell
Tham gia
12/3/07
Bài viết
267
Được thích
186
Nghề nghiệp
employee only, not a boss
Hi all,

Tự nhiên em nghĩ ra cái trò này, và cuối cùng bị vướng làm hông ra luôn,

Dùng 1 công thức filled down nha, Bác xem giúp em 1 tí nha,

Cám ơn nhiều,
 

File đính kèm

File đính kèm

Nếu dùng cột phụ thì đơn giản, ví dụ if(f6=max(e5:e13),0, e6) xong là tính max của cột phụ thì ra kết quả à?
 
Bài này hơi bị hay à nha!
Bạn thử công thức này xem:

Ctrl + Shift + Enter
Anhtuan ơi! Cột E là cột kết quả mà!

@Vumian: Công thức thì có công thức! Dài chút nha! Nhớ Ctrl+Shift+Enter nha
{=10000*($C4=LARGE(IF(($D$4:$D$13=$F$3),$C$4:$C$13,0),1))+5000*(C4=LARGE(IF(($D$4:$D$13=$F$3),$C$4:$C$13,0),SUM(($D$4:$D$13=$F$3)*($C$4:$C$13=LARGE(IF($D$4:$D$13=$F$3,$C$4:$C$13,0),1)))+1))}
Sau đó fill down xuống!
Xem thêm file đính kèm! Tham số Group có thể thay đổi được tại ô F3
 

File đính kèm

Lần chỉnh sửa cuối:
Thanks anhtuan nhiều, nhưng ý em là làm 1 công thức để mà filled down mà,

Anh xem lại giúp nha, em làm mấy ngày rùi mà hổng có ra gì hết :(

To npv : Không dùng dữ liệu phụ thì không còn cách sao ?

TO Ca_dafi :Nếu không xài F3 có được không ? (dù sao F3 vẫn là dữ liệu phụ :P)
 
Lần chỉnh sửa cuối:
TO Ca_dafi : F3 là cái chi rứa ?

Tại ô F3 ta có thể gõ chữ A, hoặc B, hoặc C (nghĩa là Group ID). Công thức sẽ lấy ô này làm điều kiện tham chiếu! Không thích dùng F3, thì thay trực tiếp F3 = "A" hoặc F3="B".... Không biết nói vậy được chưa.
 
Lần chỉnh sửa cuối:
Thanks anhtuan nhiều, nhưng ý em là làm 1 công thức để mà filled down mà,

Anh xem lại giúp nha, em làm mấy ngày rùi mà hổng có ra gì hết :(

To npv : Không dùng dữ liệu phụ thì không còn cách sao ?

TO Ca_dafi :Nếu không xài F3 có được không ? (dù sao F3 vẫn là dữ liệu phụ :P)
Chưa hiểu lắm! Bạn muốn fill vào đâu? Thử điền 1 vài dử liệu mà bạn mong muốn vào tôi xem thử (nhìn file bạn tôi đoán cột C, D, E là dử liệu nhập)
 
Chưa hiểu lắm! Bạn muốn fill vào đâu? Thử điền 1 vài dử liệu mà bạn mong muốn vào tôi xem thử (nhìn file bạn tôi đoán cột C, D, E là dử liệu nhập)

Anh anhtuan ơi! Cột C,D là dữ liệu nhập, Cột E là kết quả mong muốn đó anh!
 
To Anhtuan, tức là khởi đầu công thức là ở F3, sau đó kéo xuống tới F13 đó, như bác cada_fi nhà mình đã làm (đại khái là lấy đại 1 cột nào rùi kéo xuống)
 
Cột E không phải là cột nhập liệu, là cột kết quả em ví dụ, để anh dễ hình dung đó mà :)
 
Nếu cột E không phải là nhập liệu, vậy số 5000, 10000 ở đâu mà ra?
Dạ, yêu cầu của tác giả lả:

- Nếu giá trị bên cột C thỏa mãn điều kiện là số lớn nhất trong nhóm "A" thì tương ứng bên cột E sẽ nhận giá trị là 10000;

- Nếu giá trị bên cột C thỏa mãn điều kiện là số lớn nhì trong nhóm "A" thì tương ứng bên cột E sẽ nhận giá trị là 5000;

- Các trường hợp còn lại thì để trống!
 
Nếu không dùng cột phụ thì cách đơn giản hơn là sắp xếp dữ liệu theo nhóm rồi tính theo từng nhóm, vậy là ok?
 
Dạ, yêu cầu của tác giả lả:

- Nếu giá trị bên cột C thỏa mãn điều kiện là số lớn nhất trong nhóm "A" thì tương ứng bên cột E sẽ nhận giá trị là 10000;

- Nếu giá trị bên cột C thỏa mãn điều kiện là số lớn nhì trong nhóm "A" thì tương ứng bên cột E sẽ nhận giá trị là 5000;

- Các trường hợp còn lại thì để trống!
Giờ mới hiểu... Hi.. hi...
Vậy thì:
PHP:
E4 =IF(AND($D4=$F$3,$C4=MAX($C$4:$C$13)),10000,IF($C4=LARGE(($D$4:$D$13=$F$3)*($C$4:$C$13<>MAX($C$4:$C$13))*($C$4:$C$13),1),5000,""))
Ctrl + Shift + Enter
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Ngắn hơn 1 chút, dùng hàm SIGN
PHP:
=5000*IF($D4<>"A",0,SIGN($C4-LARGE(($D$4:$D$13="A")*($C$4:$C$13<>MAX($C$4:$C$13))*($C$4:$C$13),1))+1)
Cũng Ctrl +Shift +Enter
 
Chỉnh sửa lần cuối bởi điều hành viên:
Công thức này không đúng. Thử kiểm tra với Group B hoặc cho Max A không phải là Max Mark sẽ thấy chỗ sai.
Uh... đúng!
Hay ta làm 1 UDF đi cho nó gọn nhỉ!
Thêm nữa: Nhìn dử liệu sao thấy giống ngày công quá nhỉ? Ban vumian có thể nói rõ hơn 1 chút về ý nghĩa của dử liệu này không?
Nhìn vào tôi cứ đoán rằng: Nếu đủ 26 ngày công thì thưởng 10.000, nếu.... 5000
 
Anh Tuấn ơi, công thức này:
PHP:
 E4 =IF(AND($D4=$F$3,$C4=MAX($C$4:$C$13)),10000,IF($C4=LARGE(($D$4:$D$13=$F$3)*($C$4:$C$13<>MAX($C$4:$C$13))*($C$4:$C$13),1),5000,""))
Cũng chỉ đúng với nhóm A. Nếu làm cho nhóm B hay C thì nó sai.
 
Uh... đúng!
Hay ta làm 1 UDF đi cho nó gọn nhỉ!
Thêm nữa: Nhìn dử liệu sao thấy giống ngày công quá nhỉ? Ban vumian có thể nói rõ hơn 1 chút về ý nghĩa của dử liệu này không?
Nhìn vào tôi cứ đoán rằng: Nếu đủ 26 ngày công thì thưởng 10.000, nếu.... 5000

Không phải ngày công gì hết anh ơi, như từ #1 em có nói là bài tự phát thôi à :)
 
Thủ công thưc này, tôi nghĩ là chính xác đây (vẩn dựa trên cơ sở của hàm SIGN)
PHP:
=($D4=$F$3)*(SIGN($C4-MAX(($C$4:$C$13<MAX(($D$4:$D$13=$F$3)*($C$4:$C$13)))*(($D$4:$D$13=$F$3)*($C$4:$C$13))))+1)*5000
Nếu đặt 1 name
PHP:
DK =($D$4:$D$13=$F$3)*($C$4:$C$13)
thì công thức sẽ ngắn hơn:
PHP:
=($D4=$F$3)*(SIGN($C4-MAX(($C$4:$C$13<MAX(DK))*(DK)))+1)*5000
Tất cả đều là công thức mãng, đương nhiên phải Ctrl + Shift + Enter
 

File đính kèm

Tôi có cách này hay mà không phải dùng ô phụ hay cột phụ gì hết:

Bác ndu vẫn dùng ô phụ F3 rồi, theo tôi thì thế này:
E4=IF(C4=LARGE(($D$4:$D$13="A")*($C$4:$C$13);1);10000;IF(C4=LARGE(($D$4:$D$13="A")*($C$4:$C$13);1+SUMPRODUCT(1*($C$4:$C$13=LARGE(($D$4:$D$13="A")*($C$4:$C$13);1))));5000;""))
rồi nhấn Ctrl+Shift+Enter sau đó fill down là được.
Các bạn tham khảo và cho ý kiến nhé.
Cảm ơn chủ đề tài này có câu hỏi hay.
 
Lần chỉnh sửa cuối:
Bác ndu vẫn dùng ô phụ F3 rồi, theo tôi thì thế này:
E4=IF(C4=LARGE(($D$4:$D$13="A")*($C$4:$C$13);1);10000;IF(C4=LARGE(($D$4:$D$13="A")*($C$4:$C$13);1+SUMPRODUCT(1*($C$4:$C$13=LARGE(($D$4:$D$13="A")*($C$4:$C$13);1))));5000;""))
rồi nhấn Ctrl+Shift+Enter sau đó fill down là được.
Các bạn tham khảo và cho ý kiến nhé.
Cảm ơn chủ đề tài này có câu hỏi hay.
Ai dza... Ô phụ đó là để khi thay đổi điều kiện gõ vào cho lẹ ---> Đó cũng không thể gọi là ô phụ được, giống như Advanced Filter có vùng điều kiện vậy---> đố bạn bỏ được đấy..
Làm như bạn vậy đã lẽ phải sửa trong công thức à?
 
Lần chỉnh sửa cuối:
Bác ndu vẫn dùng ô phụ F3 rồi, theo tôi thì thế này:
E4=IF(C4=LARGE(($D$4:$D$13="A")*($C$4:$C$13);1);10000;IF(C4=LARGE(($D$4:$D$13="A")*($C$4:$C$13);1+SUMPRODUCT(1*($C$4:$C$13=LARGE(($D$4:$D$13="A")*($C$4:$C$13);1))));5000;""))
rồi nhấn Ctrl+Shift+Enter sau đó fill down là được.
Các bạn tham khảo và cho ý kiến nhé.
Cảm ơn chủ đề tài này có câu hỏi hay.
Bạn à! Nếu không thích dùng ô F3 thì có thể thay trực tiếp F3 = "A" ngay trong công thức của anh ndu.

Bạn nên phân biệt giá trị tham chiếu độngcột phụ! (vì không ai dùng từ [ô phụ] cả!)
Hãy thử nghĩ, nếu muốn tính toán với tham số là "B" chẳng hạn, bạn phải sửa công thức của bạn tại mấy chỗ? Trong khi công thức của ndu chỉ cần thay giá trị "A" bằng "B" tại ô F3! Không biết giải thích như vậy đã được chưa!
 
Xin lỗi chủ đề tài, tôi muốn hỏi thêm (mở rộng câu hỏi)

Bạn à! Nếu không thích dùng ô F3 thì có thể thay trực tiếp F3 = "A" ngay trong công thức của anh ndu.

Bạn nên phân biệt giá trị tham chiếu độngcột phụ! (vì không ai dùng từ [ô phụ] cả!)
Hãy thử nghĩ, nếu muốn tính toán với tham số là "B" chẳng hạn, bạn phải sửa công thức của bạn tại mấy chỗ? Trong khi công thức của ndu chỉ cần thay giá trị "A" bằng "B" tại ô F3! Không biết giải thích như vậy đã được chưa!
Cảm ơn các bạn đã góp ý chân thành và giải thích tận tình. ca_dafi nói tôi mới biết không có khái niệm ô phụ và như thế gọi là giá trị tham chiếu động (Tôi là dân không chuyên mà). Sau này cũng thế, có gì không phải mong các bạn bỏ quá và tận tình giải thích giúp nha.
Tôi muốn hỏi thêm: Nếu mỗi nhóm ở cột D có giá trị lớn nhất ở cột C thì cột E là 10000, lớn nhì là 5000 thì dùng công thức như thế nào để cũng fill down xuống là được? Mong các bạn vào cuộc tiếp. Thanks.
 
Nếu mỗi nhóm ở cột D có giá trị lớn nhất ở cột C thì cột E là 10000, lớn nhì là 5000 thì dùng công thức như thế nào để cũng fill down xuống là được? Mong các bạn vào cuộc tiếp. Thanks.

Hông hiểu ý bác muốn gì ? bác đưa thử kết quả demo vào file thử xem
 
Tôi xin lỗi vì diễn đạt không thoát ý. Tôi muốn kết quả như trong file đính kèm. Các bạn giúp tôi nhé. Thanks.
 

File đính kèm

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

Back
Top Bottom