Nhờ giải thích hàm =MOD(COLUMN(),2) tại sao lại tô màu các ô xen kẻ

Liên hệ QC

duongvannam27

Thành viên hoạt động
Tham gia
11/12/12
Bài viết
164
Được thích
2
Em được các bạn chia sẽ 2 hàm =MOD(COLUMN(),2) và =MOD(COLUMN()-1,2) để tô màu các ô trong bảng sử dụng condition formatting.
Em đã hiểu hàm MOD nhưng còn hàm column thì là trả về số lượng các cột và không được không có tham chiếu trong hàm column(). Em không hiểu sao khi làm 2 công thức đó thì lại tô màu xen kẽ. E đã search nhiều bài để tìm hiểu nhưng không được. Mong cao nhân giúp đỡ. Xin cám ơn!
 
Em được các bạn chia sẽ 2 hàm =MOD(COLUMN(),2) và =MOD(COLUMN()-1,2) để tô màu các ô trong bảng sử dụng condition formatting.
Em đã hiểu hàm MOD nhưng còn hàm column thì là trả về số lượng các cột và không được không có tham chiếu trong hàm column(). Em không hiểu sao khi làm 2 công thức đó thì lại tô màu xen kẽ. E đã search nhiều bài để tìm hiểu nhưng không được. Mong cao nhân giúp đỡ. Xin cám ơn!
Hàm column() không phải là trả về số lượng cột, mà là hàm trả về chỉ số cột. Đương nhiên khi đó =mod(column(),2) sẽ cho kết quả là số dư của phép chia chỉ số cột cho 2.
 
Em được các bạn chia sẽ 2 hàm =MOD(COLUMN(),2) và =MOD(COLUMN()-1,2) để tô màu các ô trong bảng sử dụng condition formatting.
Em đã hiểu hàm MOD nhưng còn hàm column thì là trả về số lượng các cột và không được không có tham chiếu trong hàm column(). Em không hiểu sao khi làm 2 công thức đó thì lại tô màu xen kẽ. E đã search nhiều bài để tìm hiểu nhưng không được. Mong cao nhân giúp đỡ. Xin cám ơn!
Nếu muốn tô màu theo dòng xem kẻ tại sao không sử dụng format as table cho nó nhanh chứ định dạng có điều kiện làm gì cho mệt cái thân
 
Nếu muốn tô màu theo dòng xem kẻ tại sao không sử dụng format as table cho nó nhanh chứ định dạng có điều kiện làm gì cho mệt cái thân
Đang nói về column tức là tô màu cột xen kẽ chứ không phải dòng.
Tất nhiên dùng table cũng tô màu cột được.
 
em vẫn chưa hiểu lắm. Rất mong anh giải đáp cặn kẻ
Cột A có chỉ số là 1
Cột B là 2
Cột C là 3
...
Khi đó, đặt hàm column() tại ô bất kỳ trong cột A sẽ trả kết quả là 1
Đặt hàm tạicôjt B sẽ trả về kết quả là 2
Cột C trả về kết quả là 3
...
Vậy hàm mod(column(),2), khi đặt tại cột A sẽ cho kết quả là 1,
Tại cột B cho kết quả là 0
Tại cột C cho kết quả là 1
Tại cột D cho kết quả là 0...
....
Do đó, nếu đặt điều kiện trong condiction formatings là =mod(column(),2)=0 thì tất cả các dòng có chỉ số cột chẵn sẽ được định dạng.
Nếu đặt =mod(column(),2)=1, hoặc =mod(column(),2)>0 thì tất cả các dòng có chỉ số cột lẻ sẽ được định dạng
 
Cột A có chỉ số là 1
Cột B là 2
Cột C là 3
...
Khi đó, đặt hàm column() tại ô bất kỳ trong cột A sẽ trả kết quả là 1
Đặt hàm tạicôjt B sẽ trả về kết quả là 2
Cột C trả về kết quả là 3
...
Vậy hàm mod(column(),2), khi đặt tại cột A sẽ cho kết quả là 1,
Tại cột B cho kết quả là 0
Tại cột C cho kết quả là 1
Tại cột D cho kết quả là 0...
....
Do đó, nếu đặt điều kiện trong condiction formatings là =mod(column(),2)=0 thì tất cả các dòng có chỉ số cột chẵn sẽ được định dạng.
Nếu đặt =mod(column(),2)=1, hoặc =mod(column(),2)>0 thì tất cả các dòng có chỉ số cột lẻ sẽ được định dạng

