Conditional Formating không hoạt động?

Liên hệ QC

hoangminhtien

Thành viên gắn bó
Tham gia
29/2/08
Bài viết
1,662
Được thích
2,191
Nghề nghiệp
Mechanical Engineering
Em dùng conditional formating để bôi mầu cho những ngày thứ 7 và CN như trong file. tuy nhiên nếu để 2 điều kiện riêng biệt thì conditional formating hoạt động còn khi kết hợp 2 điều kiện đó vào hàm OR thì conditional formating lại không hoạt động.
Các bác xem trong file rồi giải thích giúp em với nhé!
Cám ơn các bác
 

File đính kèm

  • conditional formating.xls
    63.5 KB · Đọc: 26
theo mình chỉ cần dùng công thức đơn giản này thui
=or(A$8=5,A$8=6)
 
Thay vì hàm dùng hàm OR hãy thử thay bằng dấu cộng xem:

=(weekday()=1)+(weekday()=7)

Tôi có ý này, dùng hàm offset thay vì indirect và address có vẻ gọn hơn được một tí.
Cũ: =(WEEKDAY(INDIRECT(ADDRESS(7,INT((COLUMN()-COLUMN($A$1))/6)*6+COLUMN($A$1))))=1)+(WEEKDAY(INDIRECT(ADDRESS(7,INT((COLUMN()-COLUMN($A$1))/6)*6+COLUMN($A$1))))=7)

Mới: =(WEEKDAY(OFFSET($A$1,6,INT((COLUMN()-COLUMN($A$1))/6)*6))=1)+(WEEKDAY(OFFSET($A$1,6,INT((COLUMN()-COLUMN($A$1))/6)*6))=7)
 
Em dùng conditional formating để bôi mầu cho những ngày thứ 7 và CN như trong file. tuy nhiên nếu để 2 điều kiện riêng biệt thì conditional formating hoạt động còn khi kết hợp 2 điều kiện đó vào hàm OR thì conditional formating lại không hoạt động.
Các bác xem trong file rồi giải thích giúp em với nhé!
Cám ơn các bác
Tiến thử sửa công thức như vầy xem sao:
=WEEKDAY(INDIRECT(ADDRESS(7,INT((COLUMN()-COLUMN($A$1))/6)*6+COLUMN($A$1))),2)>5
Thêm nữa, ta biết chắc chắn COLUMN($A$1)=1, vậy tại sao không sửa như vầy cho gọn nhỉ:
=WEEKDAY(INDIRECT(ADDRESS(7,INT((COLUMN()-1)/6)*6+1)),2)>5
Cuối cùng, dựa vào ý tưởng của Bình, công thức chỉ còn như vầy:
=WEEKDAY(OFFSET($A$1,6,INT((COLUMN()-1)/6)*6),2)>5
 
Lần chỉnh sửa cuối:
Cám ơn bác Bình và bác Phúc đã cho em công thức hợp lý và ngắn gọn. vấn đề offset thay cho indirect và addressem em đã rút kinh nghiệm mấy lần rồi mà lần này vẫn không áp dụng được. híc.
Thêm nữa, ta biết chắc chắn COLUMN($A$1)=1, vậy tại sao không sửa như vầy cho gọn nhỉ:
Thực ra em để COLUMN($A$1) là vì tránh trường hợp người sử dụng insert thêm cột, vì file này em chỉ làm hộ thôi mà (file gốc là cột E hay F gì đó).
Tuy nhiên vấn đề em không hiểu là sao khi kết hợp hàm OR thì conditional formating không hoạt động, bác nào biết giải thích giúp em với nhé!
 
Em dùng conditional formating để bôi mầu cho những ngày thứ 7 và CN như trong file. tuy nhiên nếu để 2 điều kiện riêng biệt thì conditional formating hoạt động còn khi kết hợp 2 điều kiện đó vào hàm OR thì conditional formating lại không hoạt động.
Các bác xem trong file rồi giải thích giúp em với nhé!
Cám ơn các bác
Chỉ cần vầy là đủ:
- Quét chọn A6:BZ12
- Vào Format\Conditional Formating và gõ vào công thức:
PHP:
=MATCH(1,WEEKDAY(OFFSET(A$7,,-5,,12)),0)
Xong!
 

File đính kèm

  • conditional formating.xls
    31 KB · Đọc: 13
Chỉ cần vầy là đủ:
- Quét chọn A6:BZ12
- Vào Format\Conditional Formating và gõ vào công thức:
PHP:
=MATCH(1,WEEKDAY(OFFSET(A$7,,-5,,12)),0)
Xong!
Làm như vậy đâu có được. Công thức của Bác ndu không đúng với trường hợp ngày đầu tiên là thứ 7 hoặc chủ nhật hoặc ngày cuối cùng là thứ 7.
Thử vầy thử xem:
Mã:
 =WEEKDAY($A$7+(COLUMN(A1)-1)/6,2)>5
Mà vấn đề chủ topic muốn hỏi ở đây là hàm OR(). Chắc đây lại là một lỗi nữa của Excel chăng.
 
Chỉ cần vầy là đủ:
- Quét chọn A6:BZ12
- Vào Format\Conditional Formating và gõ vào công thức:
PHP:
=MATCH(1,WEEKDAY(OFFSET(A$7,,-5,,12)),0)
Xong!
Ah... phát hiện ra 1 lỗi nhỏ: Nếu ngày đầu nằm ngay cột A và đấy là thứ 7 thì... toi (vì không thể Offset ngược về 5 cột được)
Sửa lại vầy mới ổn:
PHP:
=MATCH(1,WEEKDAY(OFFSET(A$7,,1,,12),2),0)
Ẹc... Ẹc...
 
Ah... phát hiện ra 1 lỗi nhỏ: Nếu ngày đầu nằm ngay cột A và đấy là thứ 7 thì... toi (vì không thể Offset ngược về 5 cột được)
Sửa lại vầy mới ổn:
PHP:
=MATCH(1,WEEKDAY(OFFSET(A$7,,1,,12),2),0)
Ẹc... Ẹc...
Làm thế này cũng chưa được. Bác dựa vào ngày thứ 2 tuần tiếp theo để định vị nhưng nếu ngày cuối cùng là thứ 7 hoặc chủ nhật cũng toi, không có ngày thứ 2 để định vị.
Thêm một cách nữa. Ngắn hơn một tẹo.
Mã:
=WEEKDAY(MAX($A$7:A$7),2)>5
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom