การซ่อน/แสดงแถวและคอลัมน์ที่ไม่จำเป็น

การกำหนดปัญหา

สมมติว่าเรามีโต๊ะที่เราต้อง "เต้น" ด้วยทุกวัน:

 

To whom the table seems small – mentally multiply it twenty times by area, adding a couple more blocks and two dozen large cities. 

ภารกิจคือการลบแถวและคอลัมน์ที่ไม่จำเป็นสำหรับการทำงานออกจากหน้าจอชั่วคราว กล่าวคือ 

  • ซ่อนรายละเอียดตามเดือน เหลือแต่ไตรมาส
  • ซ่อนยอดตามเดือนและควอเตอร์ เหลือแต่ยอดรวมครึ่งปี
  • ซ่อนเมืองที่ไม่จำเป็นในขณะนี้ (ฉันทำงานในมอสโก – ทำไมฉันควรเห็นเซนต์ปีเตอร์สเบิร์ก) ฯลฯ

ในชีวิตจริงมีตารางตัวอย่างมากมาย

วิธีที่ 1: การซ่อนแถวและคอลัมน์

วิธีการนี้ตรงไปตรงมาเป็นพื้นฐานและไม่สะดวกมาก แต่สามารถพูดได้สองคำ แถวหรือคอลัมน์ที่เลือกไว้ก่อนหน้านี้บนแผ่นงานสามารถซ่อนได้โดยการคลิกขวาที่ส่วนหัวของคอลัมน์หรือแถวแล้วเลือกคำสั่งจากเมนูบริบท ซ่อน (ซ่อน):

 

สำหรับการแสดงผลแบบย้อนกลับ ให้เลือกแถว/คอลัมน์ที่อยู่ติดกัน และคลิกขวาเลือกจากเมนูตามลำดับ แสดงผล (เลิกซ่อน).

ปัญหาคือคุณต้องจัดการกับแต่ละคอลัมน์และแถวทีละรายการซึ่งไม่สะดวก

วิธีที่ 2. การจัดกลุ่ม

หากคุณเลือกหลายแถวหรือหลายคอลัมน์แล้วเลือกจากเมนู ข้อมูล – กลุ่มและโครงสร้าง – Group (ข้อมูล — กลุ่มและเค้าร่าง — กลุ่ม)จากนั้นจะอยู่ในวงเล็บเหลี่ยม (จัดกลุ่ม) ยิ่งไปกว่านั้น กลุ่มสามารถซ้อนกันได้ (อนุญาตให้ซ้อนได้สูงสุด 8 ระดับ):

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

วิธีการซ่อนข้อมูลที่ไม่จำเป็นนี้สะดวกกว่ามาก – คุณสามารถคลิกที่ปุ่มด้วยปุ่ม “+" หรือ "-“ หรือบนปุ่มที่มีระดับการจัดกลุ่มตัวเลขที่มุมซ้ายบนของแผ่นงาน – จากนั้นกลุ่มทั้งหมดของระดับที่ต้องการจะยุบหรือขยายพร้อมกัน

นอกจากนี้ ถ้าตารางของคุณมีแถวหรือคอลัมน์สรุปที่มีฟังก์ชันการรวมเซลล์ข้างเคียงนั่นคือโอกาส (ไม่จริง 100%) ที่ Excel เขาจะสร้างกลุ่มที่จำเป็นทั้งหมด ในตารางด้วยการเคลื่อนไหวเดียว – ผ่านเมนู ข้อมูล – กลุ่มและโครงสร้าง – สร้างโครงสร้าง (ข้อมูล — กลุ่มและเค้าร่าง — สร้างเค้าร่าง). น่าเสียดายที่ฟังก์ชั่นดังกล่าวทำงานอย่างคาดเดาไม่ได้และบางครั้งก็ไร้สาระอย่างสมบูรณ์ในตารางที่ซับซ้อน แต่คุณสามารถลอง

ใน Excel 2007 และใหม่กว่า ความสุขทั้งหมดนี้อยู่ในแท็บ ข้อมูล (วันที่) ในกลุ่ม   โครงสร้าง (เค้าร่าง):

วิธีที่ 3 การซ่อนแถว/คอลัมน์ที่ทำเครื่องหมายด้วยแมโคร

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

ตอนนี้ มาเปิดตัวแก้ไข Visual Basic (ALT + F11) แทรกโมดูลเปล่าใหม่ลงในหนังสือของเรา (เมนู แทรก – โมดูล) และคัดลอกข้อความของมาโครง่ายๆ สองรายการที่นั่น:

