Excel 2007: การจัดรูปแบบตามเงื่อนไขเพื่อให้แต่ละแถวแสดงค่าต่ำสีเหลืองค่าสูงสีแดง


14

ฉันมีสเปรดชีตประมาณ 300 แถว แต่ละแถวมีประมาณ 15 คอลัมน์และแต่ละเซลล์มีค่าตัวเลข แต่ละแถวสอดคล้องกับผลิตภัณฑ์

ฉันต้องการรับ Excel สำหรับแต่ละผลิตภัณฑ์เพื่อเน้นเซลล์ที่มีตัวเลขสูงสุดเป็นสีแดงและตัวเลขต่ำสุดเป็นสีเหลืองโดยมีการไล่ระดับสีสำหรับตัวเลขที่อยู่ระหว่าง นี่คือสิ่งที่จะเกิดขึ้นถ้าฉันเลือกแถว (โดยเฉพาะคือ 15 เซลล์ในแถวที่มีข้อมูลของฉัน) จากนั้นคลิกการจัดรูปแบบตามเงื่อนไข> เครื่องชั่งสี> เครื่องชั่งสีแดง - เหลือง

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

1 2 3
4 5 6
7 8 9

ผลลัพธ์ที่ฉันต้องการโดยใช้ Y สำหรับสีเหลือง, O สำหรับสีส้ม, R สำหรับสีแดงคือ:

Y O R
Y O R
Y O R

อย่างไรก็ตามหากฉันเลือกช่วงทั้งหมดและใช้การจัดรูปแบบตามเงื่อนไขฉันจะได้รับ:

Y Y Y
O O O
R R R

มีวิธีการทำให้สำเร็จโดยไม่ทำทีละแถวหรือไม่?


@wizlog: ถูกต้อง ค่าสูงสุดในแถวควรเป็นสีแดงค่าต่ำสุดในแถวนั้นควรเป็นสีเหลืองและค่าอื่น ๆ ควรอยู่ในที่ใดที่หนึ่งระหว่าง (ยิ่งใกล้กับค่าสูงสุดคือสีแดง)
Michael Pavey

ฉันชอบคำถามนี้ ... ฉันจะดูว่าฉันสามารถหาคำตอบ ... มัน probally จะไม่กี่ชั่วโมงก่อนที่ผมจะสามารถช่วยอีกครั้งผมหวังว่าสมาชิก SuperUser หาคำตอบในเวลาที่ผ่าน ..
wizlog

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

คำตอบ:


15

นี่คือแมโครที่สร้างรูปแบบที่มีเงื่อนไขสำหรับแต่ละแถวในการเลือกของคุณ ทำได้โดยการคัดลอกรูปแบบของแถวแรกไปยังแถว EACH ในส่วนที่เลือก (หนึ่งต่อหนึ่งไม่ใช่ทั้งหมด) แทนที่B1: P1โดยอ้างอิงแถวแรกในตารางข้อมูลของคุณ

Sub NewCF()
    Range("B1:P1").Copy
    For Each r In Selection.Rows
        r.PasteSpecial (xlPasteFormats)
    Next r
    Application.CutCopyMode = False
End Sub

หากต้องการใช้ให้ไฮไลต์แถวที่ไม่ได้จัดรูปแบบในชุดข้อมูลของคุณ (ในกรณีของฉันคือB2: P300 ) แล้วเรียกใช้แมโคร ในตัวอย่างด้านล่างโปรดทราบว่าจำนวนสูงสุดในสองแถวแรกคือ5และ15ตามลำดับ ทั้งเซลล์ที่มีสีแดงเข้ม

ฉันแน่ใจว่ามีวิธีแก้ปัญหาที่เร็วกว่านี้

ป้อนคำอธิบายรูปภาพที่นี่


1
ขอบคุณสิ่งนี้ใช้ได้อย่างสวยงาม นอกจากนี้ยังเป็นตัวอย่างที่ดีของการขอความช่วยเหลือเมื่อไม่แน่ใจ ... ฉันรู้สึกกลัวที่จะใช้แมโครเนื่องจากฉันคิดว่าฉันจะต้องเรียนรู้วิธีตั้งค่าการจัดรูปแบบตามเงื่อนไขตั้งแต่เริ่มต้น การเดินทางแมโครเพียงเพื่อคัดลอกรูปแบบที่มีอยู่เป็นไหวพริบมากขึ้น :)
ไมเคิล Pavey

@MichaelPavey ดีใจที่ฉันช่วยได้! และยินดีต้อนรับสู่ Superuser! :)
Ellesa

