Format kondisional berdasarkan hari dalam seminggu

21

Bagaimana saya bisa memformat sel dalam Google spreadsheet yang berisi tanggal untuk memiliki latar belakang yang berbeda sesuai dengan hari dalam seminggu, mis. Sorot hari Sabtu dan Minggu dalam kolom yang berisi hari dalam sebulan?

Mike Ellis
sumber

Jawaban:

13

Saya telah berjuang dengan ini untuk waktu yang lama, tetapi akhirnya memecahkannya:

Gunakan pemformatan bersyarat pada kolom dengan tanggal dan ketik berikut ini sebagai rumus khusus:

=or(WEEKDAY(A1)=1,WEEKDAY(A1)=7)

di mana A1tanggal pertama di kolom.

Ini akan menerapkan pemformatan bersyarat untuk semua hari kerja dengan nilai 1 (Minggu) dan 7 (Sabtu).

aej
sumber
2
Ini solusi yang bagus, terima kasih. Saya menerimanya. Untuk penggunaan saya, saya mengadaptasinya untuk mengecualikan sel kosong: =and(not(isblank(A1)), or(WEEKDAY(A1)=1,WEEKDAY(A1)=7))
Mike Ellis
Tambahan yang bagus dengan tidak kosong. Saya telah menggunakannya dengan cara di mana saya hanya menggunakannya untuk rentang yang berisi tanggal, misalnya A1: A31. Saya juga mengubahnya dari menggunakan> dan <to = seperti yang Anda lakukan. Itu sedikit lebih lurus ke depan seperti itu. Saya kira saya mulai berharap untuk angka hari kerja lebih seperti di negara saya di mana Senin akan menjadi 1 dan Minggu akan menjadi 7. Saya tidak tahu apakah ini masalahnya jika pengaturan negara diubah.
aej
14

Mudah (tapi sedikit membosankan!) Di Google Sheets baru. Untuk Pemformatan Bersyarat diperlukan aturan baru untuk setiap warna, secara kasar. (Satu warna biasanya dapat dilewati dari aturan dan alih-alih diterapkan dengan pemformatan normal - yang akan terlampaui jika salah satu kondisi untuk CF berlaku.) Jadi, harap mengulangi dasar-dasar berikut ini setidaknya lima kali.

Katakan kolom tanggal adalah A. Pilih, Format> Pemformatan bersyarat ..., Rumus khusus adalah dan masukkan:

=weekday(A1)=1  

Pilih format yang diperlukan.

Final di 1atas adalah untuk hari Minggu, hari-hari lainnya mengikuti dalam urutan numerik.

Ulangi untuk format lain yang diperlukan, sesuaikan yang 1diperlukan.

Karena aturan ini tidak bertentangan (setiap tanggal hanya satu hari tertentu dalam seminggu) urutan penambahan aturan (dengan " + Tambahkan aturan lain ") tidak masalah.

kacang
sumber
4
Membangun ini, cara yang lebih sederhana adalah dengan melakukan =WEEKDAY(A1,2)>5- Ini akan berlaku pada hari Sabtu dan Minggu dan hanya memerlukan satu aturan
FuriousGeorge
1
Itu berhasil. Terima kasih!
Joshua Dance
5

Jika tanggal di kolom A, pilih tanggalnya, lalu lakukan: Format > Pemformatan bersyarat ... > Format sel jika ... > Formula khusus dan masukkan

=and(isblank(A:A)=false, or(weekday(A:A)=1, weekday(A:A)=7))

Beberapa penjelasan:

weekday(A:A)mengembalikan 1-7 , untuk hari dalam seminggu, dan or(weekday(A:A)=1, weekday(A:A)=7)mengembalikan benar , jika itu hari Minggu ( 1 ) atau Sabtu ( 7 ).

Ini akan bekerja sendiri, tetapi karena alasan tertentu hari kerja () pada sel kosong mengembalikan 7 , maka isblank(A:A)=falseperiksa juga apakah sel itu kosong. Sekarang warna sel jika keduanya (tidak kosong) dan (matahari atau sat)

Saya juga menaruh A:A, karena A1akan memberikan hasil offset jika rentang format tidak dimulai dari atas (misalnya A5:A100bukannya A1:A100)

Kredit untuk pnuts!

Emerson Peters
sumber
4

Ini dimungkinkan dengan skrip. Buka AlatEditor Skrip ... dan tempel di skrip ini:

function onEdit(e) {
  var cell = e.range.getCell(1, 1);
  var val = cell.getValue();
  if ((val instanceof Date) && (val.getDay() == 0 || val.getDay() == 6)) {
    cell.setBackground("red");
  } else {
    cell.setBackground("white");
  }
}

Simpan skrip (beri nama proyek) dan kembali ke spreadsheet Anda.

Sekarang, setiap kali Anda mengedit sel, skrip ini akan memeriksa untuk melihat apakah Anda memasukkan tanggal dan apakah tanggal yang Anda masukkan adalah hari Minggu atau Sabtu. Jika demikian, latar belakang sel akan berubah menjadi merah. Jika bukan tanggal atau bukan pada akhir pekan, latar belakang akan berubah menjadi putih.

Ada nama warna lain yang dapat Anda gunakan, atau Anda dapat menggunakan kode hex untuk menentukan warna yang berbeda.

William Jackson
sumber
Terima kasih, William. Walaupun kodenya terlihat masuk akal, untuk beberapa alasan, itu tidak bekerja seperti yang diharapkan. Ternyata bilangan genap hari merah dan bilangan ganjil putih.
Mike Ellis
Saya mengubah tes dalam ifpernyataan menjadi lebih mudah. Apakah ini berfungsi sekarang?
William Jackson