Những vấn đề về hàm IF (2 người xem)

Liên hệ QC

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

Status
Không mở trả lời sau này.
Bác Springrain836 chỉ ra đúng rồi. Nhưng em không biết bác làm như thế nào cả. Bác chỉ chi tiết cho em được không?
 
Ặc. Phần list thứ 2 em làm nó toàn báo lỗi bác ah. Làm bên file bác gửi thì ko sao nhưng mang sang file em cần làm thì nó báo lỗi: "A name range you specified cannot be found". Em không hiểu sao cả.

Bác Springrain836 chỉ ra đúng rồi. Nhưng em không biết bác làm như thế nào cả. Bác chỉ chi tiết cho em được không?

1. Bạn vào Menu/Insert/name/Define sẽ thấy có một số Name trong đó, nghiên cứu kỹ các Name này.

2. Trong file có hai Combobox tạo từ Forms, bạn click chuột phải lên từng combobox một và chọn format control, nghiên cứu kỹ các tùy chọn trong Tab Control sẽ rõ.
 
Hàm IF lồng nhau

Mình có cú pháp hàm IF lồng nhau như sau:
=IF(Biểu thức logic,biểu thưc1, IF(Biểu thức logic2, biểu thức 2,...,IF(Biểu thức logic N, biểu thức N)))
Mọi người góp ý xem như vậy có đúng k?
Có người bảo mình cú pháp khác như sau:
=IF(Biểu thức logic,biểu thưc1, IF(Biểu thức logic2, biểu thức 2,...,IF(Biểu thức logic N, biểu thức N, N+1))...)
Liệu cú pháp nào là đúng hả các bạn?
Giúp mình với.
 
Cả 2 đều đúng bạn à, tùy theo nhu cầu sử dụng mà thôi:
Trong trường hợp 1 sử dụng để cho chính xác KQ của mọi trường hợp, nếu không có thì báo lỗi.
Trường hợp 2 thì không có báo lỗi, nếu không có KQ trong các IF trước thì trả về KQ cuối cùng (n+1).
 
Hàm IF lồng vào nhau không thể nào đến N số lần logic được đâu bạn ơi!
Tối đa chỉ có thể dùng được 8 lần Logic ứng với 9 đáp số và ứng với N = 8 thôi.
Vậy nếu muốn vô tận thì bạn phải dùng cách khác thôi!
Ví dụ: =(Logic 1)*KQ1+(Logic 2)*KQ2+....+(Logic N)*KQN
Vậy thì sẽ được đó.
Vì 1 Logic = True tức là thỏa thì sẽ cho ra kết quả là 1. Và 1 nhân với KQ của Logic đó sẽ ra đáp số của Logic cần tìm.
Vậy bạn cứ thử nghiệm với các logic của bạn xem rồi đối chiếu sẽ thấy cách này là cách hữu dụng nhất nhưng đôi khi cũng hơi khó dùng đó. Hiiii
Chúc vui.
Thân.
 
Hàm IF lồng vào nhau không thể nào đến N số lần logic được đâu bạn ơi!
Tối đa chỉ có thể dùng được 8 lần Logic ứng với 9 đáp số và ứng với N = 8 thôi.
Vậy nếu muốn vô tận thì bạn phải dùng cách khác thôi!
Ví dụ: =(Logic 1)*KQ1+(Logic 2)*KQ2+....+(Logic N)*KQN
Vậy thì sẽ được đó.
Vì 1 Logic = True tức là thỏa thì sẽ cho ra kết quả là 1. Và 1 nhân với KQ của Logic đó sẽ ra đáp số của Logic cần tìm.
Vậy bạn cứ thử nghiệm với các logic của bạn xem rồi đối chiếu sẽ thấy cách này là cách hữu dụng nhất nhưng đôi khi cũng hơi khó dùng đó. Hiiii
Chúc vui.
Thân.
Có nhiều cách để kéo hàm IF ra nhưng không VÔ TẬN được đâu ---> Dù là thay bằng VLOOKUP thì cũng có giới hạn chứ
 
Hàm IF lồng vào nhau không thể nào đến N số lần logic được đâu bạn ơi!
Tối đa chỉ có thể dùng được 8 lần Logic ứng với 9 đáp số và ứng với N = 8 thôi.
Vậy nếu muốn vô tận thì bạn phải dùng cách khác thôi!
Ví dụ: =(Logic 1)*KQ1+(Logic 2)*KQ2+....+(Logic N)*KQN
Vậy thì sẽ được đó.
Vì 1 Logic = True tức là thỏa thì sẽ cho ra kết quả là 1. Và 1 nhân với KQ của Logic đó sẽ ra đáp số của Logic cần tìm.
Vậy bạn cứ thử nghiệm với các logic của bạn xem rồi đối chiếu sẽ thấy cách này là cách hữu dụng nhất nhưng đôi khi cũng hơi khó dùng đó. Hiiii
Chúc vui.
Thân.
Cách của Po_Pikachu chỉ đúng khi KQ1, KQ2,..., KQnkiểu số (number), còn nếu KQ1, KQ2,...,KQn không phải là kiểu số thì coi như xong!
Ví dụ: (Điểm>=5)*"Trung Bình" + (Điểm>=7)*"Khá" ==> không được!

