Những vấn đề về hàm IF

Liên hệ QC
Status
Không mở trả lời sau này.
Mình cũng chỉ nghĩ được công thức :
PHP:
=IF(Right(B3)="1",2,IF(Right(B3)="2",1.5,1))
Các bạn nghĩ ra nhiều công thức đơn giản vào hiệu quả hơn rất nhiều thật đáng khâm phục, Rất Vui vì biết được diễn đàn Giải Pháp ExceL
 
Hỏi về Hàm IF

Em đã thử search hàm IF trong diễn đàn, nhưng không ứng dụng được vào điều em cần nên em viết ra đây nhờ các anh chị em giúp em với:

VD:

Điểm thi Từ 20-25 Thì kết quả = 0
Điểm thi Từ 25-35 thì kết quả = cột điểm x 100
Điểm thi từ 35-45 thì kết quả = cột điểm x 150
Trên 45 thì kết quả = cột điểm x 200

Ở đây em có 3 cột: 1 Cột điểm, 2 Cột quy đổi, 3 là cột kết quả. Em đang muốn tính tỷ lệ quy đổi thưởng cho học sinh đạt điểm thi.

Đây là ví dụ em đưa ra, các anh chị giúp em. Em cảm ơn ạ.
 
Không hiểu ý bạn có đúng thế này không, xem VD, có gì không được thì hỏi thêm trên VD cho dễ trả lời bạn nhé.
 

File đính kèm

  • Test.xls
    13.5 KB · Đọc: 59
Có phải như vậy không bạn
 

File đính kèm

  • HAM IF.xls
    13.5 KB · Đọc: 39
Em đã thử search hàm IF trong diễn đàn, nhưng không ứng dụng được vào điều em cần nên em viết ra đây nhờ các anh chị em giúp em với:

VD:

Điểm thi Từ 20-25 Thì kết quả = 0
Điểm thi Từ 25-35 thì kết quả = cột điểm x 100
Điểm thi từ 35-45 thì kết quả = cột điểm x 150
Trên 45 thì kết quả = cột điểm x 200

Ở đây em có 3 cột: 1 Cột điểm, 2 Cột quy đổi, 3 là cột kết quả. Em đang muốn tính tỷ lệ quy đổi thưởng cho học sinh đạt điểm thi.

Đây là ví dụ em đưa ra, các anh chị giúp em. Em cảm ơn ạ.
Vậy điểm thi = 25 thì = 0 hay = cột điểm x 100
= 35 thì x 100 hay x 150
....
 
Hàm IF

Bạn hỏi chưa rõ:
Từ 20 đến 25 rồi làm sao mà từ 25 đến 35 được?
Chỉ hiểu được cột điểm và cột kết quả, còn qui đổi ra làm sao thì không hiểu được.
Xin kèm file có đúng ý bạn không.
 

File đính kèm

  • Ham_IF.xls
    13.5 KB · Đọc: 30
Có các cột: Họ tên, điểm thi thực tế, mức điểm quy đổi, 1 điểm tương ứng với số tiền, Thành tiền.

Em cần tính ở cột thành tiền ạ, nếu các dữ liệu giống như ở bên dưới thì tính thế nào ạ?

Ở đây, nếu SV đạt được mức điểm dưới 25 thì ko được thưởng
Từ 25-35 điểm, thì mỗi điểm được thưởng 1500
Từ 35-45 điểm, thì mỗi điểm được thưởng 1750
45-55 điểm, thì mỗi điểm được thưởng 2000
Từ 55 điểm trở lên, thì mỗi điểm được thưởng 3000

Không biết viết như vậy được chưa nữa, hồi hộp quá.
 