Giờ e đã hiểu, nhưng tại sao e viết là mod(column(),2) và mod(column()-1,2) đều ra kết quả tương tự =mod(column(),2)=1, hoặc =mod(column(),2)>0 vậy ạ?
xin chân thành cám ơn rất nhiều!
 
Giờ e đã hiểu, nhưng tại sao e viết là mod(column(),2) và mod(column()-1,2) đều ra kết quả tương tự =mod(column(),2)=1, hoặc =mod(column(),2)>0 vậy ạ?
xin chân thành cám ơn rất nhiều!
Tương tự thế nào được nhỉ!! Bạn xem file này đi!!
 

File đính kèm

  • Mod.xls
    16.5 KB · Đọc: 65
Giờ e đã hiểu, nhưng tại sao e viết là mod(column(),2) và mod(column()-1,2) đều ra kết quả tương tự =mod(column(),2)=1, hoặc =mod(column(),2)>0 vậy ạ?
xin chân thành cám ơn rất nhiều!

Bạn diễn đạt câu hỏi của mình lủng củng hết chỗ nói. Trong 4 cách viết trên thì cái nào bạn thấy tương đương với cái nào?

Kết quả của con toán MOD(N, 2) luôn luôn là một giá trị 0 hoặc 1.

MOD(Column(), 2) và MOD(Column()-1, 2) luôn luôn cho kết quả khác nhau, nếu một cái cho ra 1 thì cái kia phải là 0, và ngược lại.

Mặc khác vì kết quả chỉ có thể là 0 hoặc 1 cho nên hai phép so sánh MOD(Column(),2)=1 và MOD(Column(),2)>0 có thể coi như tương đương.

Ở một số trường hợp cần ép kiểu, Excel có thể ép kiểu số nguyên (byte/integer/long) sang kiểu boolean. Khi ấy, 0 được ép thành False và tất các các số nguyên khác 0 được ép thành True. Tức là nếu xét trong hàm IF thì IF(MOD(Column(),2)=1,...,...) và IF(MOD(Column(),2),...,...) tương đương nhau; trong công thức thứ 2, hàm IF cần một tham số có kiểu là boolean cho nên nó tự ép kiểu của biểu thức MOD(Column(),2) từ một số nguyên thành true/false.
 
Lần chỉnh sửa cuối:
Các pro ơi cho hỏi tí, mình cố định dạng mỗi người (chiếm 2 hàng) có màu khác nhau bằng Conditional Formatting nhưng chưa đúng ý lắm. Mình dùng Định dạng theo công thức =MOD(ROW()-1,4) (File đính kèm). Nay mình muốn định dạng như hình, các Pro giúp với. To mau co dieu kien.png
 

File đính kèm

  • Bang cham com thang 11.xlsx
    161.5 KB · Đọc: 12
Các pro ơi cho hỏi tí, mình cố định dạng mỗi người (chiếm 2 hàng) có màu khác nhau bằng Conditional Formatting nhưng chưa đúng ý lắm. Mình dùng Định dạng theo công thức =MOD(ROW()-1,4) (File đính kèm). Nay mình muốn định dạng như hình, các Pro giúp với. View attachment 248342
..............................
 
Lần chỉnh sửa cuối:
Các pro ơi cho hỏi tí, mình cố định dạng mỗi người (chiếm 2 hàng) có màu khác nhau bằng Conditional Formatting nhưng chưa đúng ý lắm. Mình dùng Định dạng theo công thức =MOD(ROW()-1,4) (File đính kèm). Nay mình muốn định dạng như hình, các Pro giúp với.
Lần sau bạn nên thay "các pro" thành "mọi người" nha. Bạn xem file mình đính kèm làm có đúng ý bạn chưa nha?
Bạn lập điều kiện số thứ tự các dòng chia cho 4 và lấy số dư á.
1604032206226.png

