Bir sıradan boş xanaların çıxarılması

Problemin formalaşdırılması

Bizdə boş xanalar olan verilənləri olan bir sıra hüceyrələr var:

 

Vəzifə boş xanaları çıxarmaqdan ibarətdir, yalnız məlumatları olan hüceyrələr qalır.

Metod 1. Kobud və sürətli

  1. Orijinal aralığın seçilməsi
  2. Düyməni basın F5, növbəti düymə Seçin (Xüsusi). Açılan pəncərədə seçin Boş hüceyrələr(Boşluqlar) basın OK.

    Bir sıradan boş xanaların çıxarılması

    Aralıqdakı bütün boş xanalar seçilir.

  3. Seçilmiş hüceyrələri silmək üçün menyuda əmr veririk: sağ klikləyin- Hüceyrələri silin (Hüceyrələri Sil) yuxarı sürüşmə ilə.

Metod 2: Massiv düsturu

Sadələşdirmək üçün istifadə edərək iş diapazonlarımızı adlandıraq Adı meneceri (Ad Meneceri) nişanı formula (Formullar) və ya Excel 2003 və daha köhnə versiyalarda menyu Daxil et - Ad - Təyin et (Daxil et - Ad - Müəyyən et)

 

B3:B10 diapazonunu adlandırın Boş olsun, diapazon D3:D10 – Boş yoxdur. Aralıqlar ciddi şəkildə eyni ölçüdə olmalıdır və bir-birinə nisbətən istənilən yerdə yerləşdirilə bilər.

İndi ikinci diapazonun ilk xanasını (D3) seçin və ona bu qorxulu düsturu daxil edin:

=ƏGƏR(SATIR() -SATIR(XeyrBoş)+1>NOTROWS(BəliBoş)-COUNTBLANK(BəliBoş);””;DOLAYI(ÜNVAN(ƏN AŞAĞI((ƏGƏR(Boş<>“",SATIR(Boş);SATIR() + SATIRLAR(Boş Var))); LINE()-SATIR(Boş Yoxdur)+1); SÜTUN(Boş Var); 4)))

İngilis versiyasında belə olacaq:

=ƏGƏR(SATIR()-SATIR(Boş)+1>SATIRLAR(Boş)-SAYIBLANK(Boş),””,DOLAYI(ÜNVAN(KİÇİK((ƏGƏR(Boş<>“",SATIR(Boş),SIR() +SIRLAR(Boş Var))),SATIR()-SATIR(Boş Yox)+1),SÜTUN(Boş Var),4)))

Üstəlik, massiv düsturu kimi daxil edilməlidir, yəni yapışdırdıqdan sonra basın Daxil edin (hər zamankı kimi) və Ctrl + Shift + Enter. İndi düstur avtomatik tamamlamadan istifadə edərək kopyalana bilər (xananın aşağı sağ küncündəki qara xaçı dartın) – və biz orijinal diapazonu əldə edəcəyik, lakin boş xanalar olmadan:

 

Metod 3. VBA-da xüsusi funksiya

Boş hüceyrələrin diapazonlardan çıxarılması prosedurunu tez-tez təkrarlamalı olduğunuza dair bir şübhə varsa, boş hüceyrələrin çıxarılması üçün öz funksiyanızı bir dəfə standart dəstə əlavə etmək və bütün sonrakı hallarda istifadə etmək daha yaxşıdır.

Bunu etmək üçün Visual Basic Redaktorunu açın (ALT + F11), yeni boş modul daxil edin (menyu Daxil et - Modul) və bu funksiyanın mətnini ora köçürün:

Funksiya NoBlanks(DataRange As Range) Variant kimi () Dim N Kimi Uzun Tutqun N2 kimi Uzun Dim Rng Diapazon kimi Dim MaxCells Uzun Dim Nəticə() Variant kimi Dim R Kimi Uzun Dim C Uzunluğu MaxCells = Application.WorksheetFunction.Max( _ Application.Caller.Cells.Count, DataRange.Cells.Count) ReDim Nəticəsi(1-dən MaxCells, 1-dən 1-ə) DataRange.Cells-də Hər Rng üçün Əgər Rng.Value <> vbNullString O zaman N = N + 1 Nəticə(N, 1) ) = Rng.Value End If Next Rng For N2 = N + 1 For MaxCells Result(N2, 1) = vbNullString Next N2 If Application.Caller.Rows.Count = 1 Onda NoBlanks = Application.Transpose(Nəticə) Əks halda NoBlanks = Nəticə End If End Funksiya  

Faylı saxlamağı və Visual Basic Redaktorundan Excel-ə qayıtmağı unutmayın. Bu funksiyanı nümunəmizdə istifadə etmək üçün:

  1. Kifayət qədər boş xanalar seçin, məsələn, F3:F10.
  2. Menyuya gedin Daxil et - Funksiya (Daxil et — Funksiya)və ya düyməni basın Funksiya daxil edin (Funksiya daxil edin) nişanı formula (Formullar) Excel-in daha yeni versiyalarında. Kateqoriyada Müəyyən edilmiş istifadəçi (Müəyyən edilmiş istifadəçi) funksiyamızı seçin NoBlanks.
  3. Funksiya arqumenti kimi boşluqlarla (B3:B10) mənbə diapazonunu göstərin və basın Ctrl + Shift + Enterfunksiyanı massiv düsturu kimi daxil etmək üçün.

:

  • Sadə bir makro ilə cədvəldəki bütün boş sətirləri bir anda silmək
  • PLEX əlavəsindən istifadə edərək iş vərəqindəki bütün boş sətirləri bir anda silmək
  • Bütün boş xanaları tez doldurun
  • Makroslar nədir, VBA-da makro kodu hara daxil etmək olar

 

Cavab yaz