Դատարկ բջիջների հեռացում տիրույթից

Խնդրի ձևակերպում

Մենք ունենք դատարկ բջիջներ պարունակող տվյալներ ունեցող բջիջների մի շարք.

 

Խնդիրը դատարկ բջիջները հեռացնելն է՝ տեղեկատվությամբ թողնելով միայն բջիջները:

Մեթոդ 1. Կոպիտ և արագ

  1. Ընտրելով բնօրինակ միջակայքը
  2. Սեղմեք ստեղնը F5, հաջորդ կոճակը Առաջ քաշել (Հատուկ). Բացվող պատուհանում ընտրեք Դատարկ բջիջներ(Բլանկներ) եւ սեղմեք OK.

    Դատարկ բջիջների հեռացում տիրույթից

    Ընտրված են տիրույթի բոլոր դատարկ բջիջները:

  3. Մենք ընտրացանկից ընտրված բջիջները ջնջելու հրաման ենք տալիս՝ սեղմեք աջ- Ջնջել բջիջները (Ջնջել բջիջները) դեպի վեր տեղաշարժով:

Մեթոդ 2. Զանգվածի բանաձև

Պարզեցնելու համար եկեք անվանենք մեր աշխատանքային տիրույթները՝ օգտագործելով Անունը կառավարիչ (Անուն կառավարիչ) ականջակալ ֆորմուլա (բանաձևեր) կամ, Excel 2003 և ավելի հին տարբերակներում, ցանկը Տեղադրել – Անուն – Նշանակել (Տեղադրել — Անուն — Սահմանել)

 

Անվանեք միջակայքը B3:B10 HaveEmpty, միջակայք D3:D10 – Ոչ Դատարկ. Շրջանակները պետք է լինեն խիստ նույն չափերը և կարող են տեղակայվել միմյանց նկատմամբ ցանկացած վայրում:

Այժմ ընտրեք երկրորդ միջակայքի առաջին բջիջը (D3) և մուտքագրեք այս սարսափելի բանաձևը դրա մեջ.

=IF(ROW() -ROW(NoEmpty)+1>NOTROWS(YesEmpty)-COUNTBLANK(YesEmpty);””;INDIRECT(ADDRESS(LOWEST((IF(Empty<>“”,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 + Մուտք. Այժմ բանաձևը կարող է պատճենվել ավտոմատ լրացման միջոցով (քաշեք սև խաչը բջջի ստորին աջ անկյունում) – և մենք կստանանք սկզբնական տիրույթը, բայց առանց դատարկ բջիջների.

 

Մեթոդ 3. Հատուկ գործառույթ VBA-ում

Եթե ​​կասկած կա, որ դուք հաճախ ստիպված կլինեք կրկնել տիրույթներից դատարկ բջիջները հեռացնելու կարգը, ապա ավելի լավ է մեկ անգամ ստանդարտ հավաքածուին ավելացնել դատարկ բջիջները հեռացնելու ձեր սեփական գործառույթը և այն օգտագործել բոլոր հետագա դեպքերում:

Դա անելու համար բացեք Visual Basic խմբագիր (ALT + F11), տեղադրեք նոր դատարկ մոդուլ (մենյու Ներդիր – մոդուլ) և պատճենեք այս ֆունկցիայի տեքստը այնտեղ.

Function NoBlanks(DataRange As Range) As Variant() Dim N As Long Dim N2 As Long Dim Rng as Range Dim MaxCells as Long Dim Result() Որպես տարբերակ Dim R Քանի որ երկար Dim C Քանի դեռ MaxCells = Application.WorksheetFunction.Max( _ Application.Caller.Cells.Count, DataRange.Cells.Count) ReDim Result(1 To MaxCells, 1 To 1) Յուրաքանչյուր Rng-ի համար DataRange.Cells Եթե 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 Editor-ից Excel-ի: Այս գործառույթը մեր օրինակում օգտագործելու համար.

  1. Ընտրեք դատարկ բջիջների բավարար տիրույթ, օրինակ՝ F3:F10:
  2. Գնացեք ընտրացանկ Ներդիր – Ֆունկցիա (Տեղադրեք - գործառույթ)կամ սեղմեք կոճակը Տեղադրեք գործառույթը (Տեղադրել գործառույթը) ականջակալ ֆորմուլա (բանաձևեր) Excel-ի նոր տարբերակներում: Կատեգորիայում Օգտագործողը սահմանվում է (Օգտվողի կողմից սահմանված) ընտրեք մեր գործառույթը NoBlanks.
  3. Նշեք աղբյուրի տիրույթը voids-ով (B3:B10) որպես ֆունկցիայի փաստարկ և սեղմեք Ctrl + Shift + Մուտքֆունկցիան որպես զանգվածի բանաձև մուտքագրելու համար։

:

  • Աղյուսակի բոլոր դատարկ տողերը միանգամից ջնջվում են պարզ մակրոյով
  • Աշխատանքային թերթի բոլոր դատարկ տողերը միանգամից հեռացնելով՝ օգտագործելով PLEX հավելումը
  • Արագ լրացրեք բոլոր դատարկ բջիջները
  • Ինչ են մակրոները, որտեղ տեղադրել մակրո կոդը VBA-ում

 

Թողնել գրառում