Բովանդակություն
Խնդրի ձևակերպում
Մենք ունենք դատարկ բջիջներ պարունակող տվյալներ ունեցող բջիջների մի շարք.
Խնդիրը դատարկ բջիջները հեռացնելն է՝ տեղեկատվությամբ թողնելով միայն բջիջները:
Մեթոդ 1. Կոպիտ և արագ
- Ընտրելով բնօրինակ միջակայքը
- Սեղմեք ստեղնը F5, հաջորդ կոճակը Առաջ քաշել (Հատուկ). Բացվող պատուհանում ընտրեք Դատարկ բջիջներ(Բլանկներ) եւ սեղմեք OK.
Ընտրված են տիրույթի բոլոր դատարկ բջիջները:
- Մենք ընտրացանկից ընտրված բջիջները ջնջելու հրաման ենք տալիս՝ սեղմեք աջ- Ջնջել բջիջները (Ջնջել բջիջները) դեպի վեր տեղաշարժով:
Մեթոդ 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-ի: Այս գործառույթը մեր օրինակում օգտագործելու համար.
- Ընտրեք դատարկ բջիջների բավարար տիրույթ, օրինակ՝ F3:F10:
- Գնացեք ընտրացանկ Ներդիր – Ֆունկցիա (Տեղադրեք - գործառույթ)կամ սեղմեք կոճակը Տեղադրեք գործառույթը (Տեղադրել գործառույթը) ականջակալ ֆորմուլա (բանաձևեր) Excel-ի նոր տարբերակներում: Կատեգորիայում Օգտագործողը սահմանվում է (Օգտվողի կողմից սահմանված) ընտրեք մեր գործառույթը NoBlanks.
- Նշեք աղբյուրի տիրույթը voids-ով (B3:B10) որպես ֆունկցիայի փաստարկ և սեղմեք Ctrl + Shift + Մուտքֆունկցիան որպես զանգվածի բանաձև մուտքագրելու համար։
:
- Աղյուսակի բոլոր դատարկ տողերը միանգամից ջնջվում են պարզ մակրոյով
- Աշխատանքային թերթի բոլոր դատարկ տողերը միանգամից հեռացնելով՝ օգտագործելով PLEX հավելումը
- Արագ լրացրեք բոլոր դատարկ բջիջները
- Ինչ են մակրոները, որտեղ տեղադրել մակրո կոդը VBA-ում