Mình xóa CF của bạn và thay bằng của mình như sau:
Mã:
=OR(MOD(ROW();4)=0;MOD(ROW();4)=3)
 

File đính kèm

  • Bang cham com thang 11.xlsx
    155.2 KB · Đọc: 21
Toán số:
Khi cần đếm thứ tự từng cặp số đi với nhau thì ta có thể thu về công thức (n+1)/2
(1+1)/2 = 1
(2+1)/2 = 1
(3+1)/2 = 2
(4+1)/2 = 2
...

Công thức tô màu dòng đôi thành ra:
=ISODD((INT((ROW()+1)/2)))

Trên nguyên tắc, hàm xét chẵn lẻ hiệu quả hơn cách xét qua hàm MOD 2.
Lý do: hàm xét chẵn lẻ chỉ cần xét cái bit 1 của số. Hàm MOD phảin làm con toán chia, nhân, và trừ.

Bổ sung: thực ra hàm INT ở trên không cần thiết. Hàm ISODD tự động chặt bỏ phần thập phân trước khi xét.
 
Lần chỉnh sửa cuối:
Toán số:
Khi cần đếm thứ tự từng cặp số đi với nhau thì ta có thể thu về công thức (n+1)/2
(1+1)/2 = 1
(2+1)/2 = 1
(3+1)/2 = 2
(4+1)/2 = 2
...

Công thức tô màu dòng đôi thành ra:
=ISODD((INT((ROW()+1)/2)))

Trên nguyên tắc, hàm xét chẵn lẻ hiệu quả hơn cách xét qua hàm MOD 2.
Lý do: hàm xét chẵn lẻ chỉ cần xét cái bit 1 của số. Hàm MOD phảin làm con toán chia, nhân, và trừ.

Bổ sung: thực ra hàm INT ở trên không cần thiết. Hàm ISODD tự động chặt bỏ phần thập phân trước khi xét.
Cảm ơn, công thức của bạn chuẩn luôn đúng ý mình. Vì mình không dùng nhiều Excel nên không rành lắm, lần đầu tiên dùng hàm này.
Bài đã được tự động gộp:

Lần sau bạn nên thay "các pro" thành "mọi người" nha. Bạn xem file mình đính kèm làm có đúng ý bạn chưa nha?
Bạn lập điều kiện số thứ tự các dòng chia cho 4 và lấy số dư á.
View attachment 248344

Mình xóa CF của bạn và thay bằng của mình như sau:
Mã:
=OR(MOD(ROW();4)=0;MOD(ROW();4)=3)
Cảm ơn nhiều, mình copy công thức dán thì bị lỗi nên down file về copy công thức thì đúng.
 
Toán số:
Khi cần đếm thứ tự từng cặp số đi với nhau thì ta có thể thu về công thức (n+1)/2
(1+1)/2 = 1
(2+1)/2 = 1
(3+1)/2 = 2
(4+1)/2 = 2
...

Công thức tô màu dòng đôi thành ra:
=ISODD((INT((ROW()+1)/2)))

Trên nguyên tắc, hàm xét chẵn lẻ hiệu quả hơn cách xét qua hàm MOD 2.
Lý do: hàm xét chẵn lẻ chỉ cần xét cái bit 1 của số. Hàm MOD phảin làm con toán chia, nhân, và trừ.

Bổ sung: thực ra hàm INT ở trên không cần thiết. Hàm ISODD tự động chặt bỏ phần thập phân trước khi xét.
cho e hỏi e muốn công thức tô màu dòng 5 thì như nào mong được chỉ giáo ạ
 
Các bạn ơi ai biết cho mình hỏi tí. Mình có bảng chấm công như thế này ạ. Hiện tại mình đang sử dụng CT =WEEKDAY(D$8)=1 để bôi màu cho thứ ngày (tức là chủ nhât trong tháng). Nhưng nó chỉ bôi màu được 1 cột (BT)như hình , còn cột(TC) lại không có màu như mong muốn, vậy mình phải làm sao ạ. Mình xin cảm ơn!
 

File đính kèm

  • Screenshot 2024-09-11 182220.png
    Screenshot 2024-09-11 182220.png
    112.1 KB · Đọc: 12
Web KT

Bài viết mới nhất

Back
Top Bottom