Mừng Sinh Nhật GPE 11: sáng 25/6 Hà Nội; 1/7 Huế/Đà Nẵng; Trưa 2/7 TPHCM

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

Thảo luận trong 'Hàm và công thức Excel' bắt đầu bởi handung107, 7 Tháng sáu 2006.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. handung107

    handung107 Administrator Staff Member

    Chúng ta ai cũng biết hàm IF trong Excel chỉ thể hiện được 7 vòng lặp. Vậy trong những trường hợp cần thiết khác, chúng ta sẽ làm gì ?

    Td đơ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....

    Tôi xin giới thiệu với các bạn vài cách thức mà tôi sưu tầm được :

    1/ Đặt tên cho từng đoạn công thức. Td : MotDenSau, MotDenMuoiBa

    2/ Sử dụng hàm VLOOKUP, tạo một mảng gồm 2 cột, cột thứ nhất gồm những giá trị A, B, C..., cột thứ 2 gồm những giá trị 1, 2, 3...
    B1=VLOOKUP(A1,DS,2,0)

    3/ Sử dụng VBA

    4/ Sử dụng hàm CONCATENATE() :

    B1=CONCATENATE(IF(A1="A",1,""),IF(A1="B",2,""),IF( A1="C",3,""),....,IF(A1="M",13,"")). Hàm này sử dụng được 30 đối số

    5/ Sử dụng phép kết hợp :

    - Nếu kiểu dữ liệu là Text thì :
    B1=IF(A1="A",1,"")&IF(A1="B",2,"")&IF(A1="C",3,"") &....&IF(A1="M",13,""). Phương pháp này giới hạn 30 "&"
    -Nếu kiểu dữ liệu là Number thì :
    B1=IF(A1="A",1,0)+IF(A1="B",2,0)+IF(A1="C",3,0)+.. ..+IF(A1="M",13,0).

    6/Sử dụng Boolean Multiplication :

    B1=(A1="A")*1+(A1="B")*2+(A1="C")*3+....+(A1="M")* 13
     
    Lần chỉnh sửa cuối: 7 Tháng sáu 2006
  2. daitathan

    daitathan Thành viên mới

    Hàm IF

    Các bạn ơi hướng dẫn mình với mình có cái này nhưng không giải quyết được :
    Hàm IF trong Excel chỉ cho phép 7 hàm lồng vào nhau nhưng mình muốn như sau :
    Nếu a1<0.5 thì là không
    Nếu a2<1.5 thì là một
    Nếu a2<2.5 thì là hai
    Nếu a2<3.5 thì là ba
    Nếu a2<4.5 thì là bốn
    Nếu a2<5.5 thì là năm
    Nếu a2<6.5 thì là sáu
    Nếu a2<7.5 thì là bảy
    Nếu a2<8.5 thì là tám
    Nếu a2<9.5 thì là chín
    Còn lại là 10
    Các bạn làm giúp mình với. Mình bí quá

    Mong các bạn giúp mình với nhé
    Cảm ơn nhiều
     
  3. SA_DQ

    SA_DQ Thành viên danh dự

  4. Mr Okebab

    Mr Okebab Ngon Ngất Ngây

    Bạn thử nhé :
    =CHOOSE(MIN(ROUNDUP(A2+0,5;0);11);0;1;2;3;4;5;6;7;8;9;10)
    Thân!
     
  5. locthokhongvui

    locthokhongvui Thành viên mới

    Xin giúp về hàm IF

    Công ty tôi có 15nv bán hàng. Cuối tháng xếp hạng nếu bán nhiều nhất thì được 15 điểm thi đua, bán nhiều nhì thì 14 điểm... người bán ít nhất được 1 điểm. Cuối năm cộng điểm ai cao nhất xếp loại A,rồi đếnB,C......
    Tối đã dùng hàm IF và Rank, nhưng vì hàm IF chỉ cho tối đa 7 lần If nên không biết làm thế nào? Nhờ các Bác cao thủ chỉ giáo giúp (tôi cũng là dân mới học excel). Xin cám ơn nhiều.-\\/.
     
  6. Peter_pan

    Peter_pan đang tìm vòng tay ấm...

    Bạn tham khảo các bài sau nhé:

    - Bạn làm gì khi hàm If chỉ có 7 vòng lặp ?

    - Hàm SUMPRODUCT và cách tính giá xuất theo phương pháp bình quân gia quyền liên hòan

    Hiện nay, hầu hết các box của diễn đàn đều có mục mục lục (index) để tìm bài cho nhanh các bạn có thể vào đó (giống như khi đọc một quyển sách mình thường đọc mục mục lục trước để xem tổng quát vậy!). Ngoài ra chị handung107 cũng có một mục Index tổng hợp các bài viết hay của diễn đàn tại đây mà rất ít bạn chú ý đến!.
     
  7. SA_DQ

    SA_DQ Thành viên danh dự

    /)/goài ra, bạn xài hàm:
    =CHOOSE(nUM,Num1,Num2. . . . . .Num30)
    (hãy tìm trong excel hay trên diễn đàn!)
    Nếu trên 30 đối số bạn xài hàm:
    =UDFSWITCH([C1],[n1],. . . . . . . .[N100])
    Hàm sau không câu nệ chuỗi hay số! (hãy tìm trên diễn đàn với từ khóa SWITCH!)
     
    Lần chỉnh sửa cuối: 29 Tháng ba 2007
    TRIỆU QUẢNG HÀ thích bài này.
  8. BumBum

    BumBum Thành viên mới

    Ban có thể ghi vài dòng của bảng tính hoặc có thể gởi file cho mình xem thử, vì có thể không cần dùng đến lệnh IF cũng có thể giải quyết được. Mail: trucle2002@yahoo.com
     
  9. Mr Okebab

    Mr Okebab Ngon Ngất Ngây

    Bạn thử nhé :
    VD : Vùng dữ liệu : A1:A15

    B1= choose(rank(A1;$A$1:$A$15;1);1;2;3;4;5;6;7;8;9;10;11;12;13;14;15)

    Thân!
     
  10. Đào Việt Cường

    Đào Việt Cường Cu Tí sành điệu

    Dear all,
    --------
    Đối với các bài toán có nhiều điều kiện, tốt nhất chúng ta lập một bảng danh mục, mỗi một giá trị gắn với một ID của bảng rồi sử dụng VLOOKUP để tìm theo ID lấy ra giá trị tương ứng.
    Bằng cách này chúng ta cũng có thể lấy ra giá trị của một khoảng với tham số range_lookup của hàm là 1.
     
  11. daoconsetre

    daoconsetre Thành viên mới

    tÔI có bài toán sau, mong các cao huynh chỉ giúp, nếu in từ 1 đến 99 cái nhãn, một size thì cộng thêm 15 cái, trên 2 sixe thì cộng thêm 10 cái ; tương tự in từ 100 đến 300 cái , nếu 1 size thì cộng thêm 20 cái, trên 1 size thì cộng 15 cái ; in từ 300 đến 700 cái nếu 1 size thì cộng 30 cái trên 1 size cộng thêm 25 cái, nếu trên 1000 cái thì cộng thêm 3% cho các size, mong các cao huynh hướng dẫn
     
  12. anhtuan1066

    anhtuan1066 Thành viên gạo cội

    Bạn ơi... Tôi ko biết bài toán này có cần dùng đến CHOOSE ko nhỉ? Tôi thấy chỉ cần: "=MIN(ROUNDUP(A2+0.5,0),11)-1" là dc rồi mà...
    Mến...
    ANH TUẤN
     
  13. Mr Okebab

    Mr Okebab Ngon Ngất Ngây

    Đúng đấy, nhiều khi nghĩ to tát quá đâm ra luẩn quẩn. Thanks
     
  14. anhtuan1066

    anhtuan1066 Thành viên gạo cội

    Cũng may mắn là điều kiện mà bạn daitathan đưa ra tuân theo quy luật nhất định (Số sau hơn số trước 1 đơn vị)... Nếu gặp trường hợp điều kiên tương đối lộn xộn thì phải làm thế nào nhỉ? Chẳng hạn như: Dưới 5 điểm xếp loại "Kém", từ 5 đến 6.4 xếp loại TB, từ 6.5 đến 7.9 xếp loại "Khá", và từ 8 trở lên xếp loại "Giõi"...
    Ý tôi muốn hỏi là nếu sử sụng cách của bạn thì giãi quyết bài toán này thế nào?
     
  15. voda

    voda Thành viên danh dự

    Gặp các điều kiện tương đối lộn xộn và nhiều, thì có thể giải quyết bằng cách sau đây:
    -Ta nhập hàm IF lồng vào nhau bình thường ( EXCEL cho phép đến 8 điều kiện).
    -Điều kiện thứ 9 ta tham chiếu đến 1 ô khác. Ở ô này ta tiếp tục nhập tiếp được 8 điều kiện nữa. Và ta lại tham chiếu đến 1 ô nữa...Cứ như thế dù có bao nhiêu điều kiện ta cũng giải quyết được.
     
  16. anhtuan1066

    anhtuan1066 Thành viên gạo cội

    Thật ra ý tôi ko phải vậy... Hàm IF tất nhiên là cái mình nghĩ đầu tiên rồi, điều đó khỏi cần bàn tới... Tôi muốn hỏi là nếu dùng cách tương tự như bạn Mr Okebab thì có làm dc ko?
    Mến
    ANH TUẤN
     
  17. thanhtri

    thanhtri Thành viên hoạt động

    Hàm IF sao lại ra 3 kết quả?

    Hàm IF thì ai mới học Excel cũng đều biết sử dụng. Thông thường hàm này sẽ cho ra 2 kết quả tùy theo điều kiện đúng hay sai... IF(Logical_Test, [Value_if_true], [Value_If_false])
    Thế nhưng vừa rồi em lại phát hiện ra 1 hiện tượng hơi kỳ lạ. Nó cho ra 3 kết quả khác nhau. Giã sử A1 có giá trị là 8, B1 có giá trị là 5. C1 em đặt công thức như sau:
    C1= IF(A1=8,B1=5,-1)
    Bây giờ lần lượt thay vào A1 và B1 những giá trị khác nhau thì C1 cũng sẽ lần lượt cho ra 3 kết quả là: TRUE, FALSE và -1
    Em cũng hiểu hiểu là tại sao lại như vậy. Nhưng em đang nghĩ đến 1 chuyện khác, đó là vận dụng nó vào việc gì đây?
    Các anh có thể cho em ý kiến dc ko? Hoặc các anh có thể nghĩ ra dc 1 bài tập nào đó có thể ứng dụng hàm IF 3 kết quả này ko?
    Rất mong nhận dc ý kiến của tất cả mọi người, nhất là những ai có sáng kiến gì đó đễ ứng dụng dc hàm IF kiểu này
    Miss TT
     
  18. adam_tran

    adam_tran Thành viên danh dự

    Không có gì đặc biệt ở đây đâu bạn ạ. Ở hàm trên bạn đặt tham số thứ 2 [Value if True] là 1 biểu thức (B1=5 là 1 biểu thức, nó trả về kết quả là TRUE nếu B1 đúng bằng 5 và FALSE nếu B1 khác 5). Do đó khi thay đổi cả A1 và B1 thì nó sẽ cho ra 3 kết quả trong đó có TRUE và FALSE, là kết quả của biểu thức B1=5

    Thân.
     
  19. Đào Việt Cường

    Đào Việt Cường Cu Tí sành điệu

    Logical_test của hàm IF

    Dear thanhtri,
    -------------
    Câu hỏi của bạn rất thú vị!
    Tuy nhiên, đúng là suy luận của bạn làm thay đổi hẳn bản chất của hàm IF. Kết quả trả về của hàm này chỉ phụ thuộc vào Logical_Test. Việc thay đổi hai tham số còn lại đương nhiên làm thay đổi kết quả. Nói cách khác chúng ta đang sửa kết quả trả về của hàm. Cũng giống như là bạn sửa =SUM($A$1:$A$3) thành =SUM($A$1:$A$2) vậy!
    Cũng phải nói thêm rằng, kết quả của hàm IF trả về một trong hai đối số: Value_if_true hoặc [Value_If_false]. Cặp dấu [] biểu diễn tham số trong ngoặc là tuỳ ý (phải có một hoặc cả hai tham số). Kết quả này, như bạn nói, nó tuỳ thuộc tham số điều kiện của hàm là TRUE hay FALSE. Vì vậy, nếu có trường hợp kết quả trả về không phải thuộc một trong đối số trên chỉ có thể là do điều kiện không phải là "Logical" nữa (tức không đúng cũng không sai).
    Vậy những trường hợp "ỡm ờ" đó là gì?
    Chúng ta đều biết rằng đối số Logical_test trong hàm IF là một biểu thức luận lý (so sánh). Biểu thức này trả về một trong hai giá trị: hoặc Đúng (TRUE) hoặc Sai (FALSE). Nhưng chắc ít ai biết rằng, trong Execel, Logical_test không nhất thiết cứ phải là TRUE or FALSE. Bản chất, giá trị lưu trong đối số này là kiểu số (Numberic) và số 0 đại diện cho giá trị FALSE, các số khác 0 đại diện cho giá trị TRUE. Ví dụ:
    =IF(0;"Đúng";"Sai") >> Kết quả = "Sai"
    =IF(a;"Đúng";"Sai") >> Kết quả = "Đúng" - trong đó a là một số bất kỳ <> 0
    Như vậy có thể trả lời được cho câu hỏi của bạn rồi:
    Để có được kết quả thứ ba, không rơi vào một trong hai kết quả nêu trên (phải nói như vậy mới chính xác) chúng ta chỉ việc đi tìm giá trị của Logical_test sao cho:
    AND(Logical_test=0;Logical_test<>0)=TRUE
    Một con số vừa bằng 0, vừa khác 0.
    Bài tập này dường như không có lời giải?
     
    Lần chỉnh sửa cuối: 25 Tháng năm 2007
  20. dvu58

    dvu58 Thành viên thường trực

    Hàm IF bị sao vậy cà?

    Tôi có 1 bảng tính: HamIFbisaovay (post kèm theo).

    Ở các cột có các hàm sau:
    R = IF(OR(ISBLANK(K3); K3=" "; K3=0); " "; IF(K3>=1; IF(Q3<=14,5; K3+Q3; " "); " "))
    S = IF(Q3>=14,5; "Đ"; IF(R3=" "; " "; IF(R3>=14,5; "đ-thêm"; " ")))
    T = IF(Q3>=14,5; "Đ"; IF(R3>=14,5; "đ-thêm"; " "))

    Phát biểu chung cho cột S (không có vấn đề gì) và cột T (có vấn đề) như sau:
    "Nếu Tổng số điểm (Q3) lớn hơn hoặc bằng 14,5 thì "Đậu"; ngược lại nếu (Q3<14,5) thì nếu R3 (Tổng số điểm có cộng thêm điểm Ưu tiên)>=14,5 thì "đậu thêm"; ngược lại thì "trống" ".
    Vậy mà, kết quả là hàng loạt loại "đậu thêm" thòi ra!? Lạ quá.
    Các sư phụ giải thích dùm với, tôi bị sai chỗ nào?
    Cảm ơn nhiều nhé!
     

    Các file đính kèm:

Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này