არასაჭირო სტრიქონების და სვეტების დამალვა/ჩვენება

პრობლემის ფორმულირება

დავუშვათ, გვაქვს ისეთი მაგიდა, რომლითაც ყოველდღე გვიწევს „ცეკვა“:

 

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. დაჯგუფება

თუ აირჩევთ რამდენიმე სტრიქონს ან სვეტს და შემდეგ აირჩიეთ მენიუდან მონაცემები – ჯგუფი და სტრუქტურა – ჯგუფი (მონაცემები — ჯგუფი და მონახაზი — ჯგუფი), შემდეგ ისინი ჩასმული იქნება კვადრატულ ფრჩხილში (ჯგუფურად). გარდა ამისა, ჯგუფები შეიძლება მოთავსდეს ერთმანეთში (დაშვებულია 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 'Iterate ყველა უჯრედზე პირველ რიგში თუ cell.Value = "x " შემდეგ უჯრედი .EntireColumn.Hidden = True 'თუ x უჯრედშია - დამალე სვეტი შემდეგი თითოეული უჯრედისთვის ActiveSheet.UsedRange.Columns(1). უჯრედები 'გადიან პირველი სვეტის ყველა უჯრედს If cell.Value = "x" შემდეგ cell.EntireRow.Hidden = True 'თუ x უჯრედში - სტრიქონის დამალვა შემდეგი Application.ScreenUpdating = True End Sub Sub Show() Columns.Hidden = False 'გაუქმება ყველა დამალული სტრიქონი და სვეტი Rows.Hidden = False End Sub  

როგორც თქვენ ალბათ მიხვდით, მაკრო დამალვა მალავს და მაკრო შოუ - აჩვენებს უკან ეტიკეტირებულ რიგებს და სვეტებს. თუ სასურველია, მაკროებს შეიძლება მივანიჭოთ ცხელი კლავიშები (Alt + F8 და ღილაკი პარამეტრები), ან შექმენით ღილაკები პირდაპირ ფურცელზე, რომ გაუშვათ ისინი ჩანართიდან დეველოპერი – ჩასმა – ღილაკი (დეველოპერი - ჩასმა - ღილაკი).

მეთოდი 4. რიგების/სვეტების დამალვა მოცემული ფერით

ვთქვათ, რომ ზემოთ მოყვანილ მაგალითში ჩვენ, პირიქით, გვინდა დავმალოთ ჯამები, ანუ იისფერი და შავი რიგები და ყვითელი და მწვანე სვეტები. შემდეგ ჩვენი წინა მაკრო ოდნავ უნდა შეიცვალოს, „x“-ის არსებობის შემოწმების ნაცვლად, შევსების ფერის შემთხვევით შერჩეულ უჯრედებთან შესატყვისის დამატებით:

Sub HideByColor() მბზინავი უჯრედი როგორც დიაპაზონის აპლიკაცია.ScreenUpdating = False თითოეული უჯრედისთვის ActiveSheet.UsedRange.Rows(2).Cells If cell.Interior.Color = Range("F2").Interior.Color შემდეგ cell.EntireColumn.Hidden = True If cell.Interior.Color = Range("K2").Interior.Color შემდეგ cell.EntireColumn.Hidden = True შემდეგი თითოეული უჯრედისთვის ActiveSheet.UsedRange.Columns(2).Cells If cell.Interior.Color = დიაპაზონი ("D6").Interior.Color შემდეგ cell.EntireRow.Hidden = True If cell.Interior.Color = Range("B11").Interior.Color შემდეგ cell.EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

თუმცა, არ უნდა დავივიწყოთ ერთი გაფრთხილება: ეს მაკრო მუშაობს მხოლოდ იმ შემთხვევაში, თუ წყაროს ცხრილის უჯრედები შეივსება ფერით ხელით და არა პირობითი ფორმატირების გამოყენებით (ეს არის შინაგანი.Color თვისების შეზღუდვა). ასე, მაგალითად, თუ თქვენ ავტომატურად მონიშნეთ ყველა გარიგება თქვენს ცხრილში, სადაც რიცხვი 10-ზე ნაკლებია პირობითი ფორმატირების გამოყენებით:

არასაჭირო სტრიქონების და სვეტების დამალვა/ჩვენება

... და გსურთ მათი დამალვა ერთი მოძრაობით, მაშინ წინა მაკრო უნდა "დასრულდეს". თუ გაქვთ Excel 2010-2013, მაშინ შეგიძლიათ გამოხვიდეთ ქონების ნაცვლად შინაგან საქმეთა ქონება DisplayFormat.ინტერიერი, რომელიც გამოსცემს უჯრედის ფერს, მიუხედავად იმისა, თუ როგორ იყო დაყენებული. ლურჯი ხაზების დამალვის მაკრო შეიძლება ასე გამოიყურებოდეს:

ქვე HideByConditionalFormattingColor() ჩაბნელებული უჯრედი როგორც დიაპაზონის აპლიკაცია.ScreenUpdating = False ActiveSheet.UsedRange.Columns(1) თითოეული უჯრედისთვის.Cells If cell.DisplayFormat.Interior.Color = Range("G2").DisplayColor.Interior. .EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

უჯრედი G2 აღებულია ნიმუშად ფერების შედარებისთვის. სამწუხაროდ ქონება DisplayFormat Excel-ში გამოჩნდა მხოლოდ 2010 წლის ვერსიიდან დაწყებული, ასე რომ, თუ თქვენ გაქვთ Excel 2007 ან უფრო ძველი, მოგიწევთ სხვა გზების მოძიება.

  • რა არის მაკრო, სად ჩავსვათ მაკრო კოდი, როგორ გამოვიყენოთ ისინი
  • ავტომატური დაჯგუფება მრავალდონიან სიებში

 

დატოვე პასუხი