ສາລະບານ
ຕ້ອງການຈັດການຊ່ອງຫວ່າງດ້ວຍວິທີທີ່ມີປະສິດທິພາບທີ່ສຸດບໍ? ໃຊ້ສຳນວນປົກກະຕິເພື່ອລຶບຊ່ອງຫວ່າງທັງໝົດໃນຕາລາງ, ແທນທີ່ຫຼາຍຊ່ອງດ້ວຍຕົວອັກສອນຕົວດຽວ, ຕັດຍະຫວ່າງລະຫວ່າງຕົວເລກເທົ່ານັ້ນ, ແລະອື່ນໆອີກ.
ການປ້ອນຂໍ້ມູນອັນໃດທີ່ທ່ານກໍາລັງໃຊ້, ທ່ານບໍ່ຄ່ອຍຈະພົບກັບ ຊຸດຂໍ້ມູນທີ່ບໍ່ມີຊ່ອງຫວ່າງ. ໃນກໍລະນີຫຼາຍທີ່ສຸດ, ຊ່ອງຫວ່າງແມ່ນດີ - ທ່ານໃຊ້ມັນເພື່ອແຍກຂໍ້ມູນທີ່ແຕກຕ່າງກັນໂດຍສາຍຕາເພື່ອເຮັດໃຫ້ມັນງ່າຍຕໍ່ການຮັບຮູ້. ແນວໃດກໍ່ຕາມ, ໃນບາງສະຖານະການ, ມັນອາດຈະກາຍເປັນສິ່ງທີ່ຊົ່ວຮ້າຍ - ຊ່ອງຫວ່າງເພີ່ມເຕີມສາມາດເຮັດໃຫ້ສູດຂອງທ່ານສັບສົນແລະເຮັດໃຫ້ແຜ່ນວຽກຂອງທ່ານເກືອບບໍ່ສາມາດຈັດການໄດ້.
ເປັນຫຍັງໃຊ້ການສະແດງອອກປົກກະຕິເພື່ອຕັດຍະຫວ່າງໃນ Excel?
ກ່ອນທີ່ພວກເຮົາຈະເຂົ້າໄປໃນ nitty-gritty ຂອງການນໍາໃຊ້ການສະແດງອອກປົກກະຕິເພື່ອເອົາ whitespaces ໃນ Excel worksheets, ຂ້າພະເຈົ້າຕ້ອງການທີ່ຈະແກ້ໄຂຄໍາຖາມທີ່ມາໃນທໍາອິດ - ເປັນຫຍັງພວກເຮົາຕ້ອງການ regexes ເມື່ອ Excel ມີ TRIM ແລ້ວ. ຟັງຊັນ?
ເພື່ອເຂົ້າໃຈຄວາມແຕກຕ່າງ, ໃຫ້ເບິ່ງສິ່ງທີ່ຖືກພິຈາລະນາເປັນຊ່ອງຫວ່າງໃນແຕ່ລະກໍລະນີ:
- ຟັງຊັນ TRIM ທີ່ມີໃນຕົວສາມາດລອກອອກໄດ້ພຽງແຕ່ ຕົວອັກສອນຊ່ອງ ທີ່ມີຄ່າ 32 ໃນລະບົບ 7-bit ASCII.
- ການສະແດງອອກແບບປົກກະຕິສາມາດລະບຸຮູບແບບຕ່າງໆຂອງຊ່ອງຫວ່າງຕ່າງໆ ເຊັ່ນ: space ( ), tab (\t), carriage return (\r), ແລະໃຫມ່ ແຖວ (\n). ນອກຈາກນັ້ນ, ຍັງມີ ຕົວອັກສອນຊ່ອງຂາວ (\s) ທີ່ກົງກັບທຸກປະເພດເຫຼົ່ານີ້ ແລະເປັນປະໂຫຍດທີ່ສຸດສໍາລັບການທໍາຄວາມສະອາດວັດສະດຸປ້ອນດິບ.ຂໍ້ມູນ.
ຮູ້ສິ່ງທີ່ເກີດຂຶ້ນຢູ່ເບື້ອງຫຼັງຢ່າງແນ່ນອນ, ມັນງ່າຍຂຶ້ນຫຼາຍທີ່ຈະແກ້ໄຂບັນຫາ, ບໍ່ແມ່ນບໍ?
ວິທີເປີດໃຊ້ການສະແດງອອກປົກກະຕິໃນ Excel
ມັນເປັນຄວາມຈິງທີ່ຮູ້ກັນດີວ່າ Excel ຢູ່ນອກກ່ອງບໍ່ສະຫນັບສະຫນູນການສະແດງອອກປົກກະຕິ. ເພື່ອເປີດໃຊ້ພວກມັນ, ທ່ານຈໍາເປັນຕ້ອງສ້າງຟັງຊັນ VBA ແບບກໍານົດເອງ. ໂຊກດີ, ພວກເຮົາມີອັນໜຶ່ງແລ້ວ, ຊື່ວ່າ RegExpReplace . ລໍຖ້າ, ເປັນຫຍັງ "ທົດແທນ" ໃນຂະນະທີ່ພວກເຮົາເວົ້າກ່ຽວກັບການຖອນອອກ? ໃນພາສາ Excel, "remove" ແມ່ນພຽງແຕ່ຄໍາສັບອື່ນສໍາລັບ "replace with an empty string" :)
ເພື່ອເພີ່ມຟັງຊັນໃນ Excel ຂອງທ່ານ, ພຽງແຕ່ຄັດລອກລະຫັດຂອງມັນຈາກຫນ້ານີ້, ວາງມັນຢູ່ໃນຕົວແກ້ໄຂ VBA. , ແລະບັນທຶກໄຟລ໌ຂອງທ່ານເປັນ Macro-enabled workbook (.xlsm).
ນີ້ແມ່ນ syntax ຂອງຟັງຊັນສໍາລັບການອ້າງອີງຂອງທ່ານ:
RegExpReplace(ຂໍ້ຄວາມ, ຮູບແບບ, ການທົດແທນ, [instance_num] , [match_case])ສາມ argument ທໍາອິດແມ່ນຕ້ອງການ, ສອງອັນສຸດທ້າຍແມ່ນທາງເລືອກ.
Where:
- Text - string the original to ຄົ້ນຫາໃນ.
- ຮູບແບບ - regex ເພື່ອຊອກຫາ. ເພື່ອ ລຶບ ຍະຫວ່າງ , ທ່ານຕ້ອງຕັ້ງອາກິວເມັນນີ້ເປັນ:
- ສະຕຣິງຫວ່າງເປົ່າ ("") ເພື່ອຕັດຍະຫວ່າງທັງໝົດຢ່າງແທ້ຈິງ<11
- ຍະຫວ່າງ ຕົວອັກສອນ (" ") ເພື່ອປ່ຽນແທນທີ່ຫຼາຍຍະຫວ່າງດ້ວຍຕົວອັກສອນຍະຫວ່າງຕົວດຽວ
ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ກະລຸນາເບິ່ງຟັງຊັນ RegExpReplace.
ວິທີລຶບຊ່ອງຫວ່າງດ້ວຍ regex - ຕົວຢ່າງ
ດ້ວຍ ຟັງຊັນ RegExpReplace ທີ່ເພີ່ມໃສ່ປຶ້ມວຽກຂອງທ່ານ, ໃຫ້ພວກເຮົາແກ້ໄຂສະຖານະການຕ່າງໆເທື່ອລະອັນ.
ລຶບຊ່ອງຫວ່າງທັງໝົດອອກໂດຍໃຊ້ regex
ເພື່ອລຶບຊ່ອງຫວ່າງທັງໝົດໃນສະຕຣິງໃດໜຶ່ງ, ທ່ານພຽງແຕ່ຊອກຫາຕົວອັກສອນທີ່ມີຊ່ອງຫວ່າງທັງໝົດ, ລວມທັງ ຊ່ອງຫວ່າງ, ແຖບ, ການສົ່ງຄືນ carriage ແລະເສັ້ນ feed, ແລະປ່ຽນແທນພວກມັນດ້ວຍສະຕຣິງຫວ່າງເປົ່າ ("").
Pattern : \s+
ການປ່ຽນແທນ : ""
ສົມມຸດວ່າສະຕຣິງຕົ້ນສະບັບຢູ່ໃນ A5, ສູດໃນ B5 ແມ່ນ:
=RegExpReplace(A5, "\s+", "")
ເພື່ອເຮັດໃຫ້ມັນງ່າຍຂຶ້ນໃນການຈັດການຮູບແບບຂອງທ່ານ. , ທ່ານສາມາດປ້ອນ regex ໃນເຊລທີ່ກຳນົດໄວ້ລ່ວງໜ້າ ແລະສະໜອງມັນໃຫ້ກັບສູດຄຳນວນໂດຍໃຊ້ການອ້າງອີງຢ່າງແທ້ຈິງເຊັ່ນ $A$2, ສະນັ້ນ ທີ່ຢູ່ຕາລາງຈະບໍ່ປ່ຽນແປງເມື່ອສຳເນົາສູດລົງຖັນ.
=RegExpReplace(A5, $A$2, "")
ລຶບຫຼາຍກວ່າໜຶ່ງຊ່ອງຫວ່າງ
ເພື່ອລຶບ ຊ່ອງຫວ່າງເພີ່ມເຕີມ (ເຊັ່ນ: ຫຼາຍກວ່ານັ້ນ. n ຫນຶ່ງຊ່ອງຕິດຕໍ່ກັນ), ໃຊ້ regex \s+ ດຽວກັນແຕ່ແທນທີ່ການຈັບຄູ່ທີ່ພົບເຫັນດ້ວຍຕົວອັກສອນຊ່ອງດຽວ.
ຮູບແບບ : \s+
ການທົດແທນ : "
=RegExpReplace(A5, "\s+", " ")
ກະລຸນາໃສ່ໃຈວ່າສູດນີ້ຮັກສາຊ່ອງຫວ່າງອັນດຽວບໍ່ພຽງແຕ່ລະຫວ່າງຂ້າງລຸ່ມຊຸດຂໍ້ມູນ, ສົມມຸດວ່າທ່ານຕ້ອງການຕັດພື້ນທີ່ນໍາໜ້າ/ຕໍ່ທ້າຍທັງໝົດ ແລະທັງໝົດ ຍົກເວັ້ນຊ່ອງຫວ່າງລະຫວ່າງບ່ອນດຽວ, ຮັກສາຫຼາຍເສັ້ນໄວ້ຢູ່ສະເໝີ. ເພື່ອເຮັດສຳເລັດໜ້າວຽກ, ທ່ານຈະຕ້ອງການສອງຟັງຊັນ RegExpReplace ທີ່ແຕກຕ່າງກັນ.
ຟັງຊັນທຳອິດແທນທີ່ຫຼາຍຊ່ອງດ້ວຍຕົວອັກສອນຊ່ອງດຽວ.
=RegExpReplace(A5, " +", " ")
ອີກອັນໜຶ່ງມີຊ່ອງຫວ່າງ. ຈາກຈຸດເລີ່ມຕົ້ນ ແລະຈຸດສິ້ນສຸດຂອງແຖວ:
=RegExpReplace(A5, "^ +| +$", "")
ພຽງແຕ່ວາງສອງໜ້າທີ່ອັນໜຶ່ງໃສ່ໃນອີກອັນໜຶ່ງ:
=RegExpReplace(RegExpReplace(A5, " +", " "), "^ +| +$", "")
ແລະ ທ່ານຈະໄດ້ຮັບ ຜົນໄດ້ຮັບທີ່ສົມບູນແບບ:
Regex ເພື່ອທົດແທນການຍະຫວ່າງຫຼາຍຊ່ອງດ້ວຍຕົວອັກສອນຕົວດຽວ
ໃນກໍລະນີທີ່ທ່ານຕ້ອງການລຶບຊ່ອງຫວ່າງທັງໝົດອອກຈາກສະຕຣິງ ແລະປ່ຽນແທນແຕ່ລະກຸ່ມຊ່ອງຫວ່າງຕິດຕໍ່ກັນ ດ້ວຍລັກສະນະສະເພາະ, ນີ້ແມ່ນສິ່ງທີ່ທ່ານຕ້ອງເຮັດ:
ກ່ອນອື່ນໝົດ, ໃຊ້ regex ນີ້ເພື່ອຕັດຊ່ອງຫວ່າງທາງໜ້າ ແລະຕໍ່ທ້າຍ:
=RegExpReplace(A8, "^[\s]+|[\s]+$", "")
ຈາກນັ້ນ, ໃຫ້ໃຊ້ໜ້າທີ່ຂ້າງເທິງ. ກັບ ຂໍ້ຄວາມ argument ຂອງ RegExpReplace ອື່ນທີ່ແທນທີ່ຫນຶ່ງຫຼືຫຼາຍຊ່ອງຫວ່າງຕິດຕໍ່ກັນດ້ວຍຕົວອັກສອນທີ່ທ່ານລະບຸ, ເຊັ່ນ:. a hyphen:
Pattern : \s+
Replacement : -
ສົມມຸດວ່າສະຕຣິງຕົ້ນສະບັບຢູ່ໃນ A8, ສູດຄຳນວນ ເອົາຮູບແບບນີ້:
=RegExpReplace(RegExpReplace(A8, "^[\s]+|[\s]+$", ""), "\s+", "-")
ຫຼືທ່ານສາມາດໃສ່ຮູບແບບແລະການທົດແທນໃນຕາລາງແຍກຕ່າງຫາກເຊັ່ນ: ສະແດງໃຫ້ເຫັນໃນຫນ້າຈໍ:
Regex ເພື່ອເອົາເສັ້ນເປົ່າອອກ
ນີ້ແມ່ນຄໍາຖາມທີ່ຜູ້ໃຊ້ທີ່ມີຫຼາຍເສັ້ນຢູ່ໃນເຊລຫນຶ່ງຖາມເລື້ອຍໆ: "ມີເສັ້ນຫວ່າງຫຼາຍຢູ່ໃນເຊລຂອງຂ້ອຍ. ມີວິທີໃດທີ່ຈະໄດ້ກໍາຈັດພວກມັນນອກຈາກຈະຜ່ານແຕ່ລະເຊລ ແລະລຶບແຕ່ລະແຖວດ້ວຍຕົນເອງບໍ?” ຄໍາຕອບ: ນັ້ນງ່າຍ!
ເພື່ອຈັບຄູ່ແຖວຫວ່າງທີ່ບໍ່ມີຕົວອັກສອນດຽວຕັ້ງແຕ່ຕົ້ນ ^ ຂອງແຖວປັດຈຸບັນເຖິງ. ແຖວຕໍ່ໄປ \n, regex ແມ່ນ:
Pattern : ^\n
ຖ້າເສັ້ນຫວ່າງທາງສາຍຕາຂອງທ່ານມີຊ່ອງຫວ່າງ ຫຼືແຖບ, ໃຫ້ໃຊ້ການສະແດງອອກປົກກະຕິນີ້:
Pattern : ^[\t ]*\n
ພຽງແຕ່ແທນທີ່ regex ດ້ວຍສະຕຣິງຫວ່າງເປົ່າໂດຍໃຊ້ສູດນີ້, ແລະເສັ້ນຫວ່າງທັງໝົດຈະໝົດໄປພ້ອມກັນ!
=RegExpReplace(A5, $A$2, "")
ການເອົາຊ່ອງຫວ່າງອອກດ້ວຍເຄື່ອງມື RegEx
ຕົວຢ່າງຂ້າງເທິງໄດ້ສະແດງໃຫ້ເຫັນເຖິງຄວາມເປັນໄປໄດ້ອັນດີເລີດທີ່ສະໜອງໃຫ້ໂດຍ regexes. ແຕ່ໜ້າເສຍດາຍ, ບໍ່ແມ່ນທັງໝົດ. ຄຸນສົມບັດຂອງການສະແດງຜົນແບບປົກກະຕິແບບຄລາສສິກແມ່ນມີຢູ່ໃນ VBA.
ໂຊກດີ, ເຄື່ອງມື RegEx ທີ່ມາພ້ອມກັບ Ultimate Suite ຂອງພວກເຮົາແມ່ນບໍ່ມີຂໍ້ຈຳກັດເຫຼົ່ານີ້ ເນື່ອງຈາກພວກມັນຖືກປະມວນຜົນໂດຍເຄື່ອງຈັກ .NET RegEx ຂອງ Microsoft. ນີ້ຊ່ວຍໃຫ້ທ່ານສ້າງຮູບແບບທີ່ຊັບຊ້ອນຫຼາຍຂຶ້ນ. ບໍ່ຮອງຮັບໂດຍ VBA RegExp. Belo w ທ່ານຈະເຫັນຕົວຢ່າງຂອງການສະແດງຜົນປົກກະຕິດັ່ງກ່າວ.
Regex ເພື່ອເອົາຊ່ອງຫວ່າງລະຫວ່າງຕົວເລກ
ໃນສະຕຣິງທີ່ເປັນຕົວອັກສອນ ແລະຕົວເລກ, ສົມມຸດວ່າທ່ານຕ້ອງການລຶບຊ່ອງຫວ່າງລະຫວ່າງຕົວເລກເທົ່ານັ້ນ, ດັ່ງນັ້ນ string ເຊັ່ນ: "A 1 2 B" ກາຍເປັນ "A 12 B." : (?<=\d)\s+(?=\d)
ເພື່ອສ້າງສູດໂດຍອີງໃສ່ໃນ regexes ຂ້າງເທິງ, ນີ້ແມ່ນສອງຂັ້ນຕອນງ່າຍໆເພື່ອປະຕິບັດ:
- ໃນແຖບ Ablebits Data , ໃນກຸ່ມ ຂໍ້ຄວາມ , ຄລິກ Regex Tools .
- ໃນແຖບ Regex Tools , ເລືອກແຫຼ່ງຂໍ້ມູນ, ໃສ່ regex ຂອງທ່ານ, ເລືອກ ເອົາອອກ ທາງເລືອກ, ແລະກົດ ເອົາອອກ .
ເພື່ອໃຫ້ໄດ້ຜົນລັບທີ່ເປັນສູດ, ບໍ່ແມ່ນຄ່າ, ຢ່າລືມໃສ່ເຄື່ອງໝາຍຕິກໃສ່ໃນປ່ອງ Insert as a formula .
ໃນອີກບໍ່ດົນ, ທ່ານຈະເຫັນຟັງຊັນ AblebitsRegexRemove ແຊກຢູ່ໃນຖັນໃໝ່ທາງຂວາຂອງຂໍ້ມູນຕົ້ນສະບັບ.
ອີກທາງເລືອກໜຶ່ງ, ທ່ານສາມາດໃສ່ regex ໃນບາງເຊລໄດ້. , ເວົ້າ A5, ແລະໃສ່ສູດໂດຍກົງໃນຕາລາງໂດຍໃຊ້ກ່ອງໂຕ້ຕອບ Insert Function , ບ່ອນທີ່ AblebitsRegexRemove ຖືກຈັດປະເພດພາຍໃຕ້ AblebitsUDFs .
ເນື່ອງຈາກຟັງຊັນນີ້ຖືກອອກແບບມາເປັນພິເສດສໍາລັບການຖອນ strings, ມັນຕ້ອງການພຽງແຕ່ສອງ argument - string input ແລະ regex:
=AblebitsRegexRemove(A5, $A$2)
ນັ້ນຄືວິທີລຶບ spaces ໃນ Excel ການນໍາໃຊ້ສໍານວນປົກກະຕິ. ຂ້າພະເຈົ້າຂໍຂອບໃຈທ່ານສໍາລັບການອ່ານແລະຫວັງວ່າຈະໄດ້ພົບທ່ານໃນ blog ຂອງພວກເຮົາໃນອາທິດຕໍ່ໄປ!
ມີໃຫ້ດາວໂຫລດ
ລຶບ whitespace ດ້ວຍ regex - ຕົວຢ່າງ (ໄຟລ໌ .xlsm)
Ultimate Suite - ລຸ້ນທົດລອງ (ໄຟລ໌ .exe)
ຄໍາສັບຕ່າງໆແຕ່ຍັງຢູ່ໃນຕອນຕົ້ນແລະທ້າຍຂອງຊ່ອຍແນ່, ເຊິ່ງບໍ່ດີ. ເພື່ອກໍາຈັດຊ່ອງຫວ່າງຊັ້ນນໍາ ແລະ ຕິດຕາມ, ວາງສູດຂ້າງເທິງໃສ່ໃນຟັງຊັນ RegExpReplace ອື່ນທີ່ຕັດຊ່ອງຫວ່າງຈາກຕົ້ນ ແລະ ທ້າຍ: =RegExpReplace(RegExpReplace(A5, "\s+", " "), "^[\s]+|[\s]+$", "")
Regex ກັບ ເອົາຊ່ອງຫວ່າງທີ່ນຳໜ້າ ແລະຕາມຫຼັງອອກ
ເພື່ອຄົ້ນຫາພື້ນທີ່ຂາວໃນຕອນຕົ້ນ ຫຼື ທ້າຍແຖວ, ໃຫ້ໃຊ້ຈຸດເລີ່ມຕົ້ນ ^ ແລະສິ້ນສຸດ $ anchors.
ນຳໜ້າ ຊ່ອງຫວ່າງ:<3
Pattern : ^[\s]+
Trailing whitespace:
Pattern : [\s ]+$
ນຳໜ້າ ແລະ ຕາມຫຼັງ ຊ່ອງຫວ່າງ:
ຮູບແບບ : ^[\s]+