Menu

Hàm MOD và ABS trong Excel: số dư và giá trị tuyệt đối

=MOD(A2,B2) trả về số dư khi chia A2 cho B2, nên =MOD(17,5) bằng 2. =ABS(A2) trả về một số đã bỏ dấu, nên =ABS(B2-C2) là độ chênh lệch giữa hai giá trị, bất kể giá trị nào lớn hơn.

Mọi bảng tính trên trang này đều trực tiếp: đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

=MOD(A2,B2) trả về số dư khi chia A2 cho B2: =MOD(17,5) bằng 2, vì 17 chia 5 được 3 lần và còn dư 2. =ABS(A2) trả về số đã bỏ dấu, nên -42 thành 42.

Số dư với MOD
C2
ABCD
1NumberDivisorMODTimes it fits
217523
320504
47213
51007214
6-321-1
73-2-1-1
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Cột D cho thấy nửa còn lại của phép chia: QUOTIENT trả về số lần nguyên mà số chia nằm vừa trong số bị chia, nên 17 là 3 lần 5 cộng 2. Đổi B2 thành 0 thì MOD trả về #DIV/0!, giống như khi chia cho 0.

Cú pháp MOD

=MOD(number, divisor)

MOD cũng dùng được với số thập phân: =MOD(7.5,2) bằng 1,5, còn =MOD(A2,1) chỉ trả về phần thập phân của một số, ví dụ 0,75 từ 3,75. Với giá trị ngày có kèm giờ, =MOD(A2,1) giữ lại phần giờ và bỏ phần ngày.

MOD với số âm

Hàng 6 và 7 của trang tính trên cho thấy quy tắc của Excel: kết quả mang dấu của số chia. =MOD(-3,2) bằng 1 chứ không phải -1, còn =MOD(3,-2) bằng -1. Excel tính MOD theo công thức number - divisor * INT(number / divisor), và INT luôn làm tròn xuống.

Đây là chỗ bảng tính và code không giống nhau. Trong JavaScript, Java, C và C#, -3 % 2 bằng -1; trong Python, -3 % 2 bằng 1, giống Excel. Google Sheets làm theo Excel. Nếu bạn cần kết quả mang dấu của số bị chia, hãy dùng =A2-B2*TRUNC(A2/B2).

Chẵn hay lẻ, và tô màu xen kẽ hàng

Một số là số chẵn khi MOD(number,2) bằng 0. Từ đó bạn có nhãn "Even" hoặc "Odd", và khi kết hợp với ROW, bạn có quy tắc tô màu cách một hàng. Excel cũng có ISEVEN và ISODD, trả về TRUE hoặc FALSE trực tiếp.

Chẵn hay lẻ, và hàng tô xen kẽ
C2
ABC
1OrderQtyEven or odd
210014Even
310027Odd
4100310Even
510043Odd
610058Even
710065Odd
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Quy tắc định dạng có điều kiện =MOD(ROW($A2),2)=0 tô sáng hàng 2, 4 và 6, tức các hàng có số thứ tự chẵn. Trong Excel, vào Home > Conditional Formatting > New Rule > "Use a formula to determine which cells to format", và dạng ngắn hơn =MOD(ROW(),2)=0 cũng dùng được ở đó. Đổi số 2 thành 3 để tô màu cứ ba hàng một lần.

Mỗi hàng thứ n: cộng mỗi giá trị thứ ba

MOD(ROW()-ROW(first),n)=0 cho TRUE ở hàng đầu tiên của vùng và sau đó cứ mỗi n hàng một lần. Đặt trong SUMPRODUCT, nó lấy ra mỗi giá trị thứ ba trong một cột, ví dụ tháng cuối của mỗi quý.

Cộng mỗi hàng thứ ba
E2
ABCDE
1MonthSalesEvery 3rd
2Jan120310
3Feb135
4Mar150
5Apr110
6May125
7Jun160
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Độ lệch của các hàng chạy từ 0 đến 5, và =2 giữ lại độ lệch 2 và 5: tháng 3 và tháng 6, tức 150 cộng 160. Đổi =2 thành =0 để lấy tháng 1 và tháng 4.

Đổi phút ra giờ và phút

MOD và phép chia lấy phần nguyên tách một tổng thành các đơn vị: giờ và số phút lẻ, tuần và số ngày lẻ, số thùng và số món lẻ.

