Tynnu celloedd gwag o ystod

Ffurfio'r broblem

Mae gennym ystod o gelloedd gyda data sy'n cynnwys celloedd gwag:

 

Y dasg yw tynnu celloedd gwag, gan adael dim ond celloedd â gwybodaeth.

Dull 1. Arw a chyflym

  1. Dewis yr ystod wreiddiol
  2. Pwyswch yr allwedd F5, botwm nesaf Amlygu (Arbennig). Yn y ffenestr sy'n agor, dewiswch Celloedd gwag(Bylchau) a chliciwch OK.

    Tynnu celloedd gwag o ystod

    Mae'r holl gelloedd gwag yn yr ystod yn cael eu dewis.

  3. Rydyn ni'n rhoi gorchymyn yn y ddewislen i ddileu celloedd dethol: de-gliciwch- Dileu celloedd (Dileu Celloedd) gyda shifft i fyny.

Dull 2: Fformiwla Arae

I symleiddio, gadewch i ni enwi ein hystodau gweithio gan ddefnyddio Rheolwr Enw (Rheolwr Enw) tab fformiwla (fformiwlâu) neu, yn Excel 2003 a hŷn, y ddewislen Mewnosod - Enw - Neilltuo (Rhowch — Enw — Diffiniwch)

 

Enwch yr ystod B3:B10 Cael Gwag, ystod D3:D10 - Dim Gwag. Rhaid i'r amrediadau fod yr un maint yn union, a gellir eu lleoli yn unrhyw le mewn perthynas â'i gilydd.

Nawr dewiswch gell gyntaf yr ail ystod (D3) a rhowch y fformiwla frawychus hon ynddi:

=IF(ROW() -ROW(DimWag)+1>NOTROWS(IeWag)-COUNTBLANK(IeWag);"”;INDIRECT(CYFEIRIAD(ISAF((IF(Wag<>"", ROW(Wag);ROW() + ROWS(Mae yna Wag)); LLINELL()-ROW(Dim Gwag)+1); COLOFN(Mae yna Wag); 4)))

Yn y fersiwn Saesneg bydd yn:

=IF(ROW()-ROW(DimWag)+1>ROWS(Wag)-COUNTBLANK(Wag),"",INDIRECT(Cyfeiriad(BACH((IF(Wag<>"",ROW(Wag),ROW() +ROWS(HaveWag)), ROW()-ROW(DimWag)+1),COLOFN(HaveWag),4))))

Ar ben hynny, rhaid ei nodi fel fformiwla arae, hy gwasgu ar ôl ei gludo Rhowch (fel arfer) a Ctrl + Shift + Enter. Nawr gellir copïo'r fformiwla i lawr gan ddefnyddio autocomplete (llusgwch y groes ddu yng nghornel dde isaf y gell) - a byddwn yn cael yr ystod wreiddiol, ond heb gelloedd gwag:

 

Dull 3. swyddogaeth Custom yn VBA

Os oes amheuaeth y bydd yn rhaid i chi ailadrodd y weithdrefn ar gyfer tynnu celloedd gwag o ystodau yn aml, yna mae'n well ychwanegu'ch swyddogaeth eich hun ar gyfer tynnu celloedd gwag i'r set safonol unwaith, a'i ddefnyddio ym mhob achos dilynol.

I wneud hyn, agorwch y Golygydd Sylfaenol Gweledol (ALT + F11), mewnosod modiwl gwag newydd (dewislen Mewnosod – Modiwl) a chopïwch destun y swyddogaeth hon yno:

Swyddogaeth NoBlanks (Amrediad Data Fel Cyrhaeddiad) Fel Amrywiad() Dim N Mor Hir Dim N2 Mor Dim Rng Ag Amrediad Dim MaxCells Mor Hir Dim Canlyniad() Fel Amrywiad Dim R Cyn Hir Dim C Mor Hir MaxCells = Application.WorksheetFunction.Max( _ Application.Caller.Cells.Count, DataRange.Cells.Count) ReDim Result(1 To MaxCells, 1 To 1) Ar Gyfer Pob Rng Yn DataRange.Cells If Rng.Value <> vbNullString Yna N = N + 1 Canlyniad(N, 1 ) = Rng.Value Diwedd Os Rng Nesaf Ar gyfer N2 = N + 1 I MaxCells Canlyniad(N2, 1) = vbNullString N2 Nesaf Os Application.Caller.Rows.Count = 1 Yna NoBlanks = Application.Transpose(Canlyniad) Arall NoBlanks = Canlyniad Diwedd Os Diwedd Swyddogaeth  

Peidiwch ag anghofio arbed y ffeil a newid yn ôl o'r Golygydd Visual Basic i Excel. I ddefnyddio'r swyddogaeth hon yn ein hesiampl:

  1. Dewiswch ystod ddigonol o gelloedd gwag, er enghraifft F3:F10.
  2. Ewch i'r ddewislen Mewnosod – Swyddogaeth (Mewnosod — Swyddogaeth)neu cliciwch ar y botwm Mewnosod swyddogaeth (Mewnosod Swyddogaeth) tab fformiwla (fformiwlâu) mewn fersiynau mwy diweddar o Excel. Yn y categori Diffiniwyd y Defnyddiwr (Defnyddiwr Diffiniedig) dewis ein swyddogaeth Dim Blanciau.
  3. Nodwch yr ystod ffynhonnell gyda bylchau (B3: B10) fel dadl swyddogaeth a gwasgwch Ctrl + Shift + Enteri fynd i mewn i'r swyddogaeth fel fformiwla arae.

:

  • Dileu pob rhes wag mewn tabl ar unwaith gyda macro syml
  • Tynnu pob rhes wag mewn taflen waith ar unwaith gan ddefnyddio'r ategyn PLEX
  • Llenwch yr holl gelloedd gwag yn gyflym
  • Beth yw macros, ble i fewnosod cod macro yn VBA

 

Gadael ymateb