Ауқымнан бос ұяшықтарды жою

Мәселені тұжырымдау

Бізде бос ұяшықтарды қамтитын деректері бар ұяшықтар ауқымы бар:

 

Тапсырма – ақпараты бар ұяшықтарды ғана қалдырып, бос ұяшықтарды жою.

1-әдіс. Дөрекі және жылдам

  1. Бастапқы диапазонды таңдау
  2. Пернені басыңыз F5, келесі түйме Назар аударыңыз (Арнайы). Ашылған терезеде таңдаңыз Бос ұяшықтар(Бос орындар) және нұқыңыз OK.

    Ауқымнан бос ұяшықтарды жою

    Ауқымдағы барлық бос ұяшықтар таңдалған.

  3. Мәзірде таңдалған ұяшықтарды жою пәрменін береміз: тінтуірдің оң жақ түймешігімен басыңыз- Ұяшықтарды жою (Ұяшықтарды жою) жоғары ығысуымен.

2-әдіс: Массив формуласы

Жеңілдету үшін жұмыс диапазонымызды пайдаланып атаймыз Аты менеджері (Аты менеджері) қойындысы формула (Формулалар) немесе Excel 2003 және одан жоғары нұсқаларында мәзір Кірістіру - Атау - Тағайындау (Кірістіру — Атау — Анықтау)

 

B3:B10 ауқымын атаңыз Бос болыңыз, диапазон D3:D10 – ЕшбіріБос. Ауқымдардың өлшемдері бірдей болуы керек және бір-біріне қатысты кез келген жерде орналасуы мүмкін.

Енді екінші диапазонның бірінші ұяшығын (D3) таңдап, оған осы қорқынышты формуланы енгізіңіз:

=ЕГЕР(ЖОЛ() -ҚОЛ(ЖоқБос)+1>ЖОЛДАРЫ(ИәБос)-СОЙБОС(ИәБос);””;ЖАНАМА(МЕКЕНТЕГІ(ЕҢ ТӨМЕН((ЕГЕР(Бос<>“",ҚОЛ(Бос);ҚОЛ()) + ROWS(бос бар))); LINE()-ROW(бос жоқ)+1); БАҒАН(бос бар); 4)))

Ағылшын тіліндегі нұсқасында ол келесідей болады:

=ЕГЕР(ЖОЛ()-ҚОЛ(Бос)+1>ЖОЛДАР(Бос)-СОЙБОС(Бос),””,ЖАНА(АДРЕС(КІШ((ЕГЕР(Бос<>“",ҚОЛ(Бос),ҚОЛ()) +ROWS(Boş бар))),ROW()-ROW(Жоқ)+1), БАҒАН(Бос),4)))

Сонымен қатар, оны массив формуласы ретінде енгізу керек, яғни қоюдан кейін басыңыз кіру (әдеттегідей) және Ctrl + Shift + Enter пернелер тіркесімі. Енді формуланы автотолтыру арқылы көшіруге болады (ұяшықтың төменгі оң жақ бұрышындағы қара крестті сүйреңіз) – және біз бастапқы ауқымды аламыз, бірақ бос ұяшықтарсыз:

 

3-әдіс. VBA-дағы теңшелетін функция

Егер ауқымдардан бос ұяшықтарды жою процедурасын жиі қайталауға тура келеді деген күдік болса, стандартты жиынтыққа бос ұяшықтарды жоюға арналған өзіңіздің функцияңызды бір рет қосып, оны келесі барлық жағдайларда қолданған дұрыс.

Ол үшін Visual Basic редакторын ашыңыз (ALT + F11), жаңа бос модульді салыңыз (мәзір Кірістіру – модуль) және осы функцияның мәтінін сол жерге көшіріңіз:

Функция NoBlanks(DataRange ретінде диапазон) Нұсқа ретінде() Dim N ретінде ұзын Dim N2 ұзын Dim Rng диапазон ретінде Dim MaxCells ретінде ұзақ күңгірт Нәтиже() нұсқа ретінде Dim R ретінде ұзын Dim C ретінде ұзын MaxCells = Application.WorksheetFunction.Max( _) Application.Caller.Cells.Count, DataRange.Cells.Count) ReDim нәтижесі(1-ден MaxCells, 1-ден 1-ге дейін) DataRange.Cells ішіндегі әрбір Rng үшін Егер Rng.Value <> vbNullString болса, онда N = N + 1 нәтиже (N, 1) ) = Rng.Value End If Next Rng For N2 = N + 1 For MaxCells Нәтиже(N2, 1) = vbNullString Келесі N2 Егер Application.Caller.Rows.Count = 1 Содан кейін NoBlanks = Application.Transpose (Нәтиже) Басқа NoBlanks = Нәтиже End If End функциясы  

Файлды сақтауды және Visual Basic өңдегішінен Excel бағдарламасына қайта ауысуды ұмытпаңыз. Бұл функцияны біздің мысалда пайдалану үшін:

  1. Бос ұяшықтардың жеткілікті ауқымын таңдаңыз, мысалы, F3:F10.
  2. Мәзірге өтіңіз Кірістіру – Функция (Кірістіру — Функция)немесе түймені басыңыз Функцияны енгізу (Кірістіру функциясы) қойындысы формула (Формулалар) Excel бағдарламасының жаңа нұсқаларында. Санат бойынша Пайдаланушы анықтаған (Пайдаланушы анықтаған) функциямызды таңдаңыз Бос орындар жоқ.
  3. Функция аргументі ретінде бос жерлері бар бастапқы диапазонды (B3:B10) көрсетіп, түймесін басыңыз Ctrl + Shift + Enter пернелер тіркесіміфункцияны массив формуласы ретінде енгізу үшін.

:

  • Кестедегі барлық бос жолдарды қарапайым макроспен бірден жою
  • PLEX қондырмасының көмегімен жұмыс парағындағы барлық бос жолдарды бірден жою
  • Барлық бос ұяшықтарды жылдам толтырыңыз
  • Макростар дегеніміз не, VBA-да макрокодты қайда енгізу керек

 

пікір қалдыру