135 phút là 2 giờ 15 phút
B2
ABCD
1MinutesHoursMinutes leftLabel
21352152 h 15 min
3590590 h 59 min
4240404 h 0 min
51000164016 h 40 min
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

1000 phút là 16 giờ 40 phút. Với giá trị thời gian thực sự (8:30, 17:45) và ca làm việc kéo qua nửa đêm, =MOD(end-start,1) là công thức chuẩn; xem tính toán thời gian.

ABS: độ chênh lệch giữa hai số

=ABS(number) bỏ dấu trừ. Công dụng chính của hàm là lấy độ lớn của một hiệu số khi bạn không quan tâm giá trị nào lớn hơn: mỗi dự báo lệch bao xa so với kết quả thực tế, hay một số đo có nằm trong dung sai hay không.

Mỗi dự báo lệch bao nhiêu
D2
ABCDE
1WeekForecastActualOff byWithin 10?
2W11201128TRUE
3W29510914FALSE
4W31401382TRUE
5W4809313FALSE
6W51101046TRUE
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

B2-C2 bằng 8 với W1 và -14 với W2; ABS biến cả hai thành khoảng cách. Để cộng các khoảng cách lại, =SUMPRODUCT(ABS(B2:B6-C2:C6)) chạy được trên mọi phiên bản Excel; ở đây kết quả là 43, tức tổng của cột D. Chia tổng đó cho số lượng giá trị sẽ ra sai số tuyệt đối trung bình.

Thử ngay: MOD và ABS

Xếp trứng vào hộp 12 quả
C2
ABC
1EggsPer cartonLeft over
235012
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Đến lượt bạn: Trong C2, tính xem còn dư bao nhiêu quả trứng sau khi xếp số trứng ở A2 vào các hộp đầy, mỗi hộp chứa số quả ghi ở B2.

Nhiệt độ thay đổi
D2
ABCD
1CityMorningEveningChange
2Oslo146
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Đến lượt bạn: Trong D2, cho biết nhiệt độ đã thay đổi bao nhiêu độ giữa B2 và C2, dưới dạng số dương bất kể lần đo nào cao hơn.

MOD, QUOTIENT và INT khác nhau thế nào

Bạn cầnCông thứcVới 17 và 5Với -17 và 5
Số dư=MOD(A2,B2)23
Số lần chia nguyên, làm tròn về 0=QUOTIENT(A2,B2)3-3
Số lần chia nguyên, làm tròn xuống=INT(A2/B2)3-4
Phép chia đầy đủ=A2/B23,4-3,4

Với số dương, QUOTIENT và INT(A2/B2) cho cùng kết quả, và B2*INT(A2/B2)+MOD(A2,B2) luôn dựng lại được số ban đầu. Với số âm, chỉ cặp INT mới cộng lại khớp: -4 nhân 5 cộng 3 bằng -17. Dùng lẫn QUOTIENT với MOD trên số âm là nguyên nhân thường gặp của lỗi lệch một đơn vị khi lập lịch hay chia phần.

Câu hỏi thường gặp

Hàm MOD trong Excel dùng để làm gì?

Hàm trả về số dư của phép chia: =MOD(17,5) bằng 2, vì 17 chia 5 được 3 lần và còn dư 2. Nếu phép chia hết, MOD trả về 0.

Làm sao kiểm tra một số là số chẵn trong Excel?

Dùng =MOD(A2,2)=0, kết quả là TRUE với số chẵn, hoặc dùng =ISEVEN(A2). Để hiện nhãn: =IF(MOD(A2,2)=0,"Even","Odd").

Vì sao MOD trả về số dương với một giá trị âm?

Hàm MOD của Excel lấy dấu theo số chia: =MOD(-3,2) bằng 1 và =MOD(3,-2) bằng -1. Nhiều ngôn ngữ lập trình cho -3 % 2 bằng -1, nên kết quả có thể khác với code.

Làm sao lấy giá trị tuyệt đối trong Excel?

Dùng =ABS(A2): -42 thành 42 và 42 vẫn là 42. Để lấy độ lớn của một hiệu số mà không có dấu, dùng =ABS(B2-C2).

Làm sao tính tổng các giá trị tuyệt đối trong Excel?

Dùng =SUMPRODUCT(ABS(A2:A7)), công thức chạy được trên mọi phiên bản. Trong Excel 365 và 2021, =SUM(ABS(A2:A7)) cũng dùng được.

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu