ცარიელი უჯრედების ამოღება დიაპაზონიდან

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

ჩვენ გვაქვს უჯრედების დიაპაზონი მონაცემებით, რომლებიც შეიცავს ცარიელ უჯრედებს:

 

ამოცანაა ამოიღოთ ცარიელი უჯრედები, დატოვოთ მხოლოდ უჯრედები ინფორმაცია.

მეთოდი 1. უხეში და სწრაფი

  1. ორიგინალური დიაპაზონის შერჩევა
  2. დააჭირეთ კლავიშს F5, შემდეგი ღილაკი მონიშნეთ (სპეციალური). ფანჯარაში, რომელიც იხსნება, აირჩიეთ ცარიელი უჯრედები(ბლანკები) და დაწკაპეთ OK.

    ცარიელი უჯრედების ამოღება დიაპაზონიდან

    დიაპაზონის ყველა ცარიელი უჯრედი არჩეულია.

  3. მენიუში ვაძლევთ ბრძანებას არჩეული უჯრედების წაშლის შესახებ: დააწკაპუნეთ მარჯვენა ღილაკით- უჯრედების წაშლა (უჯრედების წაშლა) ზევით ცვლასთან ერთად.

მეთოდი 2: მასივის ფორმულა

გამარტივებისთვის, მოდით დავასახელოთ ჩვენი სამუშაო დიაპაზონები გამოყენებით სახელის მენეჯერი (სახელი მენეჯერი) tab formula (ფორმულები) ან Excel 2003 და უფრო ძველი, მენიუ ჩასმა – სახელი – მინიჭება (ჩასმა - სახელი - განსაზღვრა)

 

დაასახელეთ დიაპაზონი B3:B10 ცარიელიადიაპაზონი D3:D10 – არცერთი ცარიელი. დიაპაზონები უნდა იყოს მკაცრად იგივე ზომის და შეიძლება განთავსდეს სადმე ერთმანეთთან შედარებით.

ახლა აირჩიეთ მეორე დიაპაზონის პირველი უჯრედი (D3) და შეიყვანეთ მასში ეს საშინელი ფორმულა:

=IF(ROW() -ROW(არა ცარიელი)+1>NOTROWS(დიახ ცარიელი)-COUNTBLANK(დიახ ცარიელი);"";INDIRECT(ADDRESS(LOWEST((IF(ცარიელი<>"",ROW(ცარიელი);ROW() + ROWS(არის ცარიელი))); LINE()-ROW(ცარიელი არ არის)+1); COLUMN(არის ცარიელი); 4)))

ინგლისურ ვერსიაში იქნება:

=IF(ROW()-ROW(NoEmpty)+1>ROWS(ცარიელი)-COUNTBLANK(ცარიელი),””,INDIRECT(ADDRESS(SMALL((IF(ცარიელი<>“”,ROW(ცარიელი),ROW() +ROWS(HaveEmpty))),ROW()-ROW(NoEmpty)+1),COLUMN(HaveEmpty),4)))

უფრო მეტიც, ის უნდა იყოს შეყვანილი მასივის ფორმულის სახით, ანუ დაჭერით ჩასმის შემდეგ შეიყვანეთ (როგორც ყოველთვის) და Ctrl + Shift + Enter. ახლა ფორმულის კოპირება შესაძლებელია ავტომატური შევსების გამოყენებით (ჩაათრიეთ შავი ჯვარი უჯრედის ქვედა მარჯვენა კუთხეში) - და ჩვენ მივიღებთ თავდაპირველ დიაპაზონს, მაგრამ ცარიელი უჯრედების გარეშე:

 

მეთოდი 3. მორგებული ფუნქცია VBA-ში

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

ამისათვის გახსენით Visual Basic Editor (ALT + F11), ჩადეთ ახალი ცარიელი მოდული (მენიუ ჩასმა – მოდული) და დააკოპირეთ ამ ფუნქციის ტექსტი იქ:

ფუნქცია NoBlanks(DataRange As Range) As Variant() Dim N როგორც Long Dim N2 როგორც Long Dim Rng როგორც დიაპაზონი Dim MaxCells როგორც Long Dim Result() როგორც Variant Dim R როგორც Long Dim C როგორც Long MaxCells = Application.WorksheetFunction.Max( _ Application.Caller.Cells.Count, DataRange.Cells.Count) ReDim Result(1 to MaxCells, 1 to 1) თითოეული Rng-ისთვის DataRange.Cells If Rng.Value <> vbNullString მაშინ N = N + 1 შედეგი(N, 1 ) = Rng.Value End If Next Rng For N2 = N + 1 To MaxCells Result(N2, 1) = vbNullString შემდეგი N2 If Application.Caller.Rows.Count = 1 მაშინ NoBlanks = Application.Transpose(Result) Else NoBlanks = შედეგი End If End ფუნქცია  

არ დაგავიწყდეთ ფაილის შენახვა და Visual Basic რედაქტორიდან Excel-ზე გადასვლა. ამ ფუნქციის გამოსაყენებლად ჩვენს მაგალითში:

  1. აირჩიეთ ცარიელი უჯრედების საკმარისი დიაპაზონი, მაგალითად F3:F10.
  2. გადადით მენიუში ჩასმა – ფუნქცია (ჩასმა - ფუნქცია)ან დააჭირეთ ღილაკს ჩასმა ფუნქცია (ფუნქციის ჩასმა) tab formula (ფორმულები) Excel-ის ახალ ვერსიებში. კატეგორიაში მომხმარებლის განსაზღვრა (მომხმარებლის განსაზღვრული) აირჩიეთ ჩვენი ფუნქცია NoBlanks.
  3. მიუთითეთ წყაროს დიაპაზონი voids (B3:B10) ფუნქციის არგუმენტად და დააჭირეთ Ctrl + Shift + Enterფუნქციის მასივის ფორმულის სახით შეყვანა.

:

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

 

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