Агуулгын хүснэгт
Энэ өгүүллээс та текстийн мөрнөөс тодорхой тэмдэгтүүдийг хэрхэн устгах, олон нүднээс хүсээгүй тэмдэгтүүдийг нэг дор устгах талаар сурах болно.
Өөр газраас Excel-д өгөгдөл импортлохдоо, Олон тооны тусгай дүрүүд таны ажлын хуудас руу аялж магадгүй. Илүү бухимдалтай зүйл бол зарим тэмдэгтүүд үл үзэгдэх бөгөөд энэ нь текстийн мөрийн өмнө, дараа эсвэл дотор нэмэлт хоосон зай үүсгэдэг. Энэхүү заавар нь эдгээр бүх асуудлыг шийдэх шийдлүүдийг өгч, өгөгдлийн нүдийг нүдээр дамжиж, хүсээгүй тэмдэгтүүдийг гараар цэвэрлэх гэх мэт асуудлаас ангижрах болно.
Excel нүднээс тусгай тэмдэгт устгах
Нүднээс тодорхой тэмдэгтийг устгахын тулд ОРЛУУЛАХ функцийг энгийн хэлбэрээр ашиглан хоосон тэмдэгтээр солино уу:
ОРЛУУЛАХ( нүд, тэмдэгт, "")Жишээ нь, А2-аас асуултын тэмдгийг арилгахын тулд B2 дахь томьёо нь:
=SUBSTITUTE(A2, "?", "")
Хэрэв таны гар дээр байхгүй тэмдэгт байгаа бол та үүнийг эх нүднээсээ томьёо руу хуулж/хуулж болно.
Жишээ нь, эндээс урвуу асуултын тэмдгийг арилгах боломжтой:
=SUBSTITUTE(A2, "¿", "")
Гэхдээ хэрэв хүсээгүй тэмдэгт үл үзэгдэх эсвэл зөв хуулбарлаагүй бол түүнийг томъёонд хэрхэн оруулах вэ? Зүгээр л CODE функцийг ашиглан кодын дугаарыг нь олоорой.
Манай тохиолдолд хүсээгүй тэмдэгт ("¿") нь A2 нүдэнд хамгийн сүүлд ордог тул бид хослолыг ашиглаж байна.191 гэсэн өвөрмөц кодын утгыг олж авахын тулд CODE болон RIGHT функцийг ашиглана:
=CODE(RIGHT(A2))
Та тэмдэгтийн кодыг авсны дараа харгалзах CHAR-д үйлчилнэ үү. дээрх ерөнхий томьёоны функцийг гүйцэтгэнэ. Манай мэдээллийн багцын хувьд томъёо дараах байдалтай байна:
=SUBSTITUTE(A2, CHAR(191),"")
Тайлбар. ОРЛУУЛАХ функц нь багын том үсгийг ялгах шинж чанартай бөгөөд жижиг болон том үсгийг өөр өөр тэмдэгт гэж үздэг. Хэрэв таны хүсээгүй дүр бол үсэг бол үүнийг санаарай.
Мөрөөс олон тэмдэгтийг устгах
Өмнөх нийтлэлүүдийн нэгэнд бид Excel-ийн хэд хэдэн ОРЛУУЛАХ функцийг хооронд нь оруулах замаар мөрүүдээс тодорхой тэмдэгтүүдийг хэрхэн устгах талаар авч үзсэн. Хоёр буюу түүнээс дээш хүсээгүй тэмдэгтүүдийг нэг дор арилгахын тулд ижил аргыг ашиглаж болно:
ОРЛУУЛАХ(ОРЛУУЛАХ( нүд , char1 , ""), char2 , ""), char3 , "")Жишээ нь, А2 дахь текстийн мөрнөөс ердийн анхаарлын тэмдэг, асуултын тэмдэг болон урвуу тэмдэгийг арилгахын тулд дараах томъёог ашиглана уу:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")
Үүнийг CHAR функцийн тусламжтайгаар хийж болно, 161 нь "¡" тэмдэгтийн код, 191 нь "¿" тэмдэгтийн код:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")
Үүр суулгасан ОРЛУУЛАХ функцууд нь боломжийн тооны тэмдэгтүүдэд сайн ажилладаг боловч хэрэв танд арилгах шаардлагатай хэдэн арван тэмдэгт байгаа бол томъёо хэтэрхий урт бөгөөд удирдахад хэцүү болно. Дараагийн жишээ нь a-г харуулж байнаилүү авсаархан, гоёмсог шийдэл.
Бүх хүсээгүй тэмдэгтүүдийг нэг дор устгана
Энэ шийдэл нь зөвхөн Microsoft 365-д зориулсан Excel-д ажилладаг
Та мэдэж байгаа байх. Excel 365 нь рекурсив тооцооллыг багтаасан өөрийн функцийг үүсгэх тусгай функцтэй. Энэхүү шинэ функцийг LAMBDA гэж нэрлэсэн бөгөөд та энэ талаар дэлгэрэнгүй мэдээллийг дээр дурдсан зааварчилгаанаас авах боломжтой. Доор би ойлголтыг хэд хэдэн практик жишээгээр тайлбарлах болно.
Хүсээгүй тэмдэгтүүдийг устгах LAMBDA-н захиалгат функц нь дараах байдалтай байна:
=LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string))
Энэ функцийг ажлын хуудсандаа ашиглахын тулд эхлээд нэрлэх хэрэгтэй. Үүний тулд Ctrl + F3 дарж Нэрийн менежер -г нээгээд Шинэ нэр -г дараах байдлаар тодорхойлно:
- Нэр дотор талбарт функцийн нэрийг оруулна уу: RemoveChars .
- Хамрах хүрээг Ажлын ном болгож тохируулна уу.
- Дэлгэрэнгүй талбарт дээрх томьёог буулгана уу.
- Заавал параметрийн тайлбарыг Сэтгэгдэл талбарт оруулна. Нүдэнд томьёо бичих үед параметрүүд гарч ирнэ.
- Шинэ функцээ хадгалахын тулд OK дээр дарна уу.
Дэлгэрэнгүй зааврыг үзнэ үү. Захиалгат LAMBDA функцийг хэрхэн нэрлэх вэ.
Функц нэртэй болмогц та ямар ч эх томьёотой адил нэрлэж болно.
Хэрэглэгчийн үүднээс , бидний захиалгат функцийн синтакс нь энгийнэнэ:
RemoveChars(string, chars)Хаана:
- String - эх тэмдэгт мөр буюу мөрийг агуулсан нүд/мужийн лавлагаа( s).
- Тэмдэгтүүд - устгах тэмдэгтүүд. Текстийн мөр эсвэл нүдний лавлагаагаар дүрслэгдэж болно.
Тохиромжтой болгох үүднээс бид D2 гэх мэт нүдэнд хүсээгүй тэмдэгтүүдийг оруулдаг. Эдгээр тэмдэгтүүдийг A2-ээс хасахын тулд томъёо нь:
=RemoveChars(A2, $D$2)
Томьёог зөв ажиллуулахын тулд дараах зүйлсийг анхаарна уу:
- D2-д , тэмдэгтүүд нь хоосон зайг арилгахыг хүсэхгүй л бол зайгүй жагсаасан болно.
- Тусгай тэмдэгт агуулсан нүдний хаягийг $ тэмдгээр ($D$2) түгжигдсэн бөгөөд үүнийг даван туулах үед лавлагаа өөрчлөгдөхөөс сэргийлнэ. томъёог доорх нүднүүд рүү оруулна.
Дараа нь бид зүгээр л томьёог чирээд D2-д жагсаасан бүх тэмдэгтүүдийг A2-аас A6 хүртэлх нүднүүдээс устгана:
Нэг томьёогоор олон нүдийг цэвэрлэхийн тулд 1-р аргументийн хувьд A2:A6 мужийг оруулна уу:
=RemoveChars(A2:A6, D2)
Томьёог зөвхөн хамгийн дээд нүдэнд оруулсан тул, Та нүдний координатыг түгжих талаар санаа зовох хэрэггүй - харьцангуй лавлагаа (D2) энэ тохиолдолд сайн ажилладаг. Мөн динамик массивыг дэмждэг тул томьёо нь лавласан бүх нүднүүдэд автоматаар асгардаг:
Урьдчилан тодорхойлсон тэмдэгтийн багцыг устгах
Урьдчилан тодорхойлсон багцыг устгах. олон нүднүүдийн тэмдэгтүүдийг үүсгэж болноөөр LAMBDA үндсэн RemoveChars функцийг дуудаж, 2-р параметрт хүсээгүй тэмдэгтүүдийг зааж өгнө. Жишээ нь:
тусгай тэмдэгтүүдийг устгахын тулд бид RemoveSpecialChars нэртэй захиалгат функцийг үүсгэсэн:
=LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))
Хэнд Текст мөрүүдээс тоо устгах , бид Тоонуудыг арилгах нэртэй өөр нэг функцийг үүсгэсэн:
=LAMBDA(string, RemoveChars(string, "0123456789"))
Дээрх хоёр функц нь маш хялбар зөвхөн нэг аргумент шаарддаг тул ашиглахын тулд - эх мөр.
А2-аас тусгай тэмдэгт -ийг хасахын тулд дараах томьёо:
=RemoveSpecialChars(A2)
Зөвхөн тоон тэмдэгтүүдийг устгахын тулд:
=RemoveNumbers(A2)
Энэ функц хэрхэн ажилладаг вэ:
Үндсэндээ RemoveChars функц нь тэмдэгтүүдийн жагсаалтаар дамжиж, нэг тэмдэгтийг устгадаг. Рекурсив дуудлага бүрийн өмнө IF функц нь үлдсэн тэмдэгтүүдийг шалгадаг. Хэрэв тэмдэгт тэмдэгт тэмдэгт хоосон биш бол (тэмдэгт"") функц өөрөө дуудагдана. Сүүлчийн тэмдэгтийг боловсруулж дуусмагц томьёо нь мөр -ийг одоогийн хэлбэрт нь буцаан өгч, гарна.
Хүсээгүй тэмдэгтүүдийг арилгахын тулд рекурсив LAMBDA-ийн дэлгэрэнгүй томьёог үзнэ үү.
VBA-тай тусгай тэмдэгтүүдийг устгах
Функцууд нь Excel-ийн бүх хувилбарт ажилладаг
Хэрэв LAMBDA функц таны Excel-д байхгүй бол танд юу ч саад болохгүй. VBA-тай ижил төстэй функц үүсгэхээс. Хэрэглэгчийн тодорхойлсонфункцийг (UDF) хоёр янзаар бичиж болно.
Тусгай тэмдэгтүүдийг устгах тусгай функц рекурсив :
Энэ код нь дээр дурдсан LAMBDA функцийн логикийг дуурайдаг.
Function RemoveUnwantedChars(str As String , chars As String ) If ( "" chars) Дараа нь str = Replace(str, Left(chars, 1), "" ) chars = Right(chars, Len(chars) - 1) RemoveUnwantedChars = RemoveUnwantedChars(str, chars) Else RemoveUnwantedChars = str End If End ФункцТусгай тэмдэгтүүдийг устгах тусгай функц рекурсив бус :
Энд бид 1-ээс хүсээгүй тэмдэгтүүдийг хооронд нь эргүүлнэ. Len(тэмдэгтүүд) ба эх мөрөнд олдсоныг юу ч үгүй солино. MID функц нь хүсээгүй тэмдэгтүүдийг нэг нэгээр нь татаж, Replace функц руу шилжүүлдэг.
Функц RemoveUnwantedChars(str As String , chars As String ) For index = 1 To Len(chars) str = Replace(str, Mid(chars,) index, 1), "" ) Next RemoveUnwantedChars = str End FunctionExcel дээр VBA кодыг хэрхэн оруулах талаар тайлбарласны дагуу дээрх кодуудын аль нэгийг ажлын дэвтэртээ оруулснаар таны захиалгат функц ашиглахад бэлэн болно.
Хэрэглэгчийн тодорхойлсон шинэ функцийг Ламбда-тодорхойлогдсон функцтэй андуурахгүйн тулд бид үүнийг өөрөөр нэрлэсэн:
RemoveUnwantedChars(string, chars)Эх мөр нь A2, хүсээгүй тэмдэгтүүд D2 байна гэж үзвэл, Бид эдгээр томъёог ашиглан тэднээс салж болно:
= RemoveUnwantedChars(A2, $D$2)
Хатуу кодтой тусгай функцтэмдэгтүүд
Хэрэв та томьёо бүрт тусгай тэмдэгт оруулах талаар санаа зовохыг хүсэхгүй байгаа бол тэдгээрийг кодонд шууд зааж өгч болно:
Function RemoveSpecialChars(str As String ) As String Dim тэмдэгт As String Dim index As. Урт тэмдэгтүүд = "?¿!¡*%#$(){}[]^&/\~+-" Индексийн хувьд = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1)) , "" ) Next RemoveSpecialChars = str Төгсгөлийн функцДээрх код нь үзүүлэх зорилготой гэдгийг санаарай. Практикт ашиглахын тулд устгахыг хүсэж буй бүх тэмдэгтүүдийг дараах мөрөнд оруулахаа мартуузай:
chars = "?¿!¡*%#$(){}[]^&/\~+-"
Энэ захиалгат функцийг RemoveSpecialChars гэж нэрлэдэг бөгөөд үүнд зөвхөн нэг л шаардлагатай. аргумент - анхны тэмдэгт мөр:
RemoveSpecialChars(string)Манай мэдээллийн багцаас тусгай тэмдэгтүүдийг хасахын тулд томъёо нь:
=RemoveSpecialChars(A2)
Excel дээр хэвлэх боломжгүй тэмдэгтүүдийг устгах
Microsoft Excel нь хэвлэгдэхгүй тэмдэгтүүдийг устгах тусгай функцтэй - CLEAN функцтэй. Техникийн хувьд энэ нь 7 битийн ASCII багцын эхний 32 тэмдэгтийг (0-ээс 31 хүртэлх код) хасдаг.
Жишээ нь, А2-аас хэвлэх боломжгүй тэмдэгтүүдийг устгахын тулд дараах томъёог ашиглах болно. :
=CLEAN(A2)
Энэ нь хэвлэгдэхгүй тэмдэгтүүдийг арилгах боловч текстийн өмнө/ард болон үгийн хоорондох зай үлдэнэ.
Хэнд нэмэлт зай -аас салж, TRIM функцэд CLEAN томъёог боож өгнө үү:
=TRIM(CLEAN(A2))
Одоо, бүх тэргүүлэх болонарын зайг арилгадаг бол хоорондын зайг нэг хоосон зай болгон багасгадаг:
Хэрэв та доторх бүх зайг устгахыг хүсвэл тэмдэгт мөр, дараа нь хоосон тэмдэгтийг (кодын дугаар 32) хоосон тэмдэгтээр солино:
=TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))
Зарим хоосон зай эсвэл бусад үл үзэгдэх тэмдэгтүүд хэвээр байна таны ажлын хуудас? Энэ нь тэдгээр тэмдэгтүүд Юникод тэмдэгтийн багцад өөр өөр утгатай байна гэсэн үг.
Жишээ нь, засардаггүй зайны ( ) тэмдэгтийн код нь 160 бөгөөд та үүнийг дараах томъёогоор цэвэрлэж болно:
=SUBSTITUTE(A2, CHAR(160)," ")
хэвлэхгүй тодорхой тэмдэгтийг арилгахын тулд эхлээд түүний кодын утгыг олох хэрэгтэй. Нарийвчилсан заавар болон томьёоны жишээ энд байна: Хэвлэхгүй тодорхой тэмдэгтийг хэрхэн устгах.
Ultimate Suite-тай тусгай тэмдэгтүүдийг устгах
Microsoft 365, Excel 2019 - 2010-д зориулсан Excel-ийг дэмждэг.
Сүүлийн жишээнд би Excel-ийн тусгай тэмдэгтүүдийг устгах хамгийн хялбар аргыг зааж өгье. Ultimate Suite суулгасан бол та дараах зүйлийг хийх хэрэгтэй:
- Ablebits Data табын Текст бүлгийн дээр товшино уу. Устгах > Тэмдэгтүүдийг устгах .
Хоромхон зуур та төгс үр дүнд хүрэх болно:
Хэрэв ямар нэг зүйл буруу болвол санаа зовох хэрэггүй - өгөгдмөлөөр Энэ ажлын хуудсыг нөөцлөх нүдийг сонгосон тул таны ажлын хуудасны нөөц хуулбар автоматаар үүсгэгдэх болно.
Манай Устгах хэрэгслийг туршиж үзэхийг хүсч байна уу? Үнэлгээний хувилбарын холбоос яг доор байна. Уншиж байгаад баярлалаа, ирэх долоо хоногт манай блог дээр уулзана гэж найдаж байна!
Боломжтой татан авалтууд
Тусгай тэмдэгтүүдийг устгах - жишээнүүд (.xlsm файл)
Ultimate Suite - туршилтын хувилбар хувилбар (.exe файл)