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

Liên hệ QC

Người dùng đang xem chủ đề này

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

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

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

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: 13
Cột BT phía trên nó có ngày, nên có weekday, cột TC phía trên trống. Gỡ merge cell sẽ thấy
 
Làm 1 cái Or trong đó weekday lấy 1 cột trên đỉnh đầu và 1 cột lệch qua trái.
Bạn ơi mình không hiểu lắm ạ. Làm vậy công thức là như thế nào ạ, cho mình xin với được không? Mình muốn bảng được tô màu như hình này ạ. Xin cảm ơn bạn nhiều.
 

File đính kèm

  • Screenshot 2024-09-14 165526.png
    Screenshot 2024-09-14 165526.png
    123.5 KB · Đọc: 8
Lần chỉnh sửa cuối:
Bạn ơi mình không hiểu lắm ạ. Làm vậy công thức là như thế nào ạ, cho mình xin với được không? Mình muốn bảng được tô màu như hình này ạ. Xin cảm ơn bạn nhiều.
Bạn thực sự không hiểu sao?
Ở cột D bạn dùng Weekday(D4), D4 có chứa ngày. Công thức động nên tại cột E nó thành Weekday(E4) với E4 rỗng.
Nếu muốn đúng cho cột E thì công thức tại cột E phải dựa hơi vào ngày ở D4 tức là "lệch qua trái" một cột.
Muốn cả 2 đều đúng thì phải là 2 công thức cùng lúc và OR với nhau.
Chẳng hạn như
Or(công thức cột D, công thức cột D có dựa hơi C)
 
Lần chỉnh sửa cuối:
Bạn thực sự không hiểu sao?
Ở cột D bạn dùng Weekday(D4), D4 có chứa ngày. Công thức động nên tại cột E nó thành Weekday(E4) với E4 rỗng.
Nếu muốn đúng cho cột E thì công thức tại cột E phải dựa hơi vào ngày ở D4 tức là "lệch qua trái" một cột.
Muốn cả 2 đều đúng thì phải là 2 công thức cùng lúc và OR với nhau.
Chẳng hạn như
Or(công thức cột D, công thức cột D có dựa hơi C)
Mình hiểu ý bạn nói nhưng mình không biết lập CT sao để D dựa cột C " lệch qua trái " ấy, trắc tại mình kém quá mà. Mình cảm ơn bạn nhiều nhé.
 
Dễ òm. Muốn lệch qua trái thì copy phần 1, sửa D thành C, là được phần 2 của Or

Dễ òm. Muốn lệch qua trái thì copy phần 1, sửa D thành C, là được phần 2 của Or
Mình làm như này có đúng không bạn. Mình thấy các tháng khác thì Ok nhưng riêng T9 và T12 mùng 1 là đầu tháng thì lại vẫn chưa ổn nó như này này .
Bài đã được tự động gộp:

Mình làm như này có đúng không bạn. Mình thấy các tháng khác thì Ok nhưng riêng T9 và T12 mùng 1 là đầu tháng thì lại vẫn chưa ổn nó như này này .
Mình làm như này có đúng không bạn. Mình thấy các tháng khác thì Ok nhưng riêng T9 và T12 mùng 1 là đầu tháng thì lại vẫn chưa ổn nó như này này .
Xin lỗi vì đã làm phiền bạn quá nhiều nhé.
 

File đính kèm

  • Screenshot 2024-09-16 172714.png
    Screenshot 2024-09-16 172714.png
    140.5 KB · Đọc: 4
Hèn gì 10 bài (20~29) qua lại rồi vẫn chưa thấy nhúc nhích.
Tôi thì thấy từ CT đi với cột BT, TC là chạy có cờ rồi.
 
Công thức thì đúng, nhưng:
Bạn đứng ở ô nào mà gõ công thức đó?
Bạn có tô khối từ D9 đến hết bảng và Đ9 là ô trắng nhất không?
Tôi làm đây:

=OR(WEEKDAY(D$8)=1,WEEKDAY(C$8)=1)

Công thức thì đúng, nhưng:
Bạn đứng ở ô nào mà gõ công thức đó?
Bạn có tô khối từ D9 đến hết bảng và Đ9 là ô trắng nhất không?
Tôi làm đây:

=OR(WEEKDAY(D$8)=1,WEEKDAY(C$8)=1)

View attachment 304000
À rồi mình cảm ơn bạn nhiều nhé bạn ơi.
 
À rồi mình cảm ơn bạn nhiều nhé bạn ơi.
Nếu bạn đã làm được và hài lòng, đồng thời bạn có chút hảo tâm thì có thể đóng góp 1 chút cho quỹ cứu trợ do diễn đàn tổ chức. Bài này mức độ dễ.
Link đề xuất (không phải đề xuất của Ban điều hành): https://giaiphapexcel.com/diendan/threads/các-địa-phương-thiệt-hại-nặng-nề-do-bão-yagi-số-3.171466/post-1138241
Link đóng góp: https://giaiphapexcel.com/diendan/threads/khẨn-hƯỚng-vỀ-ĐỒng-bÀo-chỊu-Ảnh-hƯỞng-cỦa-bÃo-yagi-bẢo-yÊn-lÀo-cai.171473/
Và đây chỉ là kêu gọi thiện nguyện (nghĩa là tự nguyện), không bắt buộc.
 
Nếu bạn đã làm được và hài lòng, đồng thời bạn có chút hảo tâm thì có thể đóng góp 1 chút cho quỹ cứu trợ do diễn đàn tổ chức. Bài này mức độ dễ.
Link đề xuất (không phải đề xuất của Ban điều hành): https://giaiphapexcel.com/diendan/threads/các-địa-phương-thiệt-hại-nặng-nề-do-bão-yagi-số-3.171466/post-1138241
Link đóng góp: https://giaiphapexcel.com/diendan/threads/khẨn-hƯỚng-vỀ-ĐỒng-bÀo-chỊu-Ảnh-hƯỞng-cỦa-bÃo-yagi-bẢo-yÊn-lÀo-cai.171473/
Và đây chỉ là kêu gọi thiện nguyện (nghĩa là tự nguyện), không bắt buộc.
Uh đối với những người giỏi thì mình nghĩ là đơn giản thôi, còn với mình thì cũng ú ớ nhiều, cảm ơn bạn đã giúp đỡ mình nhé. Còn mình củng có ủng hộ cho vùng lũ Bảo Yên tại nơi ở và Công ty đang làm một số tiền rồi bạn ạ, vì vậy nên mình sẽ ủng hộ vào dịp khác nhé bạn.
 
Cám ơn bạn đã phản hồi, riêng tôi thì cầu mong đừng bao giờ có dịp khác. Mỗi dịp như thế này là cả trăm người chết và mất tích, cả ngàn người mất nhà. Đau xót lắm.
Ý mình là không phải nặng như lần này mà có lũ lụt nữa đấy Bạn. Còn mình cũng như bạn thôi, cái gì mình có thể giúp được ai cho đi là tốt rồi, cũng như bạn đã giúp đỡ mình vậy này.
 

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

Back
Top Bottom