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

  • Thread starter beotron
  • Ngày gửi
B

beotron

Guest
27/10/04
5
0
0
44
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
 
Khóa học Quản trị dòng tiền
C

CNN

Cao cấp
14/3/03
506
2
0
Đ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ế ...
 
Q

Quỳnh

Guest
27/1/05
22
0
0
47
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.
 
Sửa lần cuối:
W

WhoamI

Cao cấp
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
 
W

WhoamI

Cao cấp
Đâ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))
 
Sửa lần cuối:
Q

Quỳnh

Guest
27/1/05
22
0
0
47
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
 
T

ThanhBinh72

Guest
27/4/05
1
0
0
51
SG
Công thức này sai rồi khong tin ban thu nhap 9 nam va 8 nam thu xem!
 
W

WhoamI

Cao cấp
Đú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)
 
Sửa lần cuối:
B

beotron

Guest
27/10/04
5
0
0
44
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)
 
Sửa lần cuối:
Q

Quỳnh

Guest
27/1/05
22
0
0
47
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)))
 
F

ForestC

Guest
11/1/05
377
1
0
44
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.
 
K

KKBS

Guest
23/2/05
53
0
0
51
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
 
Q

Quỳnh

Guest
27/1/05
22
0
0
47
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
 
H

HyperVN

<b>Phu hót rác</b>
17/3/03
1,833
16
0
47
Hải Phòng
www.webketoan.vn
Chúa ơi, khủng khiếp quá. :wall:
 

Xem nhiều

Webketoan Zalo OA