Tabl cynnwys
Mae tair ffordd o ddarganfod a dileu copïau dyblyg o fewn cell yn Excel. Dewiswch yr un sy'n gweithio orau i chi.
Pan mae'n ymwneud â dileu gwerthoedd neu resi dyblyg, mae Microsoft Excel yn cynnig amrywiaeth o opsiynau gwahanol. Ond pan ddaw i gael gwared ar yr un testun o fewn cell benodol, mae Excel yn darparu ... dim byd. Dim offer, dim nodweddion, dim fformiwlâu, dim byd. A fydd yn ein hatal rhag cyrraedd ein nod? Mewn unrhyw achos. Os nad oes gan Excel y swyddogaeth sydd ei hangen arnom, gadewch i ni fynd ysgrifennu ein un ein hunain :)
Problem : Mae gennych yr un geiriau neu linynnau testun mewn cell a hoffech gael gwared ar yr ail a'r holl ailadroddiadau dilynol.
Ateb : ffwythiant wedi'i ddiffinio gan ddefnyddiwr wedi'i deilwra neu macro VBA.
Swyddogaeth a ddiffinnir gan ddefnyddiwr i dynnu copïau dyblyg o fewn cell
I ddileu testun dyblyg mewn cell, gallwch ddefnyddio'r ffwythiant a ddiffinnir gan y defnyddiwr (UDF) ganlynol , a enwyd RemoveDupeWords :
Swyddogaeth RemoveDupeWords(text As String , Amffinydd Dewisol Fel Llinyn = " " ) Fel geiriadur Llinynnol Dim Fel Gwrthrych Dim x, rhan Gosod geiriadur = CreateObject ( "Scripting.Dictionary") geiriadur .CompareMode = vbTextCompare Ar Gyfer Pob x Yn Hollti(testun, amffinydd) rhan = Trim(x) Os rhan"" Ac Ddim geiriadur.Exists(rhan) Yna geiriadur.Ychwanegu rhan, Dim Diwedd Os Nesaf Os geiriadur.Count > 0 Yna RemoveDupeWords = Ymuno(dictionary.keys,amffinydd) Else RemoveDupeWords = "" Diwedd Os Gosod geiriadur = Swyddogaeth Diwedd DimSut i fewnosod cod y ffwythiant yn eich llyfr gwaith
I ychwanegu'r cod uchod at eich Excel, dyma beth sydd angen i chi ei wneud:
- Pwyswch Alt + F11 i agor y Golygydd Sylfaenol Gweledol.
- Ar y cwarel chwith, de-gliciwch ThisWorkbook a dewiswch Insert > Modiwl .
- Gludwch y cod uchod yn y ffenestr Cod .
Am ragor o wybodaeth, gweler Sut i fewnosod VBA cod yn Excel.
Cystrawen ffwythiant RemoveDupeWords
Mae gan ein swyddogaeth sydd newydd ei chreu ar gyfer tynnu testun dyblyg mewn cell y gystrawen ganlynol:
RemoveDupeWords(testun, [amffinydd])Ble :
- Testun (gofynnol) - llinyn neu gell yr ydych am ddileu testun sy'n cael ei ailadrodd ohoni.
- > Amffinydd (dewisol) - yr amffinydd y mae'r testun a ailadroddir yn cael ei wahanu ganddo. Os caiff ei hepgor, defnyddir bwlch ar gyfer y amffinydd.
Nid yw'r ffwythiant yn sensitif i lythrennau , sy'n golygu bod llythrennau bach a mawr yn cael eu trin fel yr un nodau.
Sut i ddefnyddio'r ffwythiant RemoveDupeWords
Unwaith y bydd cod y ffwythiant wedi'i ychwanegu at eich llyfr gwaith, gallwch ei ddefnyddio yn eich fformiwlâu yn yr un modd ag y byddwch yn defnyddio swyddogaethau adeiledig Excel.
Dechreuwch deipio enw'r swyddogaeth ar ôl yr arwydd cyfartal, a bydd yn ymddangos yn y fformiwla intellisense. Cliciwch ddwywaith ar y swyddogaeth, a bydd gennych chiwedi'i fewnosod mewn cell. Diffiniwch y dadleuon, teipiwch y cromfachau cau, gwasgwch Enter , ac mae'ch fformiwla wedi'i chwblhau.
Er enghraifft, i ddileu geiriau dyblyg sydd wedi'u gwahanu gan goma a bwlch o A2, rhowch y fformiwla isod yn B2, ac yna llusgwch hi i lawr trwy gynifer o gelloedd ag sydd angen:
=RemoveDupeWords(A2, ", ")
O ganlyniad, bydd gennych restr o eiriau neu is-linynnau unigryw wedi'u gwahanu gan coma a gofod :
Os byddai'n well gennych gael rhestr wedi'i gwahanu gan goma, defnyddiwch goma yn unig ar gyfer y amffinydd :
=RemoveDupeWords(A2, ",")
Os yw gofod yn gwahanu eich data ffynhonnell, dylai'r ail arg gael ei " " neu ei hepgor:
=RemoveDupeWords(A2)
Fel unrhyw swyddogaeth Excel arall, mae ein UDF yn ailgyfrifo'n awtomatig pan fydd y data ffynhonnell yn newid, felly bydd eich canlyniadau bob amser yn gyfredol.
VBA macro i ddileu testun dyblyg o gelloedd lluosog ar unwaith
Os ydych yn bwriadu tynnu testun ailadroddus o gelloedd lluosog ar yr un pryd, yna gallwch ffonio'r swyddogaeth RemoveDupeWords o'r cychwyn cyntaf m o fewn macro. Yn yr achos hwn, mae'r amffinydd wedi'i god caled, a bydd yn rhaid i chi ddiweddaru cod y macro bob tro mae'r amffinydd yn newid. Fel arall, gallwch ysgrifennu ychydig o amrywiadau cod ar gyfer y amffinyddion mwyaf cyffredin, dyweder, gofod, coma, neu goma a gofod, a rhoi enwau ystyrlon i'ch macros, e.e. RemoveDupesDelimSpace .
Mae cod y macro fel a ganlyn:
Is-Gyhoeddus RemoveDupeWords2() Cell pylu Fel Ystod Ar Gyfer Pob cell Yn Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Diwedd Nesaf IsYn y cod uchod, mae'r amffinydd yn goma a gofod . I ddefnyddio amffinydd gwahanol, amnewid " , " gyda nod(au) arall yn y llinell god hon:
cell.Value = RemoveDupeWords(cell.Value, ", ")
Nodyn. Er mwyn i'r macro weithio, rhaid gosod ei god a chod swyddogaeth RemoveDupeWords ar yr un modiwl.
Sut i ddefnyddio'r macro
Rhowch god y macro yn eich llyfr gwaith eich hun neu agorwch ein llyfr gwaith sampl gyda'r cod, ac yna perfformiwch y camau canlynol i redeg y macro.
- Dewiswch ystod o gelloedd yr ydych am dynnu testun ailadroddus ohonynt.
- Pwyswch Alt + F8 i agor y blwch deialog Macro .
- Yn y rhestr o macros, dewiswch RemoveDupeWords2 .
- Cliciwch Rhedeg .
Am ragor o fanylion, gweler Sut i rhedeg macro yn Excel.
Sylwch. Gan na ellir dadwneud gweithred macro , rydym yn argymell yn gryf eich bod yn cadw eich llyfr gwaith yn union cyn defnyddio'r macro. Fel hyn, os aiff rhywbeth o'i le, gallwch gau ac ailagor y llyfr gwaith, a byddwch yn ôl yn union lle'r oeddech. Neu gallwch wneud copi o'r daflen(ni) gwaith y gallai'r macro effeithio arnynt.
Sut i dynnu nodau dyblyg mewn cell
Problem : Mae gennych chi sawl digwyddiad o'r un nod mewn cell, tra bod pob undylai cell gynnwys un digwyddiad o nod penodol yn unig.
Ateb : ffwythiant wedi'i ddiffinio gan ddefnyddiwr wedi'i deilwra neu macro VBA.
Swyddogaeth wedi'i diffinio gan ddefnyddiwr i ddileu nodau ailadroddus
I gael gwared ar nodau dyblyg o fewn cell gan gadw'r digwyddiadau cyntaf yn unig, gallwch ddefnyddio'r swyddogaeth ganlynol a ddiffinnir gan y defnyddiwr, o'r enw RemoveDupeChars :
Swyddogaeth DileuDupeChars(testun Fel Llinynnol ) Fel Llinynnol geiriadur Fel Gwrthrych Dim tor Fel Llinynnol Dim canlyniad Fel Llinynnol Set geiriadur = CreateObject ( "Scripting.Dictionary") Ar gyfer i = 1 I Len(text) torgoch = Canolbarth(testun, i, 1 ) If Not dictionary.Exists(char) Yna dictionary.Add torgoch, Dim canlyniad = canlyniad & char Diwedd Os Nesaf RemoveDupeChars = canlyniad Set dictionary = Dim Diwedd SwyddogaethI fewnosod cod y ffwythiant yn eich llyfr gwaith, mae'r camau yn union yr un fath ag yn yr enghraifft flaenorol.
RemoveDupeChars function cystrawen
0>Mae cystrawen y ffwythiant arferiad hwn mor syml ag y gall fod - dim ond un arg sydd ei angen: RemoveDupeChars(text)Lle mae testun yn llinyn neu gell yr ydych yn dymuno ohoni i gael gwared ar nodau dyblyg.
Mae'r ffwythiant yn sensitif i lythrennau ac mae'n trin llythrennau bach a phriflythrennau fel nodau gwahanol.
Sut i ddefnyddio ffwythiant RemoveDupeChars
Mae popeth a ddywedasom am y defnydd o RemoveDupeWords yn wir ar gyfer RemoveDupeChars . Felly, heb fyndgormod i mewn i ddamcaniaeth, gadewch i ni fynd yn syth at enghraifft.
I ddileu nodau dyblyg o golofn A sy'n dechrau yn A2, rhowch y fformiwla hon yn B2 a'i chopïo i lawr:
=RemoveDupeChars(A2)
Tip. Os yw'ch nodau wedi'u gwahanu oddi wrth ei gilydd gan ryw amffinydd megis gofod, coma neu gysylltnod, yna defnyddiwch y ffwythiant RemoveDupeWords fel y dangosir yn yr enghraifft flaenorol.
Macro VBA i dynnu'r un nodau o gell
Fel RemoveDupeWords , gellir galw'r swyddogaeth RemoveDupeChars hefyd o fewn macro:
Cyhoeddus Is RemoveDupeChars2() Cell bylu Fel Amrediad Ar Gyfer Pob cell Yn Application.Selection cell.Value = RemoveDupeChars(cell.Value) Diwedd Nesaf IsOherwydd nad yw'r UDF hwn yn defnyddio unrhyw amffinydd, ni fydd yn rhaid i chi wneud unrhyw addasiadau yn y cod.
Sylwch. Er mwyn i'r macro weithio, rhaid gosod ei god a chod RemoveDupeChars UDF ar yr un modiwl yn y golygydd VBA.
Sut i ddefnyddio'r macro
A chymryd eich bod eisoes wedi mewnosod cod y macro yn eich llyfr gwaith neu wedi agor ein gweithlyfr enghreifftiol sy'n cynnwys y cod, lansiwch y macro fel hyn.
- Dewiswch ystod o gelloedd yr hoffech dynnu nodau ailadroddus ohonynt.
- Pwyswch Alt + F8 i agor y deialog Macro blwch.
- Yn y rhestr macros, dewiswch RemoveDupeChars2 .
- Cliciwch Rhedeg .
Dileu is-linynnau dyblyg gyda Ultimate Suite
Ar ddechrau'r tiwtorial hwn, soniwyd nad oes gan Microsoft Excel nodwedd gynhenid ar gyfer tynnu copïau dyblyg o fewn cell. Ond mae ein Ultimate Suite yn gwneud hynny!
Gallwch ddod o hyd iddo yn y gwymplen Duplicate Remover ar y tab Ablebits Data , yn y Dedupe grwp. Os nad yw'r opsiwn Dileu Is-linynnau Dyblyg yn ymddangos yn eich Excel, gwnewch yn siŵr bod gennych y fersiwn diweddaraf o Ultimate Suite wedi'i osod (gellir lawrlwytho treial am ddim yma).
3>
I dynnu geiriau neu destun ailadroddus o gelloedd lluosog mewn 5 eiliad (eiliad y cam :), dyma beth sydd angen i chi ei wneud:
- Dewiswch eich data ffynhonnell a lansiwch y Tynnu Teclyn Is-linynnau Dyblyg .
- Nodwch yr amffinydd .
- Diffiniwch a ddylid trin amffinydd olynol fel un (diofyn).
- Dewiswch a ydych am berfformio chwiliad sy'n sensitif i achos neu ansensitif i achosion .
- Cliciwch Dileu .
Gorffen! Dim ffidlan gyda VBA na fformiwlâu, dim ond canlyniadau cyflym a chywir.
I ddysgu mwy am yr ychwanegiad anhygoel hwn, ewch i'w dudalen gartref. Neu hyd yn oed yn well, lawrlwythwch fersiwn gwerthuso isod a rhowch gynnig arni!
Dyna sut i dynnu testun dyblyg mewn cell.Diolch i chi am ddarllen a gobeithio y gwelwn ni chi ar ein blog wythnos nesaf!
Ar gael i'w lawrlwytho
Enghreifftiau i dynnu copïau dyblyg yn y gell (ffeil .xlsm)
Ultimate Suite 14 -Fersiwn llawn-weithredol dydd (ffeil .exe)