Агуулгын хүснэгт
Excel дээр нүднээсээ давхардсан файлуудыг олох, устгах гурван арга бий. Өөрт тохирохыг нь л сонгоорой.
Давхардсан утгууд эсвэл мөрүүдийг арилгахад Microsoft Excel нь олон янзын сонголтуудыг санал болгодог. Гэхдээ өгөгдсөн нүдэн дэх ижил текстийг устгах тухайд Excel юу ч өгдөггүй. Ямар ч хэрэгсэл, онцлог, томъёо, юу ч байхгүй. Энэ нь биднийг зорилгодоо хүрэхэд саад болох уу? Ямар ч тохиолдолд. Excel-д бидэнд хэрэгтэй функц байхгүй бол бид өөрсдөө бичье :)
Excel нүдн дэх давтагдсан үгсийг хэрхэн устгах
Асуудал : Та нүдэнд ижил үгс эсвэл текстийн мөрүүд байгаа бөгөөд хоёр дахь болон дараагийн бүх давталтыг арилгахыг хүсэж байна.
Шийдвэр : хэрэглэгчийн тодорхойлсон функц эсвэл VBA макро.
Нүдэн доторх давхардлыг арилгах хэрэглэгчийн тодорхойлсон функц
Нүдэн дэх давхардсан текстийг арилгахын тулд та дараах хэрэглэгчийн тодорхойлсон функцийг (UDF) ашиглаж болно. , нэртэй RemoveDupeWords :
Function RemoveDupeWords(текстийг тэмдэгт мөр, нэмэлт хязгаарлагч тэмдэгт тэмдэг = " " ) тэмдэгт мөрийн бүдэг толь Обьект Dim x-р хэсэг Толь бичиг = CreateObject ( "Scripting.Dictionary" ) толь бичиг .CompareMode = vbTextCompare For бүр x In Split(текст, зааглагч) хэсэг = Trim(x) Хэрэв хэсэг "" Харин толь бичиг биш. Байгаа(хэсэг) Дараа нь толь бичиг. Хэсэг нэмнэ үү, Дараа нь юу ч дуусахгүй бол толь бичиг.Count > 0 Дараа нь RemoveDupeWords = Join(dictionary.keys,хязгаарлагч) Else RemoveDupeWords = "" End If Set толь бичиг = Юу ч биш Төгсгөлийн функцАжил дэвтэртээ функцийн кодыг хэрхэн оруулах вэ
Дээрх кодыг Excel-дээ нэмэхийн тулд та дараах зүйлийг хийх хэрэгтэй:
- Visual Basic Editor-ыг нээхийн тулд Alt + F11 товчийг дарна уу.
- Зүүн талд байгаа ThisWorkbook дээр хулганы баруун товчийг дараад Insert -г сонгоно уу. > Модуль .
- Дээрх кодыг Код цонхонд буулгана уу.
Дэлгэрэнгүй мэдээллийг VBA хэрхэн оруулах талаар үзнэ үү. Excel доторх код.
RemoveDupeWords функцийн синтакс
Нүдэн дэх давхардсан текстийг устгахад зориулсан манай шинээр үүсгэсэн функц нь дараах синтакстай байна:
RemoveDupeWords(текст, [хязгаарлагч])Хаана :
- Текст (шаардлагатай) - давтагдах текстийг устгахыг хүсэж буй мөр эсвэл нүд.
- Хязгаарлагч (заавал биш) - давтагдсан бичвэрийг тусгаарлах хязгаарлагч. Хэрэв орхигдуулсан бол зааглагчийн хувьд хоосон зайг ашиглана.
Функц нь том үсгийг том үсгээр ялгахгүй , өөрөөр хэлбэл жижиг, том үсгийг ижил тэмдэгт гэж үзнэ.
RemoveDupeWords функцийг хэрхэн ашиглах вэ
Функцийн кодыг ажлын дэвтэрт нэмсний дараа та үүнийг Excel-ийн суулгасан функцуудыг ашигладагтай адил томьёондоо ашиглаж болно.
Тэнцүү тэмдгийн ард функцийн нэрийг бичиж эхлэхэд л энэ нь intellisense томъёонд гарч ирнэ. Функц дээр давхар товшиж, та функцтэй болнонүдэнд оруулсан. Аргументуудыг тодорхойлж, хаалтын хашилтыг бичээд Enter товчийг дарснаар таны томьёо дуусна.
Жишээ нь, А2-аас таслал болон зайгаар тусгаарлагдсан давхардсан үгсийг устгахын тулд, B2-д доорх томьёог оруулаад, шаардлагатай олон нүднүүдийн дундуур чирнэ үү:
=RemoveDupeWords(A2, ", ")
Үүний үр дүнд та <тэмдэгтээр тусгаарлагдсан өвөрмөц үг эсвэл дэд мөрүүдийн жагсаалттай болно. 17>таслал ба зай :
Хэрэв та таслалаар тусгаарласан жагсаалтыг авахыг хүсвэл зөвхөн таслал зааглагчийг ашиглана уу. :
=RemoveDupeWords(A2, ",")
Хэрэв таны эх өгөгдөл зай -аар тусгаарлагдсан бол хоёр дахь аргумент нь " " байх эсвэл орхигдсон байх ёстой:
=RemoveDupeWords(A2)
Бусад Excel функцийн нэгэн адил манай UDF нь эх өгөгдөл өөрчлөгдөх үед автоматаар дахин тооцоолдог тул таны үр дүн үргэлж шинэчлэгдэж байх болно.
Олон нүднүүдээс давхардсан текстийг нэг дор устгах VBA макро
Хэрэв та олон нүднүүдээс давтагдсан текстийг нэг дор устгахыг хүсэж байвал RemoveDupeWords функцийг дуудаж болно. макро доторх m. Энэ тохиолдолд хязгаарлагч нь хатуу кодлогдсон бөгөөд хязгаарлагч өөрчлөгдөх бүрт макро кодыг шинэчлэх шаардлагатай болно. Эсвэл та хамгийн нийтлэг зааглагчийн хувьд хэд хэдэн кодын хувилбаруудыг бичиж болно, жишээ нь: зай, таслал, таслал, зай, макронууддаа утга учиртай нэр өгөх, жишээ нь. RemoveDupesDelimSpace .
Макроны код дараах байдалтай байна:
Нийтийн дэд RemoveDupeWords2() Бүдэг нүд Application.Selection cell-ийн нүд бүрийн муж болгон.Value = RemoveDupeWords(cell.Value, ", " ) Дараагийн төгсгөл ДэдДээрх кодын хязгаарлагч нь таслал ба зай . Өөр хязгаарлагч ашиглахын тулд энэ кодын мөрөнд ", "-г өөр тэмдэгтээр солино уу:
cell.Value = RemoveDupeWords(cell.Value, ", ")
Тайлбар. Макро ажиллахын тулд түүний код болон RemoveDupeWords функцийн кодыг нэг модуль дээр байрлуулах ёстой.
Макро хэрхэн ашиглах вэ
Макрогийн кодыг өөрийн ажлын дэвтэртээ оруулах эсвэл код бүхий бидний жишээ ажлын номыг нээж, макро ажиллуулахын тулд дараах алхмуудыг хийгээрэй.
- Дахин давтагдах текстийг устгахыг хүссэн нүднүүдийн мужийг сонгоно уу.
- Alt + F8 дарж Макро харилцах цонхыг нээнэ үү.
- Макросын жагсаалтад, RemoveDupeWords2 -г сонгоно уу.
- Ажиллуулах дээр дарна уу.
Дэлгэрэнгүй мэдээллийг Хэрхэн хийх вэ гэсэн хэсгээс үзнэ үү. Excel дээр макро ажиллуул.
Тэмдэглэл. Макроны үйлдлийг буцаах боломжгүй тул макро ашиглахын өмнө ажлын номоо хадгалахыг зөвлөж байна. Ингэснээр ямар нэг зүйл буруу болвол та зүгээр л ажлын дэвтрийг хаагаад дахин нээх боломжтой бөгөөд та яг байсан газартаа буцаж очих болно. Эсвэл та макронд нөлөөлж болзошгүй ажлын хуудасны хуулбарыг хийж болно.
Нүдэн дэх давхардсан тэмдэгтүүдийг хэрхэн арилгах вэ
Асуудал : Та нүдэнд ижил тэмдэгтийн олон тохиолдол байгаа бөгөөд тус бүр ньнүд нь зөвхөн өгөгдсөн тэмдэгтийн ганц тохиолдлыг агуулсан байх ёстой.
Шийдвэр : хэрэглэгчийн тодорхойлсон функц эсвэл VBA макро.
Дахин давтагдсан тэмдэгтүүдийг устгах хэрэглэгчийн тодорхойлсон функц
Зөвхөн эхний тохиолдлуудыг хадгалсан нүдэнд давхардсан тэмдэгтүүдийг устгахын тулд та RemoveDupeChars нэртэй дараах хэрэглэгчийн тодорхойлсон функцийг ашиглаж болно:
Функц RemoveDupeChars(текстийг мөр болгон) стринг бүдгэрүүлсэн толь бичиг болгон объект болгон бүдэг тэмдэгт тэмдэгт мөр болгон бүдэг үр дүн нь мөр багц толь бичиг = CreateObject ( "Scripting.Dictionary" ) For i = 1 To Len(текст) char = Mid(text, i, 1) ) Хэрэв толь бичиг биш бол.Байгаа(char) Дараа нь толь бичиг. Тэмдэгт нэмэх, Үр дүн юу ч байхгүй = үр дүн & char End If Next RemoveDupeChars = үр дүн Толь бичгийг тохируулах = Юу ч биш Төгсгөлийн функцӨөрийн ажлын дэвтэрт функцын кодыг оруулахын тулд алхмууд нь өмнөх жишээн дээрхтэй яг ижил байна.
RemoveDupeChars функцийн синтакс
Энэ тусгай функцын синтакс нь аль болох энгийн бөгөөд зөвхөн нэг аргумент шаардлагатай:
RemoveDupeChars(текст)Энд текст нь таны хүссэн мөр эсвэл нүд юм. давхардсан тэмдэгтүүдийг устгахад зориулагдсан.
Функц нь багын том үсэг мэдэрдэг бөгөөд жижиг ба том үсгийг өөр тэмдэгт гэж үздэг.
RemoveDupeChars функцийг хэрхэн ашиглах вэ
RemoveDupeWords-ийн хэрэглээний талаар бидний хэлсэн бүхэн RemoveDupeChars -д үнэн байна. Тиймээс явахгүйгээрОнолд хэт их орчихсон тул шууд жишээ рүүгээ орцгооё.
А2-аас эхэлж байгаа А баганаас давхардсан тэмдэгтүүдийг устгахын тулд B2-д энэ томьёог оруулаад доош нь хуулна уу:
=RemoveDupeChars(A2)
Доорх зурган дээрээс харж байгаачлан уг функц нь үсэг, цифр, тусгай тэмдэгт зэрэг өөр өөр тэмдэгтүүдийг амжилттай зохицуулж байна:
Зөвлөгөө. Хэрэв таны тэмдэгтүүд хоорондоо зай, таслал, зураас гэх мэт хязгаарлагч -аар тусгаарлагдсан бол өмнөх жишээнд үзүүлсэн шиг RemoveDupeWords функцийг ашиглана уу.
Нүднээс ижил тэмдэгтүүдийг устгах VBA макро
RemoveDupeWords шиг RemoveDupeChars функцийг мөн макро дотроос дуудаж болно:
Нийтийн Sub RemoveDupeChars2() Бүдэг нүдийг Application.Selection дахь нүд бүрийн муж болгон тохируулна.Value = RemoveDupeChars(cell.Value) Дараагийн төгсгөл ДэдУчир нь энэ UDF нь ямар ч хязгаарлагч ашигладаггүй тул та ямар ч тохиргоо хийх шаардлагагүй болно. код.
Тэмдэглэл. Макро ажиллахын тулд түүний код болон RemoveDupeChars UDF кодыг VBA засварлагчийн нэг модуль дээр байрлуулах ёстой.
Макро хэрхэн ашиглах вэ
Хэрэв та макроны кодыг ажлын дэвтэртээ оруулсан эсвэл код агуулсан дээжийн номыг нээсэн гэж үзвэл макро ингэж ажиллуулна уу.
- Дахин давтагдах тэмдэгтүүдийг устгахыг хүссэн нүднүүдийн мужийг сонгоно уу.
- Alt + F8 дарж Макро харилцах цонхыг нээнэ үү.хайрцаг.
- Макросын жагсаалтаас RemoveDupeChars2 -г сонгоно уу.
- Ажиллуулах дээр дарна уу.
Давхардсан дэд мөрүүдийг Ultimate Suite-ээр устгах
Энэ зааварчилгааны эхэнд Microsoft Excel-д нүдэн доторх давхардлыг арилгах функц байхгүй гэж дурдсан. Гэхдээ манай Ultimate Suite боломжтой!
Та үүнийг Duplicate Remover унадаг цэснээс Ablebits Data табын Dedupe<2-ээс олох боломжтой> бүлэг. Хэрэв Давхардсан дэд мөрүүдийг устгах сонголт таны Excel-д харагдахгүй байвал та Ultimate Suite-н хамгийн сүүлийн хувилбарыг суулгасан эсэхээ шалгаарай (үнэгүй туршилтыг эндээс татаж авах боломжтой).
5 секундын дотор олон нүднээс давтагдсан үг эсвэл текстийг устгахын тулд (алхам тутамд нэг секунд :), та дараах зүйлийг хийх хэрэгтэй:
- Эх өгөгдлөө сонгоод Давхардсан дэд мөрүүдийг устгана уу.
- хязгаарлагч -г зааж өгнө үү.
- дараалсан хязгаарлагчийг нэг гэж үзэх эсэхийг тодорхойлно (өгөгдмөл).
- үсгийн томруулсан эсвэл үсийн том жижиг хайлт хийх эсэхийг сонгоно уу.
- Устгах дээр товшино уу.
Болсон! VBA эсвэл томьёотой хутгалдах шаардлагагүй, зүгээр л хурдан бөгөөд үнэн зөв илэрцүүд.
Энэ гайхалтай нэмэлтийн талаар илүү ихийг мэдэхийг хүсвэл түүний нүүр хуудсанд зочилно уу. Эсвэл бүр илүү сайн бол доороос үнэлгээний хувилбарыг татаж аваад туршаад үзээрэй!
Ингэж нүдэн дэх давхардсан бичвэрийг устгах болно.Уншиж байгаад баярлалаа, дараа долоо хоногт манай блог дээр уулзана гэж найдаж байна!
Боломжтой татан авалтууд
Нүүрэн дэх давхардлыг арилгах жишээнүүд (.xlsm файл)
Ultimate Suite 14 - өдрийн бүрэн ажиллагаатай хувилбар (.exe файл)