จัดรูปแบบตามวันของสัปดาห์


21

ฉันจะจัดรูปแบบเซลล์ตามเงื่อนไขในสเปรดชีตของ Google ที่มีวันที่เพื่อให้มีพื้นหลังแตกต่างกันไปตามวันในสัปดาห์ได้อย่างไรเช่นเน้นวันเสาร์และอาทิตย์ในคอลัมน์ที่มีวันในเดือนนั้น

คำตอบ:


13

ฉันดิ้นรนกับเรื่องนี้มานาน แต่ในที่สุดก็ทำให้มันแตก:

ใช้การจัดรูปแบบตามเงื่อนไขบนคอลัมน์ด้วยวันที่และพิมพ์ต่อไปนี้เป็นสูตรที่กำหนดเอง:

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

โดยที่A1เป็นวันแรกในคอลัมน์

การดำเนินการนี้จะใช้การจัดรูปแบบตามเงื่อนไขกับทุกวันทำงานโดยมีค่า 1 (วันอาทิตย์) และ 7 (วันเสาร์)


2
นี่เป็นทางออกที่ดีขอบคุณ ฉันยอมรับมัน สำหรับการใช้งานของฉันฉันได้ปรับมันเพื่อไม่รวมเซลล์ว่างเปล่า: =and(not(isblank(A1)), or(WEEKDAY(A1)=1,WEEKDAY(A1)=7))
Mike Ellis

นอกจากนี้ดีกับไม่ว่างเปล่า ฉันใช้มันในลักษณะที่ฉันใช้เฉพาะสำหรับช่วงที่มีวันที่เช่น A1: A31 ฉันเปลี่ยนจากการใช้> และ <เป็น = เหมือนที่คุณทำ มันเป็นวิธีที่ตรงไปตรงมามากกว่าเล็กน้อย ฉันเดาว่าฉันเริ่มจากหวังว่าวันธรรมดาจะมีเลขเหมือนในประเทศของฉันที่วันจันทร์จะเป็น 1 และวันอาทิตย์จะเป็น 7 ฉันไม่รู้ว่านี่เป็นกรณีที่การตั้งค่าประเทศเปลี่ยนไปหรือไม่
aej

14

ง่าย (แต่น่าเบื่อนิดหน่อย!) ใน Google ชีตใหม่ สำหรับการจัดรูปแบบตามเงื่อนไขต้องใช้กฎใหม่สำหรับแต่ละสีโดยประมาณ (โดยปกติหนึ่งสีสามารถข้ามจากกฎและนำไปใช้กับการจัดรูปแบบปกติซึ่งจะถูกแทนที่เมื่อเงื่อนไขใด ๆ สำหรับ CF ใช้) ดังนั้นคาดว่าจะทำซ้ำขั้นพื้นฐานต่อไปนี้อย่างน้อยห้าครั้ง

สมมติว่าคอลัมน์วันที่คือ A. เลือกรูปแบบ> การจัดรูปแบบตามเงื่อนไข ... สูตรที่กำหนดเองคือและป้อน:

=weekday(A1)=1  

เลือกการจัดรูปแบบที่ต้องการ

รอบชิงชนะเลิศ1ข้างต้นสำหรับวันอาทิตย์ส่วนวันอื่น ๆ ตามด้วยตัวเลข

ทำซ้ำสำหรับรูปแบบอื่นที่จำเป็นโดยปรับ1ตามความจำเป็น

เนื่องจากกฎเหล่านี้ไม่ขัดแย้งกัน (แต่ละวันเป็นเพียงวันเดียวของสัปดาห์) ลำดับที่เพิ่มกฎ (ด้วย " + เพิ่มกฎอื่น ") จึงไม่สำคัญ


4
การสร้างสิ่งนี้เป็นวิธีที่ง่ายกว่าที่จะทำ=WEEKDAY(A1,2)>5- สิ่งนี้จะตีทั้งวันเสาร์และวันอาทิตย์และต้องใช้กฎเดียวเท่านั้น
FuriousGeorge

1
นั่นเป็นการหลอกลวง ขอบคุณ!
Joshua Dance

5

หากวันที่อยู่ในคอลัมน์ A ให้เลือกวันที่จากนั้นทำ: รูปแบบ > การจัดรูปแบบตามเงื่อนไข ... > จัดรูปแบบเซลล์หาก ... > สูตรที่กำหนดเองแล้วใส่

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

คำอธิบายบางอย่าง:

weekday(A:A)ส่งคืน1-7สำหรับวันในสัปดาห์และ or(weekday(A:A)=1, weekday(A:A)=7)ส่งคืนจริงถ้าเป็นวันอาทิตย์ ( 1 ) หรือวันเสาร์ ( 7 )

สิ่งนี้จะทำงานได้ด้วยตัวเอง แต่ด้วยเหตุผลบางอย่างวันทำงาน () ในเซลล์ว่างเปล่าส่งคืนค่า7ดังนั้นisblank(A:A)=falseตรวจสอบว่าเซลล์ว่างเปล่าหรือไม่ ตอนนี้มันเป็นสีเซลล์ถ้ามันมีทั้ง (ไม่ว่าง) และ (อาทิตย์หรือ sat)

ฉันยังใส่A:Aเช่นA1จะให้ผลลัพธ์ที่ตรงข้ามถ้าช่วงรูปแบบไม่ได้เริ่มที่ด้านบน (เช่นA5:A100แทนA1:A100)

ให้เครดิตกับ pnuts!


4

สิ่งนี้เป็นไปได้ด้วยสคริปต์ ไปที่เครื่องมือเครื่องมือแก้ไขสคริปต์ ...และวางในสคริปต์นี้:

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");
  }
}

บันทึกสคริปต์ (ตั้งชื่อโครงการ) และกลับไปที่สเปรดชีตของคุณ

ตอนนี้ทุกครั้งที่คุณแก้ไขเซลล์สคริปต์นี้จะตรวจสอบเพื่อดูว่าคุณป้อนวันที่หรือไม่และวันที่คุณป้อนเป็นวันอาทิตย์หรือวันเสาร์ ถ้าเป็นเช่นนั้นพื้นหลังของเซลล์จะเปลี่ยนเป็นสีแดง หากไม่ใช่วันที่หรือไม่ใช่วันหยุดสุดสัปดาห์พื้นหลังจะเปลี่ยนเป็นสีขาว

มีชื่อสีอื่น ๆ ที่คุณสามารถใช้ได้หรือคุณสามารถใช้รหัสเลขฐานสิบหกเพื่อระบุสีอื่น


ขอบคุณวิลเลียม แม้ว่ารหัสดูสมเหตุสมผล แต่ด้วยเหตุผลบางอย่างมันไม่ทำงานอย่างที่คาดไว้ มันจะเปลี่ยนวันที่เป็นเลขคู่สีแดงและวันที่เป็นเลขคี่ขาว
Mike Ellis

ฉันเปลี่ยนการทดสอบในifคำแถลงให้ตรงไปตรงมามากขึ้น มันใช้งานได้แล้วตอนนี้?
วิลเลียมแจ็คสัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.