Sub Hide() Dim cell As Range Application.ScreenUpdating = False 'ปิดการใช้งานการอัพเดตหน้าจอเพื่อเพิ่มความเร็วสำหรับแต่ละเซลล์ใน ActiveSheet.UsedRange.Rows(1).Cells ' วนซ้ำทุกเซลล์ในแถวแรก ถ้า cell.Value = "x จากนั้น เซลล์ .EntireColumn.Hidden = True 'ถ้าอยู่ในเซลล์ x - ซ่อนคอลัมน์ ถัดไป สำหรับแต่ละเซลล์ใน ActiveSheet.UsedRange.Columns(1).Cells 'จะผ่านทุกเซลล์ของคอลัมน์แรก ถ้า cell.Value = "x" แล้ว cell.EntireRow.Hidden = True 'ถ้าอยู่ในเซลล์ x - ซ่อนแถว Next Application.ScreenUpdating = True End Sub Sub Show() Columns.Hidden = False 'ยกเลิกแถวและคอลัมน์ที่ซ่อนทั้งหมด Rows.Hidden = False End Sub  

อย่างที่คุณอาจเดาได้ว่ามาโคร ซ่อน ซ่อนและมาโคร แสดง – แสดงกลับแถวและคอลัมน์ที่มีป้ายกำกับ หากต้องการ สามารถกำหนดปุ่มลัดให้มาโครได้ (Alt + F8 และปุ่ม พารามิเตอร์) หรือสร้างปุ่มบนแผ่นงานโดยตรงเพื่อเปิดใช้งานจากแท็บ นักพัฒนา – แทรก – ปุ่ม (ผู้พัฒนา — แทรก — ปุ่ม).

วิธีที่ 4. การซ่อนแถว/คอลัมน์ด้วยสีที่กำหนด

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

Sub HideByColor() Dim cell As Range Application.ScreenUpdating = False สำหรับแต่ละเซลล์ใน ActiveSheet.UsedRange.Rows(2).Cells ถ้า cell.Interior.Color = Range("F2").Interior.Color แล้ว cell.EntireColumn.Hidden = True ถ้า cell.Interior.Color = Range("K2").Interior.Color แล้ว cell.EntireColumn.Hidden = True Next สำหรับแต่ละเซลล์ใน ActiveSheet.UsedRange.Columns(2).Cells If cell.Interior.Color = Range ("D6") .Interior.Color แล้ว cell.EntireRow.Hidden = True ถ้า cell.Interior.Color = Range("B11").Interior.Color แล้ว cell.EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

อย่างไรก็ตาม เราต้องไม่ลืมข้อแม้หนึ่งประการ: มาโครนี้ใช้งานได้ก็ต่อเมื่อเซลล์ของตารางต้นฉบับเต็มไปด้วยสีด้วยตนเอง และไม่ใช้การจัดรูปแบบตามเงื่อนไข (นี่เป็นข้อจำกัดของคุณสมบัติ Interior.Color) ตัวอย่างเช่น หากคุณเน้นดีลทั้งหมดในตารางของคุณโดยอัตโนมัติซึ่งมีตัวเลขน้อยกว่า 10 โดยใช้การจัดรูปแบบตามเงื่อนไข:

การซ่อน/แสดงแถวและคอลัมน์ที่ไม่จำเป็น

… และคุณต้องการซ่อนพวกมันในการเคลื่อนไหวเดียว จากนั้นมาโครก่อนหน้าจะต้อง "เสร็จสิ้น" หากคุณมี Excel 2010-2013 คุณสามารถใช้งานแทนคุณสมบัติได้ ภายใน คุณสมบัติ DisplayFormat.ภายในซึ่งแสดงสีของเซลล์ไม่ว่าจะตั้งค่าไว้อย่างไร มาโครเพื่อซ่อนเส้นสีน้ำเงินอาจมีลักษณะดังนี้:

Sub HideByConditionalFormattingColor() Dim cell As Range Application.ScreenUpdating = False สำหรับแต่ละเซลล์ใน ActiveSheet.UsedRange.Columns(1).Cells ถ้า cell.DisplayFormat.Interior.Color = Range("G2")).DisplayFormat.Interior.Color แล้ว เซลล์ .EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

เซลล์ G2 ถูกนำมาเป็นตัวอย่างสำหรับการเปรียบเทียบสี น่าเสียดายที่ทรัพย์สิน รูปแบบการแสดงผล ปรากฏใน Excel โดยเริ่มจากเวอร์ชัน 2010 เท่านั้น ดังนั้นหากคุณมี Excel 2007 หรือเก่ากว่า คุณจะต้องคิดหาวิธีอื่น

  • มาโครคืออะไร ใส่โค้ดมาโครได้ที่ไหน ใช้งานอย่างไร
  • การจัดกลุ่มอัตโนมัติในรายการหลายระดับ

 

เขียนความเห็น