ງ່າຍດາຍ, ຢູ່ glance ທໍາອິດ, ບັນຫາທີ່ມີການແກ້ໄຂທີ່ບໍ່ຊັດເຈນ: ສະກັດຄໍາສຸດທ້າຍຈາກແຖວຂອງຂໍ້ຄວາມ. ດີ, ຫຼື, ໃນກໍລະນີທົ່ວໄປ, ຊິ້ນສຸດທ້າຍ, ແຍກໂດຍຕົວກໍານົດຕົວກໍານົດ (ຊ່ອງ, ເຄື່ອງໝາຍຈຸດ, ແລະອື່ນໆ) ໃນຄໍາສັບຕ່າງໆອື່ນໆ, ມັນຈໍາເປັນຕ້ອງປະຕິບັດການຄົ້ນຫາແບບປີ້ນກັບກັນ (ຈາກຈຸດເລີ່ມຕົ້ນ) ໃນສາຍຂອງ a. ລັກສະນະທີ່ໄດ້ຮັບແລະຫຼັງຈາກນັ້ນແຍກຕົວອັກສອນທັງຫມົດໄປທາງຂວາຂອງມັນ.
ລອງເບິ່ງວິທີການຕ່າງໆຕາມປະເພນີທີ່ເລືອກຈາກ: ສູດ, ມະຫາພາກ, ແລະຜ່ານ Power Query.
ວິທີການ 1. ສູດ
ເພື່ອເຮັດໃຫ້ມັນງ່າຍຕໍ່ການເຂົ້າໃຈໂດຍເນື້ອແທ້ແລ້ວແລະກົນໄກຂອງສູດ, ໃຫ້ເລີ່ມຕົ້ນຈາກໄລຍະໄກເລັກນ້ອຍ. ທໍາອິດ, ໃຫ້ເພີ່ມຈໍານວນຊ່ອງຫວ່າງລະຫວ່າງຄໍາສັບຕ່າງໆໃນຂໍ້ຄວາມແຫຼ່ງຂອງພວກເຮົາ, ສໍາລັບຕົວຢ່າງ, 20 ຊິ້ນ. ທ່ານສາມາດເຮັດສິ່ງນີ້ດ້ວຍຫນ້າທີ່ທົດແທນ. ແທນ (ປ່ຽນແທນ) ແລະການທໍາງານຂອງການເຮັດເລື້ມຄືນຕົວອັກສອນທີ່ໄດ້ຮັບ N-times – ປັບປຸງ ໃໝ່ (REPT):
ໃນປັດຈຸບັນພວກເຮົາຕັດອອກ 20 ຕົວອັກສອນຈາກທ້າຍຂອງຂໍ້ຄວາມຜົນໄດ້ຮັບໂດຍໃຊ້ຟັງຊັນ RIGHT (ຂວາ):
ມັນຮ້ອນຂຶ້ນແລ້ວ, ບໍ່ແມ່ນບໍ? ມັນຍັງຄົງເອົາພື້ນທີ່ພິເສດອອກໂດຍໃຊ້ຟັງຊັນ TRIM (TRIM) ແລະບັນຫາຈະໄດ້ຮັບການແກ້ໄຂ:
ໃນສະບັບພາສາອັງກິດ, ສູດຂອງພວກເຮົາຈະມີລັກສະນະນີ້:
=TRIM(RIGHT(SUBSTITUTE(A1;» «;REPT(» «;20));20))
ຂ້າພະເຈົ້າຫວັງວ່າມັນເປັນທີ່ຊັດເຈນວ່າໃນຫຼັກການ, ມັນບໍ່ຈໍາເປັນຕ້ອງໃສ່ຊ່ອງຫວ່າງ 20 ຢ່າງແນ່ນອນ - ຕົວເລກໃດກໍ່ຕາມ, ຕາບໃດທີ່ມັນຫຼາຍກວ່າຄວາມຍາວຂອງຄໍາທີ່ຍາວທີ່ສຸດໃນຂໍ້ຄວາມຕົ້ນສະບັບ.
ແລະຖ້າຂໍ້ຄວາມຕົ້ນສະບັບຈໍາເປັນຕ້ອງຖືກແບ່ງອອກໂດຍຊ່ອງຫວ່າງ, ແຕ່ໂດຍຕົວອັກສອນຕົວແຍກອື່ນ (ຕົວຢ່າງ, ໂດຍເຄື່ອງໝາຍຈຸດ), ສູດຂອງພວກເຮົາຈະຕ້ອງຖືກແກ້ໄຂເລັກນ້ອຍ:
ວິທີການ 2. ການທໍາງານຂອງ Macro
ວຽກງານການສະກັດເອົາຄໍາສຸດທ້າຍຫຼືຊິ້ນສ່ວນອອກຈາກຂໍ້ຄວາມຍັງສາມາດແກ້ໄຂໄດ້ໂດຍໃຊ້ macros, ຄື, ການຂຽນຫນ້າທີ່ຄົ້ນຫາແບບກົງກັນຂ້າມໃນ Visual Basic ທີ່ຈະເຮັດສິ່ງທີ່ພວກເຮົາຕ້ອງການ - ຄົ້ນຫາສາຍຍ່ອຍທີ່ໃຫ້ຢູ່ໃນສາຍໃນທິດທາງກົງກັນຂ້າມ - ຈາກ. ຈຸດສຸດທ້າຍກັບການເລີ່ມຕົ້ນ.
ກົດແປ້ນພິມລັດ alt+F11 ຫຼືປຸ່ມ Visual Basic ແຖບ ການພັດທະນາ (ຜູ້ພັດທະນາ)ເພື່ອເປີດບັນນາທິການມະຫາພາກ. ຫຼັງຈາກນັ້ນ, ເພີ່ມໂມດູນໃຫມ່ໂດຍຜ່ານເມນູ ໃສ່ - ໂມດູນ ແລະສຳເນົາລະຫັດຕໍ່ໄປນີ້ຢູ່ທີ່ນັ້ນ:
Function LastWord(txt As String, Optional delim As String = " ", Optional n As Integer = 1) As String arFragments = Split(txt, delim) LastWord = arFragments(UBound(arFragments) - n + 1) End Function
ດຽວນີ້ທ່ານສາມາດບັນທຶກປື້ມວຽກ (ໃນຮູບແບບທີ່ເປີດໃຊ້ Macro!) ແລະໃຊ້ຟັງຊັນທີ່ສ້າງຂື້ນໃນ syntax ຕໍ່ໄປນີ້:
=LastWord(txt ; delim ; n)
ບ່ອນທີ່
- txt - ຕາລາງທີ່ມີຂໍ້ຄວາມແຫຼ່ງ
- ຂອບເຂດ — ລັກສະນະຕົວແຍກ (ຄ່າເລີ່ມຕົ້ນ — ຊ່ອງ)
- n - ຄໍາໃດທີ່ຄວນຈະໄດ້ຮັບການສະກັດຈາກທີ່ສຸດ (ໂດຍເລີ່ມຕົ້ນ - ຄໍາທໍາອິດຈາກທີ່ສຸດ)
ດ້ວຍການປ່ຽນແປງໃດໆໃນຂໍ້ຄວາມຕົ້ນສະບັບໃນອະນາຄົດ, ຟັງຊັນມະຫາພາກຂອງພວກເຮົາຈະຖືກຄິດໄລ່ຄືນໃຫມ່ໃນທັນທີ, ຄືກັບຟັງຊັນ Excel ມາດຕະຖານໃດໆ.
ວິທີການ 3. Power Query
ແບບສອບຖາມພະລັງງານ ເປັນ add-on ຟຣີຈາກ Microsoft ສໍາລັບການນໍາເຂົ້າຂໍ້ມູນເຂົ້າໄປໃນ Excel ຈາກເກືອບທຸກແຫຼ່ງແລະຫຼັງຈາກນັ້ນປ່ຽນຂໍ້ມູນທີ່ດາວໂຫລດໄປໃນຮູບແບບໃດກໍ່ຕາມ. ພະລັງງານແລະຄວາມເຢັນຂອງ add-in ນີ້ແມ່ນດີຫຼາຍທີ່ Microsoft ໄດ້ສ້າງຄຸນສົມບັດທັງຫມົດຂອງມັນເຂົ້າໄປໃນ Excel 2016 ໂດຍຄ່າເລີ່ມຕົ້ນ. ສໍາລັບ Excel 2010-2013 Power Query ສາມາດດາວໂຫຼດໄດ້ຟຣີຈາກທີ່ນີ້.
ວຽກງານຂອງພວກເຮົາໃນການແຍກຄໍາສຸດທ້າຍຫຼືຊິ້ນສ່ວນໂດຍຜ່ານຕົວແຍກທີ່ໃຫ້ໂດຍໃຊ້ Power Query ແມ່ນແກ້ໄຂໄດ້ງ່າຍທີ່ສຸດ.
ກ່ອນອື່ນ, ໃຫ້ປ່ຽນຕາຕະລາງຂໍ້ມູນຂອງພວກເຮົາໃຫ້ເປັນຕາຕະລາງອັດສະລິຍະໂດຍໃຊ້ປຸ່ມລັດແປ້ນພິມ. Ctrl+T ຫຼືຄໍາສັ່ງ ຫນ້າທໍາອິດ – ຈັດຮູບແບບເປັນຕາຕະລາງ (ຫນ້າທໍາອິດ — Format as ຕາຕະລາງ):
ຫຼັງຈາກນັ້ນ, ພວກເຮົາໂຫລດ "ຕາຕະລາງ smart" ທີ່ສ້າງຂຶ້ນເຂົ້າໄປໃນ Power Query ໂດຍໃຊ້ຄໍາສັ່ງ ຈາກຕາຕະລາງ/ໄລຍະ (ຈາກຕາຕະລາງ/ໄລຍະ) ແຖບ ຂໍ້ມູນ (ຖ້າທ່ານມີ Excel 2016) ຫຼືຢູ່ໃນແຖບ ແບບສອບຖາມພະລັງງານ (ຖ້າທ່ານມີ Excel 2010-2013):
ຢູ່ໃນປ່ອງຢ້ຽມແກ້ໄຂການສອບຖາມທີ່ເປີດ, ໃນແຖບ ການຫັນເປັນ (ຫັນປ່ຽນ) ເລືອກທີມ ຖັນແຍກ – ໂດຍຕົວຂັ້ນ (ແຍກຖັນ - ໂດຍຕົວຂັ້ນ) ແລະຫຼັງຈາກນັ້ນມັນຍັງຄົງທີ່ຈະກໍານົດລັກສະນະຕົວແຍກແລະເລືອກເອົາທາງເລືອກ ຕົວຂັ້ນຂວາສຸດຕັດບໍ່ແມ່ນຄໍາສັບຕ່າງໆທັງຫມົດ, ແຕ່ມີພຽງແຕ່ຄໍາສຸດທ້າຍ:
ຫຼັງຈາກທີ່ຄລິກໃສ່ OK ຄໍາສຸດທ້າຍຈະຖືກແຍກອອກເປັນຖັນໃຫມ່. ຖັນທຳອິດທີ່ບໍ່ຈຳເປັນສາມາດເອົາອອກໄດ້ໂດຍການຄລິກຂວາໃສ່ຫົວຂອງມັນ ແລະເລືອກ ເອົາ (ລຶບ). ທ່ານຍັງສາມາດປ່ຽນຊື່ຖັນທີ່ຍັງເຫຼືອຢູ່ໃນສ່ວນຫົວຂອງຕາຕະລາງ.
ຜົນໄດ້ຮັບສາມາດຖືກອັບໂຫລດກັບຄືນໄປບ່ອນແຜ່ນໂດຍໃຊ້ຄໍາສັ່ງ ຫນ້າທໍາອິດ — Close and Load — Close and Load to … (ໜ້າຫຼັກ — ປິດ & ໂຫຼດ — ປິດ & ໂຫຼດໃສ່…):
ແລະດັ່ງນັ້ນພວກເຮົາໄດ້ຮັບ:
ແບບນີ້ - ລາຄາຖືກແລະມີຄວາມສຸກ, ບໍ່ມີສູດແລະມະຫາພາກ, ເກືອບໂດຍບໍ່ມີການແຕະແປ້ນພິມ🙂
ຖ້າບັນຊີລາຍຊື່ຕົ້ນສະບັບມີການປ່ຽນແປງໃນອະນາຄົດ, ມັນຈະພຽງພໍທີ່ຈະຄລິກຂວາຫຼືໃຊ້ແປ້ນພິມລັດ Ctrl+alt+F5 ປັບປຸງການຮ້ອງຂໍຂອງພວກເຮົາ.
- ການແຍກຂໍ້ຄວາມຫນຽວເປັນຖັນ
- parsing ແລະ parsing ຂໍ້ຄວາມທີ່ມີສໍານວນປົກກະຕິ
- ສະກັດຄໍາທໍາອິດຈາກຂໍ້ຄວາມດ້ວຍຟັງຊັນ SUBSTITUTE