Bir qatordan bo'sh hujayralarni olib tashlash

Muammoni shakllantirish

Bizda bo'sh hujayralarni o'z ichiga olgan ma'lumotlarga ega hujayralar qatori mavjud:

 

Vazifa faqat ma'lumotga ega bo'lgan hujayralarni qoldirib, bo'sh hujayralarni olib tashlashdir.

Usul 1. Qo'pol va tez

  1. Asl diapazonni tanlash
  2. Tugmani bosing F5, keyingi tugma ta'kidlash (Maxsus). Ochilgan oynada tanlang Bo'sh hujayralar(Blankalar) bosing OK.

    Bir qatordan bo'sh hujayralarni olib tashlash

    Diapazondagi barcha bo'sh katakchalar tanlangan.

  3. Menyuda tanlangan katakchalarni o'chirish buyrug'ini beramiz: o'ng tugmasini bosing- Hujayralarni o'chirish (Hujayralarni o'chirish) yuqoriga siljish bilan.

2-usul: massiv formulasi

Soddalashtirish uchun, keling, ish diapazonlarimizni foydalanib nomlaylik Ism menejeri (Ism menejeri) tab formula (formulalar) yoki Excel 2003 va undan yuqori versiyalarida menyu Qo'shish - Ism - tayinlash (Qo'shish - Ism - Aniqlash)

 

B3:B10 diapazonini nomlang Empty, diapazon D3:D10 – Yo'q. Diapazonlar qat'iy bir xil o'lchamda bo'lishi kerak va ular bir-biriga nisbatan har qanday joyda joylashgan bo'lishi mumkin.

Endi ikkinchi diapazonning birinchi katakchasini (D3) tanlang va unga qo'rqinchli formulani kiriting:

=AGAR(QATR() -QATR(Yoʻq)+1>NOTROWS(HaEmpty)-COUNTBLANK(HaEmpty);””;BILOSHIY(MANZIL(ENG PAST((AGAR(Boʻsh<>“",QATIR(Boʻsh);QATR() + QATLAR(Bo'sh bor))); LINE()-QATR(Bo'sh yo'q)+1); USTUN(Bo'sh bor); 4)))

Inglizcha versiyada u quyidagicha bo'ladi:

=AGAR(QATR()-QATR(Bo'sh)+1>QATRLAR(Bo'sh)-COUNTBLANK(Bo'sh),””,BILOSHIY(MANZIL(KICHIK((AGAR(Bo'sh<>“",QATR(Bo'sh),QAT() +ROWS(HaveEmpty))),ROW()-ROW(NoEmpty)+1),COLUMN(HaveEmpty),4)))

Bundan tashqari, u massiv formulasi sifatida kiritilishi kerak, ya'ni joylashtirishdan keyin bosing kiriting (odatdagidek) va Ctrl + Shift + Enter tugmalarini bosing. Endi formulani avtomatik to'ldirish yordamida nusxalash mumkin (hujayraning pastki o'ng burchagidagi qora xochni torting) - va biz asl diapazonni olamiz, lekin bo'sh katakchalarsiz:

 

3-usul. VBA da moslashtirilgan funksiya

Agar siz diapazonlardan bo'sh hujayralarni olib tashlash tartibini tez-tez takrorlashingiz kerak bo'lsa, unda standart to'plamga bo'sh hujayralarni olib tashlash uchun o'zingizning funksiyangizni bir marta qo'shishingiz va undan keyingi barcha holatlarda foydalanish yaxshiroqdir.

Buning uchun Visual Basic muharririni oching (ALT + F11), yangi bo'sh modulni joylashtiring (menyu Qo'shish - modul) va ushbu funktsiyaning matnini u erga ko'chiring:

Funktsiya NoBlanks(DataRange As Range) As Variant() Dim N Kabi Long Dim N2 Long Dim Rng As Long Dim MaxCells As Long Dim Natija() As Variant Dim R kabi Long Dim C kabi Long MaxCells = Application.WorksheetFunction.Max( _ Application.Caller.Cells.Count, DataRange.Cells.Count) ReDim Natijasi(1 dan MaxCellsgacha, 1 dan 1 gacha) DataRange.Cells ichidagi har bir qo'ng'iroq uchun Agar Rng.Value <> vbNullString bo'lsa, N = N + 1 Natija (N, 1) ) = Rng.Value End If Next Rng For N2 = N + 1 To MaxCells Result(N2, 1) = vbNullString Next N2 If Application.Caller.Rows.Count = 1 Keyin NoBlanks = Application.Transpose(Natija) Aks holda NoBlanks = Natija End If End funksiyasi  

Faylni saqlashni va Visual Basic muharriridan Excelga qaytishni unutmang. Bizning misolimizda ushbu funktsiyadan foydalanish uchun:

  1. Bo'sh kataklarning etarli diapazonini tanlang, masalan, F3: F10.
  2. Menyuga o'ting Qo'shish - Funktsiya (Qo'shish - Funktsiya)yoki tugmani bosing Funktsiyani kiritish (Funktsiyani kiritish) tab formula (formulalar) Excelning yangi versiyalarida. Kategoriyada Foydalanuvchi aniqlangan (Foydalanuvchi tomonidan belgilangan) funksiyamizni tanlang Nobelliklar.
  3. Funktsiya argumenti sifatida bo'shliqlar bilan manba diapazonini belgilang (B3:B10) va bosing Ctrl + Shift + Enter tugmalarini bosingfunktsiyani massiv formulasi sifatida kiritish uchun.

:

  • Oddiy makros yordamida jadvaldagi barcha bo'sh qatorlarni birdaniga o'chirish
  • PLEX plaginidan foydalanib, bir vaqtning o'zida ishchi varaqdagi barcha bo'sh qatorlarni olib tashlash
  • Barcha bo'sh kataklarni tezda to'ldiring
  • Makroslar nima, VBA-da makro kodni qaerga kiritish kerak

 

Leave a Reply