Giúp Mình Giải Vấn đề Hóc Búa Này !

Thảo luận trong 'Ứng dụng Excel' bắt đầu bởi buidinh, 6 Tháng hai 2007.

1,885 lượt xem

  1. buidinh

    buidinh Thành viên sơ cấp

    Bài viết:
    6
    Đã được thích:
    0
    Nơi ở:
    Hp
    Mình giải 1 fie Excel gặp một vấn đề sau :
    Có 2 công thức sau :

    Mình muốn thực hiện nó trên 1 dòng, và chỉ muốn nó thực hiện 1 trong 2 phép tính này khi 1 trong 2 phép tính này đúng. (kô bao giờ 2 phép tính này cùng đúng)
    Có cách nào không các bác !
    _________________________________________________

    Vấn đề thứ 2 :

    Khi phép tính được giải, với 1 số "ô trống" kô có giá trị (kô đúng) nó trả về giá trị N/A.
    Có cách nào cho nó không trả về N/A mà trả về 1 giá trị bất kì nào đó như "-" hoặc là để trống nếu không thực hiện được không?

    Thank ALL
     
    #1
  2. adam_tran

    adam_tran Steel Partner

    Bài viết:
    1,373
    Đã được thích:
    32
    Nơi ở:
    Goooogle
    Không khó lắm đâu! Có điều công thức sẽ rất dài với hàm CONCATENATE, bạn có thể đơn giản thay thế hàm trên bằng toán tử & để nối 2 chuỗi.
    Đầu tiên bạn kiểm tra các giá trị:
    CONCATENATE(MID($A$1,5,2),G21) (XXX)

    CONCATENATE(MID($A$1,8,2),G21) (YYY)
    có tồn tại trong cột J hay không. Theo bạn nói, không bao giờ 2 phép tính này cùng đúng! Tôi giả sử nếu "cùng đúng" thì ưu tiên cho chuổi 2 ký tự thứ 5.
    Bạn dùng làm ISNA để kiểm tra, để đơn giản thì giá trị đầu tiên của cột C (Ô C1) ta gán giá trị "-" hay giá trị mặc định mà bạn cần trả về nếu tìm trong cột J không thấy cả (XXX) và (YYY). Đương nhiên, giá trị tương ứng ở cột J (ô J1) ta cũng gán 1 giá trị nào đó hoặc tốt nhất để trống.
    Biểu thức kiểm tra:
    IF(ISNA(MATCH(XXX,FL!$J:$J,0),IF(ISNA(MATCH(YYY,FL!$J:$J,0),1,MATCH(YYY,FL!$J:$J,0)),(MATCH(XXX,FL!$J:$J,0)) (ZZZ)
    Kết quả của biểu thức này hoặc là vị trí của 1 trong 2 biến số XXX hoặc YYY trong cột J, hoặc là giá trị 1 nếu cả 2 giá trị XXX và YYY đề không tìm được trong cột J.
    Bước cuối cùng là hàm INDEX: =INDEX(FL!$C:$C,ZZZ,0)
    Mẹo: Hàm sẽ rất dài, mặc dù tôi đã rút gọn bằng các giá trị XXX và YYY. Bạn hãy đặt biểu thức XXX và YYY vào 2 Name tương ứng sao cho tham chiếu G21 tương ứng với ô bạn nhập công thức (Xem bài Sức mạnh của Name) thì công thức của bạn sẽ trở nên ngắn gọn đúng như ZZZ!
    Note: Công thức tôi chỉ tự lập, chưa test thử!
     
    #2
  3. buidinh

    buidinh Thành viên sơ cấp

    Bài viết:
    6
    Đã được thích:
    0
    Nơi ở:
    Hp
    Mình giải quyết được vấn đề nếu giá trị đúng thì đưa ra giá trị đó, còn nếu sai thì nó đưa ra giá trị " - "

    Tuy nhiên không thể add thêm điều kiện
    Hix, nó báo quá dài hoặc không đúng, bạn có thể viết thử giùm ?
     
    #3
  4. adam_tran

    adam_tran Steel Partner

    Bài viết:
    1,373
    Đã được thích:
    32
    Nơi ở:
    Goooogle
    Có thể do dữ liệu không phù hợp, thí dụ chuổi A1 không có đủ 8 ký tự chẳng hạn.
    Để chắc chắn hơn bạn có thể gửi file cho mình qua email adam.tranvn@gmail.com, mình có thể kiểm tra hoặc nếu không giải quyết được thì up lên cho người xem.
    Bạn có thể vào website www.giaiphapexcel.com để tìm hiểu thêm!
     
    #4
  5. buidinh

    buidinh Thành viên sơ cấp

    Bài viết:
    6
    Đã được thích:
    0
    Nơi ở:
    Hp
    :wall:

    Có cách nào rút gọn công thức này không các bác ! Nó dài quá.
    Em thử cho IF vào trong, để check MID nhưng .... nó không hiểu. Pó tay, nhờ các bác giúp cho ! :1luvu:
     
    #5
  6. Ng Ha Anh Tuan

    Ng Ha Anh Tuan Thành viên sơ cấp

    Bài viết:
    76
    Đã được thích:
    0
    Nơi ở:
    TP HCM
    =IF(and(ISNA(MATCH(MID($A$1 ,5,2)&G21),ISNA(MATCH(MID($A$1 ,8,2)&G21)),"-",IF(ISNA(MATCH(MID($A$1 ,5,2)&G21),INDEX(FL!$C:$C,MATCH(MID($A$1,8,2)&G21,FL!$J:$J,0),0),INDEX( FL!$C:$C,MATCH(MID($A$1,5,2)&G21,FL!$ J:$J,0),0)))
    kiểm tra lại các dấu "()" ie nếu isna DK1 và DK2 thì lấy "-", còn không nếu Isna DK1, index(dk2),index(dk1)
    Có thể đặt tên:
    vung1=FL!$C:$C
    vung2=FL!$J:$J
    Nếu G21 là $G$21 (???) thì đặt
    dk1=MATCH(MID($A$1 ,5,2)&G21)) ???G21
    Dk2=MATCH(MID($A$1 ,8,2)&G21)) ???G21
    Bạn tự rút gọn nhé
     
    Last edited: 8 Tháng hai 2007
    #6
  7. hieu1563

    hieu1563 Thành viên sơ cấp

    Bài viết:
    123
    Đã được thích:
    0
    Nơi ở:
    Đang đăng ký !!
    Mình muốn giới thiệu với bạn hàm CHOOSE
    Tạm thời biến đổi hai hàm của bạn thành 2 Công Việc :

    CV1=INDEX(FL!$C:$C;MATCH(MID($A$1;5;2)&G21;FL!$J:$J;0);0)
    CV2=INDEX(FL!$C:$C;MATCH(MID($A$1;8;2)&G21;FL!$J:$J;0);0)

    =CHOOSE((1+2*ISERROR(ĐK_CV1)+3*ISERROR(ĐK_CV2)-2);CV1;CV2;"";"Sai cả hai")

    =CHOOSE((1+2*ISERROR(MATCH(MID($A$1;5;2)&G21;FL!$J:$J;0))+3*ISERROR(MATCH(MID($A$1;8;2))-2);"CV1";"CV2";"";"Sai cả hai")

    Có thể công thức hơi dài. Bạn chịu khó nhé.



    Còn để không còn dấu hiệu N/A đáng ghét; bạn có thể tham khảo :
    http://www.giaiphapexcel.com/forum/showthread.php?t=1419

    Thân
     
    Last edited: 13 Tháng hai 2007
    #7

Chia sẻ trang này