Một cách khác tham khảo dùng Choose nhé, đây là công thức tổng quát, áp dụng vào từng bài toán cụ thể có thể khác chút xíu:
PHP:
=Choose(((Logic_1)+1,(Logic_2)+2,.....(Logic_n)+n),KQ1.KQ2,......,KQn)
Lúc này KQ1,KQ2,....,KQn là gì thì tùy ý; thậm chí nó có thể là một Mảng dữ liệu (Range) dùng để tham chiếu cũng được!
 
Lần chỉnh sửa cuối:
Đúng vậy! Em quên xét trường hợp là text.
Nhưng hàm Choose có thể bỏ bớt việc + n số liên tiếp được không? Vì nó là điều kiện lớn hơn hoặc bằng và là chuổi liên tiếp mà. Vậy nếu ví dụ có 4 hạng: "Yếu", "Trung Bình", "Khá", "Giỏi". Thì em sẽ biết như sau:
=CHOOSE((C6>=0)+(C6>=3)+(C6>=6)+(C6>=8),"Yếu","Trung Bình","Khá","Giỏi")
Thân.
 
Nhưng hàm Choose có thể bỏ bớt việc + n số liên tiếp được không? Vì nó là điều kiện lớn hơn hoặc bằng và là chuổi liên tiếp mà. Vậy nếu ví dụ có 4 hạng: "Yếu", "Trung Bình", "Khá", "Giỏi". Thì em sẽ biết như sau:
PHP:
=CHOOSE((C6>=0)+(C6>=3)+(C6>=6)+(C6>=8),"Yếu","Trung Bình","Khá","Giỏi")
Dĩ nhiên là được, mình vẫn hay dùng như cách Po_Kikachu vừa trình bày. Cho nên mình mới nói là "tùy từng bài toán cụ thể" mà tùy cơ ứng biến - Vô chiêu thắng hữu chiêu mà!
 
Cho em hỏi đề bài yêu cầu là:"nếu ngày đến vào tháng 1 hoặc tháng 5 thì thành tiền= 20%*ngày ở *đơn giá ngày, còn nếu ngày đến vào tháng khác thì thành tiền= ngày ở*đơn giá ngày" công thức ở đây phải làm như thế nào ạ?
 
Cho em hỏi đề bài yêu cầu là:"nếu ngày đến vào tháng 1 hoặc tháng 5 thì thành tiền= 20%*ngày ở *đơn giá ngày, còn nếu ngày đến vào tháng khác thì thành tiền= ngày ở*đơn giá ngày" công thức ở đây phải làm như thế nào ạ?
Bạn dùng công thức sau:
[Thành tiền] =[Đơn giá ngày]*Choose(Or(Month([NgàyĐến])=1,Month([NgàyĐến])=5))+1,[NgàyỞ],[NgàyỞ]*20%)
 
các bác làm hộ em bài này với
cảm ơn rất nhiều

!$@!!
 

File đính kèm

Ca_Dafi đã viết:
Bạn dùng công thức sau:
[Thành tiền] =[Đơn giá ngày]*CHOOSE(OR(MONTH([NgàyĐến])=1,MONTH([NgàyĐến])=5))+1,[NgàyỞ],[NgàyỞ]*20%)
Công thức trên dư một dấu đóng ngoặc đơn của hàm CHOOSE, trước chỗ +1:
[Thành tiền] =[Đơn giá ngày]*CHOOSE(OR(MONTH([NgàyĐến])=1,MONTH([NgàyĐến])=5)+1,[NgàyỞ],[NgàyỞ]*20%)

