Hỏi về phép trừ trong exel

Thảo luận trong 'Ứng dụng Excel' bắt đầu bởi beotron, 29 Tháng tư 2005.

24,747 lượt xem

  1. beotron

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

    Bài viết:
    5
    Đã được thích:
    0
    Nơi ở:
    HN
    Giả sử em có số liệu là 9 năm 2 tháng em ký hiệu là 9.02 (1)
    Và 8 tháng em ký hiệu là 0.08 (2)
    Em muốn lấy (1) - (2) phải ra kết quả là 8.06 em chả biết phải làm thế nào cả vì nếu trừ như bình thường thì kết quả sẽ là 8.94
     
    #1
  2. CNN

    CNN Thành viên thân thiết

    Bài viết:
    505
    Đã được thích:
    2
    Nơi ở:
    ĐH KTQD
    CNN nghĩ có thể làm được nhưng quả thật là ...hơi trâu bò quá. Tức là tách từng phần ra ý (quên béng là hàm gì rồi), tách phần trước và sau dấu chấm. Phép trừ sau dấu chấm nếu âm thì + thêm 12. Kiểu kiểu như thế ...
     
    #2
  3. Quỳnh

    Quỳnh Thành viên sơ cấp

    Bài viết:
    22
    Đã được thích:
    0
    Nơi ở:
    Hà Nội
    Tôi cũng nghĩ phải làm theo cách của CNN, vì bạn quy ước viết năm tháng như thế, trước dấu phẩy thì là hệ thập phân còn sau dấu phẩy là hệ... thập nhị phân, hìhìhì.

    Bạn phải tách năm và tháng riêng ra để trừ năm riêng và trừ tháng riêng.

    Tách năm (các số đứng trước dấu phẩy) theo tôi bạn có thể dùng hàm round với num_digits là 0. Vì đằng sau dấu phẩy lớn nhất là 12 cho nên không sợ làm tròn sai năm đâu.

    Tách tháng thì theo tôi bạn dùng hàm right để tách lấy 2 chữ số ở bên phải.
     
    Last edited: 29 Tháng tư 2005
    #3
  4. WhoamI

    WhoamI Thành viên thân thiết

    Bài viết:
    534
    Đã được thích:
    0
    Nơi ở:
    Cố lên, cứ đi rồi sẽ tới!
    To chị Quỳnh: Cái này em cũng vừa thử xong có thể giải quyết được VD cảu bạn Beotron, nhưng nếu làm công thức tổng quát thì không đơn giản như vậy. Nhưng em sẽ thử lại.

    To bạn Beotron: Mình thấy có cách này đỡ phức tạp & hợp lý hơn để giúp bạn nhận biết số tháng/12 tháng và vẫn tính toán như kiểu số bình thường.

    Trên thanh Menu vào Format/cell/Number/category/Custom
    Tạo type mới cho định dạng kiểu này bằng cách trên ô Type bạn gõ # #/12 và Ok

    VD: khi bạn nhập số 9.5 ( có nghĩa là 9 năm và 6 tháng) thì trên ô nhập liệu sẽ hiển thị 9 6/12 nhưng trên thanh Formular vẫn thấy 9.5. Có nghĩa là mọi phép tính đều tính toán với số trên Formular nhưng lại hiển thị trên cell theo Type định dạng mà bạn đã tạo.

    Bạn có thể tham khảo trên topic này để hiểu thêm về Number format:
    http://www.webketoan.com/forum/showthread.php?t=5378
     
    #4
  5. WhoamI

    WhoamI Thành viên thân thiết

    Bài viết:
    534
    Đã được thích:
    0
    Nơi ở:
    Cố lên, cứ đi rồi sẽ tới!
    Đây rồi, cuối cùng thì nó cũng ra nhưng dài khiếp!

    =IF((RIGHT(A1;2)-RIGHT(A2;2))<0;(A1-RIGHT(TEXT(A1;",00");3))-1;A1-RIGHT(TEXT(A1;",00");3))-(A2-RIGHT(TEXT(A2;",00");3))+TEXT((RIGHT(TEXT(A1;",00");2)-RIGHT(TEXT(A2;",00");2));",00")*0,01

    Với số A1 là số (1); A2 là số (2) ( Điều kiện số (1) >số (2))
     
    Last edited: 29 Tháng tư 2005
    #5
  6. Quỳnh

    Quỳnh Thành viên sơ cấp

    Bài viết:
    22
    Đã được thích:
    0
    Nơi ở:
    Hà Nội
    Hihihi, công thức của chị lại như thế này:

    =ROUND(A1,0)-ROUND(A2,0)+IF(RIGHT(A1,2)-RIGHT(A2,2)>0,(RIGHT(A1,2)-RIGHT(A2,2))/100,(RIGHT(A1,2)-RIGHT(A2,2)-88)/100)=8.06
     
    #6
  7. ThanhBinh72

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

    Bài viết:
    1
    Đã được thích:
    0
    Nơi ở:
    SG
    Công thức này sai rồi khong tin ban thu nhap 9 nam va 8 nam thu xem!
     
    #7
  8. WhoamI

    WhoamI Thành viên thân thiết

    Bài viết:
    534
    Đã được thích:
    0
    Nơi ở:
    Cố lên, cứ đi rồi sẽ tới!
    Đúng rồi, cả công thức của em cũng chưa tổng quát! Chờ chút xem sao đã!
    Híc! lại dài hàng Ki lô mét, nhưng nó tổng quát rồi đó!

    =IF((RIGHT(A1;2)-RIGHT(A2;2))<0;(A1-RIGHT(TEXT(A1;",00");3))-1;A1-RIGHT(TEXT(A1;",00");3))

    -(A2-RIGHT(TEXT(A2;",00");3)) +

    IF((RIGHT(TEXT(A1;",00");2)-RIGHT(TEXT(A2;",00");2))<0;TEXT(12+RIGHT(TEXT(A1;",00");2)-RIGHT(TEXT(A2;",00");2);"00")*0,01;TEXT((RIGHT(TEXT(A1;",00");2)-RIGHT(TEXT(A2;",00");2));",00")*0,01)
     
    Last edited: 29 Tháng tư 2005
    #8
  9. beotron

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

    Bài viết:
    5
    Đã được thích:
    0
    Nơi ở:
    HN
    Em dùng công thức này là tiện nhất, tuy không tổng quát như các bác, nhưng đúng cho mọi trường hợp của em.Cám ơn tất cả các bác đã giúp em khi nào không hiểu em lại vào làm phiền các bác tiếp

    Gia thiết A1>B1 và A1 và B1 nhập đúng
    Vd: Ta co A1=9.02 B1=0.08
    =IF(((RIGHT(A1,2)-RIGHT(B1,2))<0),A1-B1-0.88,A1-B1)
     
    Last edited: 29 Tháng tư 2005
    #9
  10. Quỳnh

    Quỳnh Thành viên sơ cấp

    Bài viết:
    22
    Đã được thích:
    0
    Nơi ở:
    Hà Nội
    Hìhìhì, chị thử áp dụng công thức của WhoamI và Béotròn: Khi mà a1 < a2 (phải tính cho cả trường hợp này đúng không) thì kết quả có vẻ không ổn . Ví dụ: a1 là 1,05 và a2 là 3,00 thì kết quả sẽ ra là -1,95.

    Rút kình nghiệm sau khi thử các trường hợp, chị có công thức tổng quát lần cuối cùng (lần cuối cùng thứ nhất, hìhìhì) như sau:

    =IF(RIGHT(TEXT(A1;",00");2)=RIGHT(TEXT(A2;",00");2);A1-A2;IF(A1>A2;IF(RIGHT(TEXT(A1;",00");2)<RIGHT(TEXT(A2;",00");2);A1-A2-0,88;A1-A2);IF(RIGHT(TEXT(A1;",00");2)<RIGHT(TEXT(A2;",00");2);A1-A2;A1-A2+0,88)))
     
    #10
  11. ForestC

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

    Bài viết:
    377
    Đã được thích:
    1
    Nơi ở:
    E'rywhere
    Khiếp chưa, hôm nay các cao thủ về chuỗi được dịp tranh tài kìa. Tiếc rằng MaiKa không có Excel ở đây để vào post vài phát góp mắm muối dưa cà với chị em. Béo Tròn thấy có học hỏi được gì không? Tổng quát thì dù sao cũng vẫn an toàn và chắc chắn hơn chứ. Ai lại ăn xổi ở thì thế, làm vậy rồi cũng sẽ có lúc hối hận mất thôi.
     
    #11
  12. KKBS

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

    Bài viết:
    52
    Đã được thích:
    0
    Nơi ở:
    HCM
    Tôi nghĩ là chỉ "xử lý chuỗi" khi thật sự cần thiết vì khá "nguy hiểm". Trong trường hợp này, tôi đề nghị "thuật toán" sau :
    - Bước 1 : Đổi cả 2 số ra cùng đơn vị tính là tháng
    A3 = 12 * ROUND(A1,0) + (A1 - ROUND(A1,0))*100
    A4 = 12 * ROUND(A2,0) + (A2 - ROUND(A2,0))*100
    - Bước 2 : Lấy 2 kết quả (cùng là tháng) trừ nhau và lấy trị tuyệt đối, ta sẽ có kết quả là số tháng chênh lệch
    A5 = ABS(A3 - A4)
    - Bước 3 : Đổi kết quả của bước 2 ra cách ghi "quái chiêu" theo đề bài
    A6 = INT(A5/12) + MOD(A5,12) / 100
    - Bước 4 : Gắn dấu vào vì A1 có thể nhỏ hơn A2
    A7 = SIGN(A3-A4) * A6
    A7 là kết quả cần tìm !
    Các hàm đã sử dụng
    +, - , *, / : cộng, trừ, nhân, chia số thực thông thường
    ROUND : làm tròn số
    INT : lấy phần nguyên của một số
    MOD : lấy phần dư trong phép chia 2 số nguyên
    SIGN : dấu của một số
    Tôi dùng ô trung gian để các bạn dễ theo dõi. Nếu bạn nào không muốn dùng ô trung gian thì viết công thức lồng nhau.

    Thân,
    KKBS
     
    #12
  13. Quỳnh

    Quỳnh Thành viên sơ cấp

    Bài viết:
    22
    Đã được thích:
    0
    Nơi ở:
    Hà Nội
    Bác KKBS: OK và chọn cách của bác!

    =SIGN(12*ROUND(A1,0)+(A1-ROUND(A1,0))*100-12*ROUND(A2,0)-(A2-ROUND(A2,0))*100) * INT(ABS(12*ROUND(A1,0)+(A1-ROUND(A1,0))*100-12*ROUND(A2,0)-(A2-ROUND(A2,0))*100)/12)+MOD(ABS(12*ROUND(A1,0)+(A1-ROUND(A1,0))*100-12*ROUND(A2,0)-(A2-ROUND(A2,0))*100),12)/100
     
    #13
  14. HyperVN

    HyperVN <b>Phu hót rác</b>

    Bài viết:
    1,833
    Đã được thích:
    12
    Nơi ở:
    Hải Phòng
    Chúa ơi, khủng khiếp quá. :wall:
     
    #14

Chia sẻ trang này