1
+ 1. หากใครสนใจฉันใช้แนวคิดนี้เพิ่มเติมในบล็อกของฉัน: yoursumbuddy.com/conditional-formatting-per-row-color-scales
Doug Glancy

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

5

วิธีที่ง่ายที่สุดในการทำสิ่งนี้ให้สำเร็จคือการทำสำเนา / วางแบบเพิ่มหน่วย ก่อนอื่นให้จัดรูปแบบ 1 แถวตามที่คุณต้องการ จากนั้นคัดลอกและจัดรูปแบบที่ผ่านมาเป็นแถวที่สองเท่านั้น ตอนนี้คัดลอกทั้งสองแถว 1 และ 2 แล้ววางการจัดรูปแบบไปยังแถว 3 และ 4 ล้างและทำซ้ำคัดลอก 4 ผ่าน 4 คัดลอก 8 วาง 8 คัดลอก 16 วาง 16 เมื่อคุณมีจำนวนที่เหมาะสมเช่น 16 วางสองสามครั้งเพื่อให้ได้มากถึง 64 หรือ 128 จากนั้นคุณสามารถคัดลอกและวางการจัดรูปแบบและคุณจะครอบคลุมอาณาเขตมากกว่าเดิม

มันไม่ได้หรูหราและจากประสบการณ์ของฉันทรัพยากรที่จำเป็นในการจัดรูปแบบแถวกินเริ่มมีเงื่อนไขเพื่อรับ maxed out ประมาณ 2500 แถว ... แต่มันทำงานเสร็จแล้ว

ฉันแค่หวังว่าจะมีตรรกะที่ไม่ได้สร้างรูปแบบตามเงื่อนไขแยกต่างหากสำหรับทุก ๆ แถวทรัพยากรที่ hogging ...


ฉันคิดว่า OP กล่าวว่า"อย่างไรก็ตามฉันมี 300 แถวและใช้เวลานานเกินไปในการเลือกแต่ละแถวและตั้งค่าการจัดรูปแบบตามเงื่อนไข" ในคำถาม
Prasanna

@ พูตรอนขอบคุณ! หากต้องการเพิ่มสิ่งนี้: การใช้ Ctrl / Cmd + Shift + Up / right คุณสามารถเลือกแถวและคอลัมน์ก่อนหน้าทั้งหมดได้อย่างง่ายดายดังนั้นคุณไม่จำเป็นต้องนับแถวก่อนหน้า จากนั้นเมื่อคุณพร้อมที่จะวางเพียงวางเคอร์เซอร์ในเซลล์แรกด้านล่างแถวที่จัดรูปแบบแล้วและรูปแบบการวางแบบพิเศษเท่านั้นมันจะขยายเพื่อครอบคลุมแถวได้มากเท่าที่คัดลอก Ctrl / Cmd + Shift + V จะจดจำการวางพิเศษล่าสุดที่คุณต้องการใช้เพื่อให้กระบวนการทั้งหมดดำเนินไปอย่างรวดเร็ว เพียงใช้กับสเปรดชีตสองแถวที่มีแถวละ 600 แถว
Oskar Austegard

ฉันทำสิ่งนี้บนโต๊ะที่มีแถวประมาณ 100 แถวและมันทำงานได้อย่างสวยงาม ใช้รูปแบบการวาดรูปแบบ 7 ซ้ำเท่านั้น
mskfisher

0

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

นำการจัดรูปแบบตามเงื่อนไขที่ต้องการไปใช้กับแถวใดก็ได้ที่คุณต้องการจากนั้นไฮไลต์แถวทั้งหมด คลิกขวาถัดไปที่ใดก็ได้ตามแนวชายแดน (เมาส์ควรเป็นไอคอนย้าย) และลากลงไปยังแถวถัดไป ในเมนูบริบทที่ปรากฏขึ้นเลือก "คัดลอกที่นี่เป็นรูปแบบเท่านั้น" ตอนนี้คุณควรจะใช้รูปแบบตามเงื่อนไขของคุณกับทั้งสองแถวแยก จากนั้นให้ทำต่อไปเรื่อย ๆ ยกเว้นตอนนี้คุณสามารถเลือกและคัดลอกครั้งละ 2 แถวขึ้นไป

มันไม่ใช่การยิงหนึ่งครั้งเหมือนโค้ดด้านบน แต่มันเร็วกว่าการทำทีละหนึ่งบรรทัด หวังว่านี่จะช่วยได้


0

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

สำหรับ บริษัท ของฉันมักจะบล็อกมาโครใน excel ดังนั้นจึงเหมาะกับฉัน หวังว่ามันจะช่วยคุณได้เช่นกัน

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