Dùng IF ngắn hơn:
[Thành tiền] =[Đơn giá ngày]*IF(OR(MONTH([NgàyĐến])=1,MONTH([NgàyĐến])=5),[NgàyỞ]*20%,[NgàyỞ])​
Hay là khỏi cần IF luôn:
[Thành tiền] =[Đơn giá ngày]*[NgàyỞ]*(1-(OR(MONTH([NgàyĐến])=1,MONTH([NgàyĐến])=5)*80%)​
 
Lần chỉnh sửa cuối:
Hay là khỏi cần IF luôn:
[Thành tiền] =[Đơn giá ngày]*[NgàyỞ]*(1-(OR(MONTH([NgàyĐến])=1,MONTH([NgàyĐến])=5)*80%)
Hình như là 20%, chứ không phải 80% anh BNTT ơi!
Lỡ rồi, em làm công thức này luôn vậy, không cần Ctrl+Shift+Enter:
[Thành tiền] =[Đơn giá ngày]*[NgàyỞ]*(1-20%*SUM(--(MONTH([NgàyĐến])={1,5})))

Với công thức này, nếu ta có thêm vài điều kiện tháng nữa vào thì công thức chỉ dài thêm tối đa vài ký tự tương đương với số điều kiện thêm vào nữa thôi! Ví dụ bài toán trên, nếu điều kiện là: hoặc tháng của ngày đến là 1,4,5,9 thì được giảm 20%, ta chỉ cần thêm vào mảng điều kiện là xong:
[Thành tiền] =[Đơn giá ngày]*[NgàyỞ]*(1-20%*SUM(--(MONTH([NgàyĐến])={1,4,5,9})))
 
Lần chỉnh sửa cuối:
Hình như là 20%, chứ không phải 80% anh BNTT ơi!
80% chứ sao lại 20%? Em không thấy anh lấy 1 trừ đi à?
Người ta nói, nếu .... thì thành tiền= 20%*ngày ở *đơn giá ngày mà!
20% giá, tức là lấy nguyên giá trừ đi 80% giá.
A*20% với lại A*(1-80%) là mấy thứ ?

Đừng chỉ nhìn công thức mà đánh giá. Hãy tạo thử một dữ liệu, áp dụng công thức vào, xem nó đúng hay sai, rồi hẵng kết luận, nhé!

Thêm cái sai này nữa, cái anh bôi màu đỏ:
Với công thức này, nếu ta có thêm vài điều kiện tháng nữa vào thì công thức chỉ dài thêm tối đa vài ký tự tương đương với số điều kiện thêm vào nữa thôi! Ví dụ bài toán trên, nếu điều kiện là: hoặc tháng của ngày đến là 1,4,5,9 thì được giảm 20%, ta chỉ cần thêm vào mảng điều kiện là xong:
Giảm 20% giábằng 20% giá là hai chuyện hoàn toàn khác nhau! Đọc lại đề bài nhé:
Cho em hỏi đề bài yêu cầu là:
Nếu ngày đến vào tháng 1 hoặc tháng 5 thì thành tiền = 20%*ngày ở *đơn giá ngày
Nếu ngày đến vào tháng khác thì thành tiền = ngày ở*đơn giá ngày
Công thức ở đây phải làm như thế nào ạ?
 
Lần chỉnh sửa cuối:
Đúng là nhầm to nhỉ! Hôm nay em có vấn đề rồi! Đúng là 80% chứ không phải là 20%! Cảm ơn anh BNTT.
 
Trời mọi người đưa ra nhiều công thức quá, ở đây em chỉ sử dụng hàm if thôi và cũng đã làm được bài này rồi. Nhưng rất cảm ơn mọi người đã giúp em!!
 
Bạn gửi file như vầy thì đâu có ai download được đâu. Trừ bạn thôi
 
Bạn nhấn vào nút "Đổi sang khung lớn" rồi kéo thanh trượt xuống sẽ thấy nút "Tải file từ máy". Tiếp theo là nạp file vào rồi Gửi bài lên. Vậy mới đúng.
Thân.
 
Hỏi về hàm IF

Các bạn cho mình hỏi:mình có 3 cột A,B,C và D
Nếu A>B thì giá trị cột D=(C-A)/A ,còn nếu A<B hoặc A là số âm thì D=(C-B)/B.Mình mới học excel nên chưa rành.Chân thành cảm ơn.
 
D1=if(or(a1<b1,a1<0),(c1-b1)/b1,(c1-a1)/a1)

Còn để chắc ăn để tránh báo lỗi khi A1 hay B1 bằng 0, thì:
=IF(ISERROR(IF(OR(A1<B1;A1<0);(C1-B1)/B1;(C1-A1)/A1));0;(IF(OR(A1<B1;A1<0);(C1-B1)/B1;(C1-A1)/A1)))
 
Lần chỉnh sửa cuối:
Các bạn cho mình hỏi:mình có 3 cột A,B,C và D
Nếu A>B thì giá trị cột D=(C-A)/A ,còn nếu A<B hoặc A là số âm thì D=(C-B)/B.Mình mới học excel nên chưa rành.Chân thành cảm ơn.
Chỉ cần gộp bài của bạn vào là được rồi.
Mã:
=if(A>B, (C-A)/A, if(or(A<0,A<B),(C-B)/B,"còn khi A=B")
 
Lần chỉnh sửa cuối:
Các bạn cho mình hỏi:mình có 3 cột A,B,C và D
Nếu A>B thì giá trị cột D=(C-A)/A ,còn nếu A<B hoặc A là số âm thì D=(C-B)/B.Mình mới học excel nên chưa rành.Chân thành cảm ơn.
Cho hỏi:
  1. Nếu A = B thì sao ? D bằng cái gì ?

  2. Nếu A>B, mà A=0 thì sao ? D=(C-A)/0 à ? Excel nó la toáng lên là =#DIV/0! thì sao ?
 
Các bạn cho mình hỏi:mình có 3 cột A,B,C và D
Nếu A>B thì giá trị cột D=(C-A)/A ,còn nếu A<B hoặc A là số âm thì D=(C-B)/B.Mình mới học excel nên chưa rành.Chân thành cảm ơn.

Giả định ngoài hai trường hợp bạn nêu ra, còn lại D=0, xem công thức sau thử:
PHP:
D1 = IF((A1>B1)*(A1<>0),(C1-A1)/A1,IF(((A1<B1)+(A1<0))*(B1<>0),(C1-B1)/B1,0))

Sau đó fill công thức xuống!
 
Các bạn cho mình hỏi:mình có 3 cột A,B,C và D
Nếu A>B thì giá trị cột D=(C-A)/A ,còn nếu A<B hoặc A là số âm thì D=(C-B)/B.Mình mới học excel nên chưa rành.Chân thành cảm ơn.

Cấu trúc hàm if như sau: Tại ô kết quả gõ :
=IF(điều kiên, giá trị của ô nếu đk là đúng, giá trị của ô nếu đk là sai)

Trong phần điều kiện có thể sử dụng các phép AND, OR để mô tả chính xác các điều kiện đặt ra. Chúc bạn thành công với các bài tập tương tự.
 
Đề bài bị thiếu điều kiện không chặt chẽ lắm
 
Không hẵn!

Đề bài bị thiếu điều kiện không chặt chẽ lắm
Mã:
 mình có 3 cột A,B,C và D
Nếu A>B thì giá trị cột D=(C-A)/A ,còn nếu A<B hoặc A là số âm thì D=(C-B)/B.
Dùng hàm IF() trong trường hợp này, ta chỉ nên biện luận thêm A<>0 hay B<>0 nữa là được;
(Vì lý do bạn í chưa biết nhiều về excel mà thôi)
Còn những trường hợp các bạn trên nêu, chỉ là tham khảo & có khi tác giả xử lý rồi, khỏi tốn thời gian chi mà! . . . .
 
Bạn kiểm tra lại nhé, mình hơi buồn ngủ nên không biết có nhầm đâu không,hehe. Mà nhắc bạn chút nghe, nội quy diễn đàn không cho phép dùng mấy từ như "cứu", "khẩn cấp". Bạn lưu ý lần sau nhé.
 

File đính kèm

Gửi bạn thêm một cách nữa, chèn thêm cột phụ vào, và khi đó thì công thức tính tiền nó ngắn ngủn à, mà lại chả có cái IF nào hết trơn...
 

File đính kèm

Gửi bạn thêm một cách nữa, chèn thêm cột phụ vào, và khi đó thì công thức tính tiền nó ngắn ngủn à, mà lại chả có cái IF nào hết trơn...
Nếu không thích cột phụ thì bạn BNTT có thể chuyển nó thành name ---> Cũng là 1 cách
 
Anh nói rõ hơn về cách dùng name được không ạ.
Xin giới thiệu với bạn một cách.

Căn cứ vào cái này:
  • Đối với điện sinh hoạt thì 100kw đầu tính theo đơn giá còn từ 101kw thì giá 800
  • Đối với điện dịch vụ thì 200kw đầu tính theo đơn giá còn từ 201kw thì tính giá 2000
  • Đối với điện công nghiệp thì 1000kw đầu tính theo đơn giá còn từ 1001kw thì tính giá 1500
Ta đặt 2 Name động bằng công thức: Dmuc để tính ra định mức sử dụng điện cho từng loại hộ, và GiaVuotDmuc để tính ra số tiền phải trả cho số điện vượt định mức.

Lưu ý rằng, trước khi gọi Insert Define Name để tạo các Name sau đây, bạn phải chắc chắn bạn đang chọn một ô nào đó ở hàng số 3.

  1. Dmuc: =IF(Sheet1!$C3="Sinh hoạt", 100, IF(Sheet1!$C3="Dịch vụ", 200, 1000))

    Nếu loại sử dụng là Sinh hoạt thì định mức là 100, nếu loại sử dụng là Dịch vụ thì định mức là 200, còn không (nghĩa là Công nghiệp) thì định mức là 1000


  2. GiaVuotDmuc: =IF(Sheet1!$C3="Sinh hoạt", 800, IF(Sheet1!$C3="Dịch vụ", 2000, 1500))

    Nếu loại sử dụng là Sinh hoạt thì giá tiền cho số điện vượt định mức là 800, nếu loại sử dụng là Dịch vụ thì giá tiền cho số điện vượt định mức là 2000, còn không (nghĩa là Công nghiệp) thì giá tiền cho số điện vượt định mức là 1500


Sau đó để tính số tiền phải trả cho số điện trong định mức, ta dùng biểu thức (tại ô F3):
MIN(D3, Dmuc)*E3

Lấy con số nhỏ hơn giữa số điện sử dụng thực tế và số điện định mức, nghĩa là nếu vượt định mức thì lấy định mức, còn nếu không vượt định mức thì lấy số điện thực tế sử dụng, nhân với giá 1Kw ở cột E

Để tính số tiền phải trả cho số điện vượt định mức, ta dùng biểu thức (tại ô F3):
MAX(D3-Dmuc, 0)*GiaVuotDmuc

Lấy con số lớn hơn giữa số điện sử dụng vượt định mức và số 0, nghĩa là nếu có vượt định mức (bằng số điện sử dụng thực tế trừ đi định mức) thì mới tính, còn không (số điện sử dụng thực tế trừ đi định mức bị âm) thì thôi, nhân với giá điện vượt định mức

Cộng hai biểu thức trên đây lại (số tiền trong định mức và số tiền vượt định mức), ta có công thức hoàn chỉnh cho ô F3:
=MIN(D3, Dmuc)*E3 + MAX(D3-Dmuc, 0)*GiaVuotDmuc
Copy công thức này xuống hết các ô trong cột Thành tiền (cột F).

Xong.​

Bài hướng dẫn này, tôi làm trên file gốc ban đầu của tác giả topic này (Vumanhkien). Chưa sửa đổi gì hết, không có cột phụ nào.
 
Lần chỉnh sửa cuối:
Anh nói rõ hơn về cách dùng name được không ạ.
Thì lấy công thức ở cột phụ cho vào name... ở những cột khác, công thức nào có cộng trừ nhân chia với cột phụ thì bây giờ tính toán nó với name
Xem file (dựa vào file của BNTT)
Bạn bấm Ctrl + F3 vào xem name nha!
 

File đính kèm

À em hiểu rồi, như vậy 2 cái Name cũng là 2 hàm đóng vai trò như 2 cột phụ mà anh thêm vào.
 
À em hiểu rồi, như vậy 2 cái Name cũng là 2 hàm đóng vai trò như 2 cột phụ mà anh thêm vào.
Đúng vậy, bạn à. Nếu dùng Name thay cho cột phụ, thì thao tác sẽ nhanh hơn nhiều, vì chỉ cần mỗi một công thức, chứ còn nếu chèn cột phụ thì phải làm công thức cho nguyên cả cái cột phụ đó.

Tuy nhiên, việc đặt Name động như vầy, không phải đơn giản như đặt một Name bình thường. Bạn nên xem kỹ lại bài của tôi, có một cái lưu ý được tô đậm, nếu không theo điều đó thì Name của bạn sẽ trật lất! Thêm nữa, bạn để ý cách tôi sử dụng địa chỉ tuyệt đối cho cột ($C3).

Thân.
 
Em không hiểu lập luận của công thức này suy nghỉ mãi mà không ra +-+-+-++-+-+-++-+-+-+
Đúng là đập ba búa củng ngu **~**
=MIN(D3;DM)*E3+MAX(D3-DM;0)*GVDM
Chử DM kia thì ok biết ,hiểu (name thì hiểu )
còn cái này :MIN(D3;DM) ?????
Này nữa :
MAX(D3-DM;0)????????

Em có hàm Min & Max đây luôn mà củng không hiểu ?
Các anh giải thích hộ em !**~**
Thanks!

 
Bác muốn hiểu thì dùng chức năng Evaluate Formula của Excel rồi xem cho kỹ mới hiểu được.
Chứ trình độc đọc hàm chưa cao thì làm sao mà hiểu được chứ!
Bác click chuột chọn ô H3 -> vào Tools -> Formula Auditing -> Evaluate Formula -> rồi click chọn Evaluate để xem từng công đoạn sẽ hiểu dần thôi.
Thân.
 
Em không hiểu lập luận của công thức này suy nghỉ mãi mà không ra +-+-+-++-+-+-++-+-+-+
Đúng là đập ba búa củng ngu **~**
=MIN(D3;DM)*E3+MAX(D3-DM;0)*GVDM
Chử DM kia thì ok biết ,hiểu (name thì hiểu )
còn cái này :MIN(D3;DM) ?????
Này nữa :
MAX(D3-DM;0)????????

Em có hàm Min & Max đây luôn mà củng không hiểu ?
Các anh giải thích hộ em !**~**
Thanks!

Trời! Ở bài số #6 trên kia, tôi đã giải thích cặn kẽ hàm MIN và hàm MAX rồi mà, Volga có coi không vậy ? DM và GVMD (của anh Ndu) thì cũng tương tự với Dmuc và GiaVuotDmuc của tôi thôi... Xem lại đi nha.
 
làm gì khi IF chỉ có 7 vòng lặp mà bài toán của tớ lại có trên 30 đối số

Các anh chị nào có thể giúp dùm làm thế nào để có thể giải quyết dc bài toán trên không?
 
Có nhiều cách lắm. Ví dụ, kẻ bảng phụ rồi dùng VLOOKUP... Hoặc chẻ nhỏ các điều kiện ra, rồi dùng toán tử nối các hàm IF lại với nhau... Nhưng nói cho cùng thì phải có dữ liệu để thử. Mà chẳng lẽ giúp bạn, phải giúp luôn chuyện tạo ra một dữ liệu mẫu với 30 đối số hay sao ?
 
Lần chỉnh sửa cuối:
Các anh chị nào có thể giúp dùm làm thế nào để có thể giải quyết dc bài toán trên không?
100 hay 200 đối số cũng có cách giải quyết! Tuy nhiên cụ thể là (những) đối số và bài toán yêu cầu của bạn là gì!? cần phải cụ thể thì mới có cách giải tối ưu được.

Một trong những cách thay thế hàm IF là các hàm tìm kiếm (Vlookup, Index, Match, v.v...) và SUMPRODUCT.

Lấy một ví dụ đơn giản, như đường link của phuong1604, tôi ví dụ 1 cách dùng Match
VD đơn giản nhất là:
Tại B1 :Nếu A1="A", B1=1, A1="B", B1=2, A1="C", B1=3, A1="D", B1=4, A1="E", B1=5, A1="F", B1=6, A1="G", B1=7, A1="H", B1=8, A1="I", B1=9, A1="J", B1=10, A1="K", B1=11, A1="L", B1=12, A1="M", B1=13, ....
Nếu dùng IF thì bó tay: Hãy dùng Match:
PHP:
=MATCH(A1,{"A","B","C","D","E","F","G","H","I","J","K","L","M"},0)
Bạn thấy bài toán bây giờ nó đơn giản hơn chưa?
 
Lần chỉnh sửa cuối:
vấn đề khi dùng hàm if

mọi người xem giúp e, ko bik vì sao khi e dùng hàm if ở cột ƯU TIÊN như thế này thì nó lại báo kết quả sai.
 

File đính kèm

Bạn sửa lại công thức như sau:
IF(RIGHT(B4,1)="1",2,IF(RIGHT(B4,1)="2",1.5,1))

Vì hàm right trả về giá trị là text lên phải để trong ngoặc
 
Bạn phải viết IF(RIGHT(B3;1)="1";2;IF(RIGHT(B3;1)="2";1,5;1))
 
mọi người xem giúp e, ko bik vì sao khi e dùng hàm if ở cột ƯU TIÊN như thế này thì nó lại báo kết quả sai.
Cái này không cần If đâu bạn,
Ô M3 gõ công thức:
PHP:
M3 = CHOOSE(--RIGHT(B3),2,1.5,1)
Sau đó fill công thức xuống dưới là xong.
 

File đính kèm

Lần chỉnh sửa cuối:
vấn đề khi dùng hàm if

Ở cột B là cột dạng text, nên bạn phải gán cho nó thành giá trị như sau
=IF(VALUE(RIGHT(B3,1))=1,1,IF(VALUE(RIGHT(B3,1))=2,1.5,1))
 

File đính kèm

Lần chỉnh sửa cuối:
Nếu chỉ có 1, 2, 3 thôi thì ngắn nhất là viết như vầy:
=2.5-(RIGHT(B3))*0.5
Thân.
 
Ô M3 gõ công thức:
PHP:
M3 = CHOOSE(--RIGHT(B3),2,1.5,1)
Sau đó fill công thức xuống dưới là xong.[/quote]

Công thức này trông lạ thế, sao phía trước hàm right lại phải có hai dấu -- vậy
 
Cái này không cần If đâu bạn,
Ô M3 gõ công thức:
PHP:
M3 = CHOOSE(--RIGHT(B3),2,1.5,1)
Sau đó fill công thức xuống dưới là xong.

Các bạn xem kỷ nhe .Trong File của anh ca_dafi có công thức ở cột số thứ tự rất hay đó !
Mình mới biết lần đầu tiên nhe !
Thanks
 
Sau khi thí nghiệm thì thấy có thể viết được như vầy:
=CHOOSE(RIGHT(B5),2,1.5,1)

Còn hai dấu gạch kia dùng để đổi text về dạng số.
Bạn cũng có thể viết:
=CHOOSE(RIGHT(B5)*1,2,1.5,1)

Bạn cũng có thể thử với công thức tạo định dạng tổng quát này:
=TEXT(ROW()-2,REPT("0",LEN(COUNTA(C:C))))
Thân.
 
Lần chỉnh sửa cuối:
mọi người xem giúp e, ko bik vì sao khi e dùng hàm if ở cột ƯU TIÊN như thế này thì nó lại báo kết quả sai.
Bạn nhập sai công thức thôi, lý ra phải là:
M3 =IF(RIGHT(B3,1)="1",2,IF(RIGHT(B3,1)="2",1.5,1))
(có dấu ")
Tuy nhiên công thức này có thể cải tiến lại thành:
M3 =MAX(1,2.5-RIGHT(B3)*0.5)
Khỏi IF luôn
 
có thể giải thích cho e cái hàm choose ở trên ko? e đọc lý thuyết mà ko hiểu lắm. cái --right(b3) đó nó đâu có chỉ là thứ tự bao nhiêu đâu? với lại nếu như có thêm 1 SBD chẳng hạn như A111-4 thì sao? Hoặc là có nhiều số khác nữa thì sao? Hoặc là không có thứ tự 3 mà chỉ có 4?
 
Lần chỉnh sửa cuối:
có thể giải thích cho e cái hàm choose ở trên ko? e đọc lý thuyết mà ko hiểu lắm. cái --right(b3) đó nó đâu có chỉ là thứ tự bao nhiêu đâu? với lại nếu như có thêm 1 SBD chẳng hạn như A111-4 thì sao? Hoặc là có nhiều số khác nữa thì sao? Hoặc là không có thứ tự 3 mà chỉ có 4?

Bạn vào đây xem lại hàm choose
Vào đây xem ý nghĩa của hai dấu --
Sau đó tách từng phần công thức ra bạn sẽ hiểu tách hàm Right ra coi nó có kết quả là gì ?
Thân
 
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

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

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

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á)
 
Theo mình hiểu thì bạn dùng công thức này (nếu chỉ rành về IF):
F10=IF(B10<20000;0;IF(B10<40000;1;IF(B10<70000;3;IF(B10<150000;7;IF(B10<300000;15;27)))))*$D$10+B10
 
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)

Theo công thức này thì tổng điểm của em ko như thế, điểm của em lần lượt là:
1 3 9 20 42 58
Công thức của cột tổng điểm = INT(B10/D10)+E10.

Nhưng nếu trong trường hợp số tiền >300.000 thì công thức lại khác

Em cứ luẩn quẩn ở chỗ này mãi.
 
F10 = D10*CHOOSE(((B10>0)+(B10>20000)+(B10>40000)+(B10>70000)+(B10>151000)+(B10>300000)),0,1,3,7,15,27)

Theo công thức này thì tổng điểm của em ko như thế, điểm của em lần lượt là:
1 3 9 20 42 58
Công thức của cột tổng điểm = INT(B10/D10)+E10.

Nhưng nếu trong trường hợp số tiền >300.000 thì công thức lại khác

Em cứ luẩn quẩn ở chỗ này mãi.

Bạn sửa công thức lại một chút
=INT(B10/D10)+CHOOSE(((B10>0)+(B10>20000)+(B10>40000)+(B10>70000)+(B10>151000)+(B10>300000)),0,1,3,7,15,27)
 
Theo mình hiểu thì bạn dùng công thức này (nếu chỉ rành về IF):
F10=IF(B10<20000;0;IF(B10<40000;1;IF(B10<70000;3;IF(B10<150000;7;IF(B10<300000;15;27)))))*$D$10+B10

Không phải rồi bác ơi, các giá trị: 1, 3, 7, 15 - là các giá trị điểm tặng thêm.

Tổng điểm vẫn phải bằng cột số tiền chia cho cột (giá trị tiền = 1 điểm) + phần tặng thêm tương ứng.

Thôi em viết lại đầu bài thế này nhé:

Khi khách hàng tiêu tiền, trên mỗi giá trị tiền khách hàng tiêu đều được tính điểm theo công thức:

Điểm = số tiền tiêu/A (A: giá trị tiền tương ứng với 1 điểm)

Tuy nhiên, nếu KH tiêu nhiều hơn thì được nhận thêm điểm khuyến khích. Nếu tiêu từ 20.000-40.000 được tặng thêm 1 điểm
40.000-70000 được tặng thêm 3 điểm
---
---
Trên 300.000 được tặng thêm 27 điểm.


Vậy nếu như KH tiêu X đồng, thì tổng số điểm KH được nhận sẽ là bao nhiêu?

Điểm = X/A+ điểm tặng tương ứng với giá trị của X trong các khung quy định.

Phù, có vẻ dễ hiểu hơn rồi ạ.
 
Bạn sửa công thức lại một chút


Đích thị là nó rồi đấy ạ.

Đây gọi tên công thức là gì thế? Em sẽ tìm hiểu sâu hơn về CT này.

Nhân tiện, cảm ơn bác về bài trả lời hôm qua nữa, em dựa vào đó cũng tính đúng ra cái mình cần rồi.

Thanks all,
 
Hè hè, em mừng quá nên vội vàng không check, trường hợp KH của em tiêu 500.000 thì công thức của bác lại không đúng. @$@!^%+-+-+-++-+-+-++-+-+-++-+-+-++-+-+-+
Thế nếu số tiền là 500.000 thì kết quả nào mới đúng, bạn thử cho kết quả đó xem sao?
 
Thế nếu số tiền là 500.000 thì kết quả nào mới đúng, bạn thử cho kết quả đó xem sao?

Nếu số tiền là 500.000 thì tổng điểm sẽ là = INT(500000/11000)+27 = 72 điểm.

Đấy, ý em là công thức đó đúng, khi em nhập bất cứ số tiền tiêu nào vào. Số tiền là ngẫu nhiên.
 
Nếu số tiền là 500.000 thì tổng điểm sẽ là = INT(500000/11000)+27 = 72 điểm.

Đấy, ý em là công thức đó đúng, khi em nhập bất cứ số tiền tiêu nào vào. Số tiền là ngẫu nhiên.

vậy công thức của mình nó cho ra giá trị bao nhiêu vậy bạn? Chẳng lẽ không phải là 72 sao?
=INT(B10/D10)+CHOOSE(((B10>0)+(B10>20000)+(B10>40000)+(B10> 70000)+(B10>150000)+(B10>300000)),0,1,3,7,15,27)
 
Lần chỉnh sửa cuối:
Không nó báo cái lỗi thế này này:#DIV/0!

Mà em lại ko biết lỗi này là gì, hic hic.
#DIV/0!
 
Không nó báo cái lỗi thế này này:#DIV/0!

Mà em lại ko biết lỗi này là gì, hic hic.
#DIV/0!
Lỗi chia cho số 0 đó bạn, xem lại cột D, chỗ có dòng có số tiền 500.000, bạn đã gõ số tiền 11.000 tương ứng ở cột D chưa!?

Bác sửa lại chỗ này tí:
Mã:
...(B10>15[COLOR=Red]1[/COLOR]000)....
Không phải vậy đâu cop_kh ơi! Ý snow82 khác mà!
 
Lần chỉnh sửa cuối:
Lần chỉnh sửa cuối:
Thui thui, em chỉ sợ thắc mắc ngô nghê các bác ghét em - lần sau thấy nick snow82 lại lờ em đi thì chit. Em sẽ học hỏi dài dài nữa.

Các bác đừng giận em nhá, chỉ tại em không biết nên thế thôi.

@ Nốt lần cuối: Ở công thức của bác ca_dafi, nếu nhập số tiền bất kỳ ở cột tiêu tiền, tương ứng với dòng điều kiện lớn hơn 300.000 thì luôn cho ra số đúng, nhưng chỉ cần chuyển xuống dòng khác, kéo công thức từ cột trên xuống thì lại báo lỗi như trên.
 
@ Nốt lần cuối: Ở công thức của bác ca_dafi, nếu nhập số tiền bất kỳ ở cột tiêu tiền, tương ứng với dòng điều kiện lớn hơn 300.000 thì luôn cho ra số đúng, nhưng chỉ cần chuyển xuống dòng khác, kéo công thức từ cột trên xuống thì lại báo lỗi như trên.
Chắc phải kêu trời một cái mới được +-+-+-+
Bạn copy công thức tại cột F xuống mà cột D bạn có kéo xuống luôn không vậy!?

Còn không thì gán giá trị 11.000 này vào công thức luôn, khỏi cần cột D:
=INT(B10/11000)+CHOOSE(((B10>0)+(B10>20000)+(B10>40000)+(B10> 70000)+(B10>150000)+(B10>300000)),0,1,3,7,15,27)

Bây giờ kéo thoải mái xem thử nó có báo lỗi nữa không?
 
Thôi rồi, em biết lỗi của em ở đâu rồi. Cái tội em lanh chanh quá
Em viết Bold lên để xin lỗi, thành thật xin lỗi các bác. Công thức của bác Ca_dafi là đúng rồi ạ.

Chết mất thôi, cái tội này.

Cảm ơn các bác nhiệt tình, chỉ biết cảm ơn thôi ạ.
 
Tôi thì tôi thích làm kiểu tạo một cái bảng để tra hơn.
Ví dụ, tôi trình bày lại cái yêu cầu của bạn như thế này:
000-2279.jpg
Bạn thấy công thức để tính tổng điểm không? Nó ngắn ngủn à, sử dụng VLOOKUP.

Tôi không chê công thức dùng CHOOSE, nhưng cái dở của dùng 1 công thức đó mà thôi, là ở chỗ lỡ bạn muốn thay đổi mức tiền thưởng, hoặc bạn thay đổi số điểm thưởng thêm tương ứng với từng mức tiền thưởng, thì phải mở công thức đó ra rồi sửa vào trong đó... mệt lắm.

Còn nếu dùng một bảng phụ như tôi, thì bạn tha hồ mà thay đổi nhé. Đổi mức tiền thưởng chẳng hạn, ví dụ bạn muốn từ 25000 trở lên thì mới tính điểm thưởng, hoặc bạn muốn từ 20000 trở lên thì thưởng cho 2 điểm chẳng hạn (thay vì 1), v.v... Bạn cứ việc đổi trong bảng phụ, cột A là từng mức tiền được thưởng, cột B là số điểm tương ứng với từng mức tiền đó. Ngay khi bạn thay đổi thì tất cả các kết quả bên cột Tổng điểm thưởng đã được cập nhật ngay tức khắc...

Chỉ cần lưu ý rằng, ví dụ ở ô A4 có số 20000, thì có nghĩa là >=20000 thì thưởng cho 1 điểm (nhớ là lớn hơn hoặc bằng nhé!).

------------------
P/S: Sẵn tôi nhắc bạn luôn, bạn không nên mở thêm topic mới làm gì, nếu như cái bạn viết có liên quan đến một topic đang có sẵn (mà lại do chính bạn tạo ra)... Tôi đã gộp 2 topic này thành một.
 
Lần chỉnh sửa cuối:
Hiện tại tôi cần lập bảng Excel tính tiền thưởng và phạt cho NV bán hàng trên cơ sở doanh số thực hiện (A) và doanh số khoán hàng tháng (B) và tỷ lệ hoàn thành là X%
Anh em giúp tôi tạo hàm If với điều kiện sau với
- Nếu đạt doanh số thực hiện lớn hơn 20% doanh số khoán, thưởng 2tr
- Nếu đạt 20% > Doanh số thực hiện> = 10%, thưởng 1,5 tr
- Nếu đạt 10% > Doanh số thực hiện> 0%, thưởng 1 tr
- Nếu đạt 0% >= Doanh số thực hiện > -10%, Phat 1 tr
- Nếu doanh số thực hiện< -10%, Phat 2 tr
Cám ơn anh em nhiều
 
Status
Không mở trả lời sau này.

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

Back
Top Bottom