Bir aralıktaki boş hücreleri kaldırma

Sorunun formülasyonu

Boş hücreler içeren verilere sahip bir dizi hücremiz var:

 

Görev, boş hücreleri kaldırmak ve yalnızca bilgi içeren hücreleri bırakmaktır.

Yöntem 1. Kaba ve hızlı

  1. Orijinal aralığı seçme
  2. Tuşuna basın F5, sonraki düğmesi Vurgulamak (Özel). Açılan pencerede seçin Boş hücreler(Boşluklar) ve tıklayın OK.

    Bir aralıktaki boş hücreleri kaldırma

    Aralıktaki tüm boş hücreler seçilir.

  3. Menüde seçili hücreleri silmek için bir komut veriyoruz: sağ tıklayın- Hücreleri sil (Hücreleri Sil) yukarı kaydırma ile.

Yöntem 2: Dizi Formülü

Basitleştirmek için, kullanarak çalışma aralıklarımızı adlandıralım. İsim Yöneticisi (İsim Yöneticisi) çıkıntı formül (Formüller) veya Excel 2003 ve daha eski sürümlerde menü Ekle – Ad – Ata (Ekle — Ad — Tanımla)

 

Aralığı B3:B10 olarak adlandırın Boş, aralık D3:D10 – YokBoş. Aralıklar kesinlikle aynı boyutta olmalıdır ve birbirlerine göre herhangi bir yere yerleştirilebilir.

Şimdi ikinci aralığın (D3) ilk hücresini seçin ve içine bu korkutucu formülü girin:

=IF(ROW() -ROW(NoEmpty)+1>NOTROWS(YesEmpty)-COUNTBLANK(YesEmpty);””;DOLAYLI(ADRES(DÜŞÜK((EĞER(Boş<>“”,ROW(Boş);ROW()) + SATIRLAR(Boş Var)); SATIR()-SATIR(Boş Yok)+1); SÜTUN(Boş Var); 4)))

İngilizce versiyonda şöyle olacak:

=IF(ROW()-ROW(NoEmpty)+1>ROWS(Boş)-BOŞLUK(Boş),””,DOLAYLI(ADRES(KÜÇÜK((EĞER(Boş<>“”,ROW(Boş),ROW()) +ROWS(HaveEmpty))),ROW()-ROW(Boş Yok)+1),SÜTUN(Boş Var),4)))

Ayrıca dizi formülü olarak girilmelidir yani yapıştırdıktan sonra basın Keşfet (her zamanki gibi) ve Ctrl + Üst Karakter + Enter. Artık formül otomatik tamamlama kullanılarak kopyalanabilir (hücrenin sağ alt köşesindeki siyah çarpıyı sürükleyin) - ve orijinal aralığı elde edeceğiz, ancak boş hücreler olmadan:

 

Yöntem 3. VBA'da özel işlev

Aralıklardan boş hücreleri çıkarma prosedürünü sık sık tekrarlamanız gerekeceğine dair bir şüphe varsa, boş hücreleri standart kümeye bir kez çıkarmak için kendi işlevinizi eklemek ve sonraki tüm durumlarda kullanmak daha iyidir.

Bunu yapmak için Visual Basic Düzenleyicisini açın (ALT + F11), yeni bir boş modül yerleştirin (menü Ekle – Modül) ve bu işlevin metnini buraya kopyalayın:

NoBlanks(Aralık Olarak Veri Aralığı) Varyant Olarak() Dim N Uzun Dim N2 Uzun Dim Rng Aralık Olarak Dim MaxCells Uzun Dim Result() Varyant Olarak Dim R Uzun Dim C Uzun MaxCells = Application.WorksheetFunction.Max( _ Application.Caller.Cells.Count, DataRange.Cells.Count) ReDim Sonucu(1 To MaxCells, 1 To 1) DataRange.Cells İçindeki Her Rng İçin Rng.Value <> vbNullString O Zaman N = N + 1 Sonuç(N, 1) ) = Rng.Value End If Sonraki Rng For N2 = N + 1 To MaxCells Result(N2, 1) = vbNullString Next N2 If Application.Caller.Rows.Count = 1 O halde NoBlanks = Application.Transpose(Sonuç) Aksi takdirde NoBlanks = Sonuç End If End İşlevi  

Dosyayı kaydetmeyi ve Visual Basic Düzenleyici'den Excel'e geri dönmeyi unutmayın. Bu işlevi örneğimizde kullanmak için:

  1. Yeterli bir boş hücre aralığı seçin, örneğin F3:F10.
  2. Menüye git Ekle – İşlev (Ekle — İşlev)veya düğmesine tıklayın Ekle işlevi (İşlev Ekle) çıkıntı formül (Formüller) Excel'in daha yeni sürümlerinde. Kategoride Kullanıcı Tanımlı (Kullanıcı tanımlı) fonksiyonumuzu seç Boşluklar.
  3. İşlev argümanı olarak boşluklu kaynak aralığını (B3:B10) belirtin ve Ctrl + Üst Karakter + Enterişlevi dizi formülü olarak girmek için.

:

  • Basit bir makro ile bir tablodaki tüm boş satırları aynı anda silme
  • PLEX eklentisini kullanarak bir çalışma sayfasındaki tüm boş satırları aynı anda kaldırma
  • Tüm boş hücreleri hızlıca doldurun
  • Makrolar nedir, VBA'da makro kodu nereye eklenir

 

Yorum bırak