em thấy là làm như bác tanbinh2002 là không ổn. Nguyên nhân do nếu bác làm như thế thì khi ta copy lệnh cột Kết quả sẽ bằng ="0" bắt đầu từ "C6". Do đó bạn phải cố định cột thì mới ra kết quả (=IF(A2<=25,A2*E$2,IF(A2<=35,A2*E$3,IF(A2<=45,A2*E$4,A2*E$5)))
như bài trên tôi thấy làm như bác cop_kh cung duoc mà
 
Lần chỉnh sửa cuối:
Bạn cứ làm từ từ, từng bước một. Đây, tôi dựa vào điều kiện bạn đưa ra để tính mức tiền thưởng nhé:
...nếu SV đạt được mức điểm dưới 25 thì ko được thưởng
IF(điểm < 25, 0, ... (1)​
...Từ 25 đến dưới 35 điểm, thì mỗi điểm được thưởng 1500
IF(điểm < 35, 1500, ... (2)​
Ở trường hợp thứ hai này, ta chỉ xét nếu điểm nhỏ hơn 35, mà không cần quan tâm đến chuyện "từ 25 đến dưới 35", bởi vì nếu dưới 25 thì đã có cái IF thứ nhất xử rồi.


Tương tự, làm tiếp nhé:
...Từ 35 đến dưới 45 điểm, thì mỗi điểm được thưởng 1750
IF(điểm < 45, 1750, ... (3)​
...Từ 45 đến dưới 55 điểm, thì mỗi điểm được thưởng 2000
IF(điểm < 55, 2000, ... (4)​
...Từ 55 điểm trở lên, thì mỗi điểm được thưởng 3000
Đến đây thì hết rồi, nên chỉ cần mỗi con số 3000 (5)

Xong. Bi giờ bạn gõ dấu bằng (=), rồi nối hết mấy cái (1), (2), (3), (4), (5) ở trên đây lại với nhau, thay cái dấu ... của cái trước bằng cái IF tiếp theo, và đếm xem có bao nhiêu cái IF thì đóng ngoặc đơn lại bấy nhiêu lần, bạn sẽ có công thức sau đây:
=IF(điểm < 25, 0, IF(điểm < 35, 1500, IF(điểm < 45, 1750, IF(điểm < 55, 2000, 3000))))


Bạn đừng làm một lèo, sẽ thấy oải lắm, cứ làm từ từ như tôi nói nãy giờ, bảo đảm bạn sẽ làm được. Dĩ nhiên, bạn phải thay cái chữ "điểm" trong công thức ở trên đây bằng một ô cụ thể nào đó, ô thực tế chứa điểm trong bảng tính của bạn.

Rồi để tính thành tiền, bạn lấy số điểm thực tế, nhân với mức tiền thưởng mới tính ra bằng công thức IF, là xong thôi.

Bài này, có thể làm bằng cách khác, kẻ một cái bảng rồi dùng hàm dò tìm chẳng hạn, công thức ngắn hơn nhiều. Tuy nhiên, vì bạn hỏi cách dùng hàm IF, nên tôi chỉ nói đến hàm IF thôi. Mong rằng bạn hiểu và tự làm được.

Cố lên nhé.
 
Lần chỉnh sửa cuối:
Có thể tham khảo công thức này:
=CHOOSE(MIN(MAX(INT((Điểm-25)/10)+2,1),5),0,1500,1750,2000,3000)
 
Có thể tham khảo công thức này:
=CHOOSE(MIN(MAX(INT((Điểm-25)/10)+2,1),5),0,1500,1750,2000,3000)
Để em mò cái công thức này thử...

INT((Điểm-25)/10)+2 : Có phải là lấy số điểm trừ đi 25, xong đem chia cho 10, rối lấy phần nguyên của phép chia này cộng thêm 2?

MAX(INT((Điểm-25)/10)+2, 1) : Cái này có phải đề phòng INT((Điểm-25)/10)+2 mà nhỏ hơn 1 thì lấy số 1? Nghĩa là tất cả những điểm nào mà nhỏ hơn 25 thì đều lấy số 1 hết?

MIN(MAX(INT((Điểm-25)/10)+2, 1), 5) : Cái này thì để nếu mà MAX(INT((Điểm-25)/10)+2, 1) lớn hơn 5 thì chỉ lấy số 5? Nghĩa là tất cả những điểm nào mà lớn hơn hay bằng 55 thì đều lấy số 5 hết?

Như vậy thì MIN(MAX(INT((Điểm-25)/10)+2, 1), 5) sẽ luôn luôn chỉ là... nếu điểm nhỏ hơn 25 thì lấy số 1, nếu điểm nhỏ hơn 35 thì lấy số 2, nếu điểm nhỏ hơn 45 thì lấy số 3, nếu điểm nhỏ hơn 55 thì lấy số 4, còn nếu lớn hơn hay bẳng 55 thì là số 5, và rồi năm con số này ứng với năm giá trị 0, 1500, 1750, 2000, 3000 của hàm CHOOSE?

Hay thiệt! Chưa bao giờ em lại có thể nghĩ ra được cái công thức này!

Cảm ơn anh ndu96081631.
 
Lần chỉnh sửa cuối:
Em cần tính ở cột thành tiền ạ, nếu các dữ liệu giống như ở bên dưới thì tính thế nào ạ?

Ở đây, nếu SV đạt được mức điểm dưới 25 thì ko được thưởng
Từ 25-35 điểm, thì mỗi điểm được thưởng 1500
Từ 35-45 điểm, thì mỗi điểm được thưởng 1750
45-55 điểm, thì mỗi điểm được thưởng 2000
Từ 55 điểm trở lên, thì mỗi điểm được thưởng 3000
Thêm một cách dùng Choose nữa, dài hơn chút, nhưng có lẽ dễ hiểu hơn chút xíu, và nếu có thay đổi/thêm bớt các mức thưởng thì có thể thay/thêm trực tiếp giá trị vào công thức :
Giả sử cột A là cột Điểm
PHP:
=CHOOSE(((A1>=0)+(A1>=25)+(A1>=35)+(A1>=45)+(A1>=55)),0,1500,1750,2000,3000)
 
Để em mò cái công thức này thử...

INT((Điểm-25)/10)+2 : Có phải là lấy số điểm trừ đi 25, xong đem chia cho 10, rối lấy phần nguyên của phép chia này cộng thêm 2?

MAX(INT((Điểm-25)/10)+2, 1) : Cái này có phải đề phòng INT((Điểm-25)/10)+2 mà nhỏ hơn 1 thì lấy số 1? Nghĩa là tất cả những điểm nào mà nhỏ hơn 25 thì đều lấy số 1 hết?

MIN(MAX(INT((Điểm-25)/10)+2, 1), 5) : Cái này thì để nếu mà MAX(INT((Điểm-25)/10)+2, 1) lớn hơn 5 thì chỉ lấy số 5? Nghĩa là tất cả những điểm nào mà lớn hơn hay bằng 55 thì đều lấy số 5 hết?

Như vậy thì MIN(MAX(INT((Điểm-25)/10)+2, 1), 5) sẽ luôn luôn chỉ là... nếu điểm nhỏ hơn 25 thì lấy số 1, nếu điểm nhỏ hơn 35 thì lấy số 2, nếu điểm nhỏ hơn 45 thì lấy số 3, nếu điểm nhỏ hơn 55 thì lấy số 4, còn nếu lớn hơn hay bẳng 55 thì là số 5, và rồi năm con số này ứng với năm giá trị 0, 1500, 1750, 2000, 3000 của hàm CHOOSE?

Hay thiệt! Chưa bao giờ em lại có thể nghĩ ra được cái công thức này!

Cảm ơn anh ndu96081631.
Chưa cần nói đến kết quả đúng hay sai... chỉ nói đến việc phân tích như trên là 1 hướng đi hoàn toàn đúng đắn ---> Với 1 công thức dài, ta phân ra từng đoạn ngắn để nghiên cứu
Chúc mừng bạn đã có hướng đi tốt làm nền tảng sau này!
 
Em xin chân thành cảm ơn tới tất cả mọi người đã giúp em (em đã nhấn nút cảm ơn rùi đấy ạ :D). Em sẽ ứng dụng và thử mầy mò thêm.

...
Bài này, có thể làm bằng cách khác, kẻ một cái bảng rồi dùng hàm dò tìm chẳng hạn, công thức ngắn hơn nhiều. Tuy nhiên, vì bạn hỏi cách dùng hàm IF, nên tôi chỉ nói đến hàm IF thôi. Mong rằng bạn hiểu và tự làm được.

Cố lên nhé.

Cảm ơn bác đã chỉ bảo tận tình. Em thì chỉ quan tâm tới kết quả thôi chứ làm cách nào đơn giản mà dễ hiểu là tốt lắm rồi ạ, em hỏi hàm If vì em nghĩ tới hàm If thôi chứ không biết hàm khác đâu.

Em cà rốt Excel lắm ạ.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Có công thức thế này không? Và có thể rút ngắn nó hơn bằng cách nào?

Em mầy mò một hồi theo topic kia, đã ra công thức của bài tập trước em đang làm, nhưng lần này em lại mầy mò ra công thức mới - thấy dài lê thê. Mấy dữ liệu đầu, em thử thì đúng, nhưng khi có nhiều dữ liệu quá, công thức em chạy toàn báo sai. Em viết lên đây nhờ các anh chị chỉ giúp, nếu có thể chuyển thành công thức nào ngắn hơn thì giúp em luôn.

(Em chỉ biết mỗi hàm if - không biết các hàm khác), nhờ các bác chỉ giáo thêm.

Công thức là:

= If(điểm<=A,INT(Điểm/A1)+1, if(điểm<=B,INT(điểm/A1)+3, if(điểm<=C,INT(điểm/A1)+7, điểm<=D,INT(điểm/A1)+15))))

D>C>B>A.

Áp dụng cho các số từ A->H

**~**
 
Viết như vầy được không?
=(Điểm<=A)+(Điểm<=B)*3+(Điểm<=C)*7+(Điểm<=D)*15)+INT(Điểm/A1)
Thân.
 
Up giúp bài cho bạn snow82.
Vậy bạn yêu cầu rõ lại, vì xem trong File và trong VD của bạn là khác nhau?
 

File đính kèm

  • test CT.xls
    14 KB · Đọc: 19
Lần chỉnh sửa cuối:
Cho hỏi lại 1 chút nha!
Cái file này với cái công thức trên liên quan gì nhau vậy?
Và mình phải làm gì bây giờ?
Thân.
 
Nếu bạn không muốn dùng bảng phụ, thì có thể dùng công thức này:
F10 = D10*CHOOSE(((B10>0)+(B10>20000)+(B10>40000)+(B10>70000)+(B10>151000)+(B10>300000)),0,1,3,7,15,27)
 
Ơ sao bác tài thế, em up mãi không xong?

Em muốn tính được cái cột cuối cùng là tổng điểm ấy ạ, em cần công thức tính cho cột tổng điểm ở bảng excel ấy. Cái phần bài trên cùng cũng giống thế, em edit nội dung cho phù hợp với số liệu ở bảng excel thôi ạ.

(Hình như em gà quá, diễn đạt lòng vòng quá. Từ mai em chăm nghiên cứu các bài tập các bác đưa ra xem có tốt hơn ko, giờ thấy ẹ quá)
 
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom