LAMBDA ແມ່ນຟັງຊັນໃໝ່ຂອງ Excel

ໃນປັດຈຸບັນ, Microsoft Excel ມີເກືອບຫ້າຮ້ອຍຫນ້າທີ່ເຮັດວຽກທີ່ມີຢູ່ໃນປ່ອງຢ້ຽມຂອງຄວາມຍາວປາ Function – ປຸ່ມ fx ໃນແຖບສູດ. ນີ້ແມ່ນຊຸດທີ່ ເໝາະ ສົມທີ່ສຸດ, ແຕ່ຢ່າງໃດກໍ່ຕາມ, ເກືອບທຸກຜູ້ໃຊ້ໄວຫຼືຕໍ່ມາພົບກັບສະຖານະການທີ່ບັນຊີລາຍຊື່ນີ້ບໍ່ມີຫນ້າທີ່ລາວຕ້ອງການ - ພຽງແຕ່ເນື່ອງຈາກວ່າມັນບໍ່ແມ່ນຢູ່ໃນ Excel.

ຈົນກ່ວາໃນປັດຈຸບັນ, ວິທີດຽວທີ່ຈະແກ້ໄຂບັນຫານີ້ແມ່ນ macros, ie ການຂຽນຫນ້າທີ່ກໍານົດໂດຍຜູ້ໃຊ້ຂອງທ່ານເອງ (UDF = User Defined Function) ໃນ Visual Basic, ເຊິ່ງຕ້ອງການທັກສະການຂຽນໂປລແກລມທີ່ເຫມາະສົມແລະບາງຄັ້ງກໍ່ບໍ່ງ່າຍເລີຍ. ຢ່າງໃດກໍຕາມ, ດ້ວຍການອັບເດດ Office 365 ຫຼ້າສຸດ, ສະຖານະການໄດ້ມີການປ່ຽນແປງທີ່ດີກວ່າ - ຟັງຊັນ "wrapper" ພິເສດໄດ້ຖືກເພີ່ມເຂົ້າໃນ Excel. LAMBDA. ດ້ວຍການຊ່ວຍເຫຼືອຂອງມັນ, ວຽກງານຂອງການສ້າງຫນ້າທີ່ຂອງຕົນເອງໄດ້ຖືກແກ້ໄຂໄດ້ງ່າຍແລະສວຍງາມ.

ໃຫ້ເບິ່ງຫຼັກການຂອງການນໍາໃຊ້ຂອງມັນໃນຕົວຢ່າງຕໍ່ໄປນີ້.

ດັ່ງທີ່ເຈົ້າອາດຈະຮູ້ຫຼາຍທີ່ສຸດ, Excel ມີຫຼາຍຫນ້າທີ່ວິເຄາະວັນທີທີ່ຊ່ວຍໃຫ້ທ່ານສາມາດກໍານົດຈໍານວນມື້, ເດືອນ, ອາທິດ, ແລະປີສໍາລັບວັນທີທີ່ກໍານົດໄວ້. ແຕ່ສໍາລັບບາງເຫດຜົນບໍ່ມີຫນ້າທີ່ກໍານົດຈໍານວນຂອງໄຕມາດ, ເຊິ່ງມັກຈະຕ້ອງການ, ແມ່ນບໍ? ໃຫ້ແກ້ໄຂຂໍ້ບົກຜ່ອງນີ້ແລະສ້າງດ້ວຍ LAMBDA ຫນ້າທີ່ໃຫມ່ຂອງຕົນເອງເພື່ອແກ້ໄຂບັນຫານີ້.

ຂັ້ນຕອນທີ 1. ຂຽນສູດ

ໃຫ້ເລີ່ມຕົ້ນດ້ວຍຄວາມຈິງທີ່ວ່າດ້ວຍຕົນເອງໃນແບບປົກກະຕິທີ່ພວກເຮົາຈະຂຽນສູດໃນຕາລາງແຜ່ນທີ່ຄິດໄລ່ສິ່ງທີ່ພວກເຮົາຕ້ອງການ. ໃນກໍລະນີຂອງຕົວເລກໄຕມາດ, ນີ້ສາມາດເຮັດໄດ້, ສໍາລັບການຍົກຕົວຢ່າງ, ເຊັ່ນນີ້:

LAMBDA ແມ່ນ Excels New Super Function

ຂັ້ນຕອນທີ 2. ຫໍ່ຂຶ້ນໃນ LAMBDA ແລະການທົດສອບ

ໃນປັດຈຸບັນມັນເຖິງເວລາທີ່ຈະນໍາໃຊ້ຟັງຊັນ LAMBDA ໃຫມ່ແລະຫໍ່ສູດຂອງພວກເຮົາໃນມັນ. syntax ຂອງຟັງຊັນມີດັ່ງນີ້:

=LAMBDA(ຕົວແປ1; ຕົວແປ2; … ຕົວແປN ; ການສະແດງອອກ)

ບ່ອນທີ່ຊື່ຂອງຕົວແປຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນຖືກລະບຸໄວ້ກ່ອນ, ແລະການໂຕ້ຖຽງສຸດທ້າຍແມ່ນສະເຫມີສູດຫຼືການຄິດໄລ່ທີ່ໃຊ້ພວກມັນ. ຊື່ຕົວແປບໍ່ຄວນຄ້າຍຄືກັບທີ່ຢູ່ເຊລ ແລະບໍ່ຄວນມີຈຸດ.

ໃນກໍລະນີຂອງພວກເຮົາ, ຈະມີຕົວແປອັນດຽວ - ວັນທີທີ່ພວກເຮົາຄິດໄລ່ຕົວເລກໄຕມາດ. ໃຫ້ໂທຫາຕົວແປສໍາລັບມັນ, ເວົ້າວ່າ, d. ຫຼັງຈາກນັ້ນ, ຫໍ່ສູດຂອງພວກເຮົາໃນຫນ້າທີ່ LAMBDA ແລະການທົດແທນທີ່ຢູ່ຂອງຈຸລັງຕົ້ນສະບັບ A2 ດ້ວຍຊື່ຕົວແປທີ່ສົມມຸດຕິຖານ, ພວກເຮົາໄດ້ຮັບ:

LAMBDA ແມ່ນ Excels New Super Function

ກະລຸນາສັງເກດວ່າຫຼັງຈາກການຫັນປ່ຽນດັ່ງກ່າວ, ສູດຂອງພວກເຮົາ (ໃນຄວາມເປັນຈິງ, ຖືກຕ້ອງ!) ໄດ້ເລີ່ມຕົ້ນທີ່ຈະຜະລິດຄວາມຜິດພາດ, ເພາະວ່າໃນປັດຈຸບັນຕົ້ນສະບັບຈາກເຊນ A2 ບໍ່ໄດ້ຖືກໂອນໄປຫາມັນ. ສໍາລັບການທົດສອບແລະຄວາມຫມັ້ນໃຈ, ທ່ານສາມາດຜ່ານການໂຕ້ຖຽງກັບມັນໂດຍການເພີ່ມພວກມັນຫຼັງຈາກຟັງຊັນ LAMBDA ໃນວົງເລັບ:

LAMBDA ແມ່ນ Excels New Super Function

ຂັ້ນຕອນທີ 3. ສ້າງຊື່

ໃນປັດຈຸບັນສໍາລັບພາກສ່ວນທີ່ງ່າຍແລະມ່ວນຊື່ນ. ພວກເຮົາເປີດ ຜູ້ຈັດການຊື່ ແຖບ ສູດ (ສູດ — ຜູ້​ຈັດ​ການ​ຊື່​) ແລະສ້າງຊື່ໃຫມ່ດ້ວຍປຸ່ມ ສ້າງ (ສ້າງ). ມາກັບແລະໃສ່ຊື່ສໍາລັບຫນ້າທີ່ຂອງພວກເຮົາໃນອະນາຄົດ (ຕົວຢ່າງ: ໂນມຄວາທາລາ), ແລະໃນພາກສະຫນາມ ການເຊື່ອມຕໍ່ (ກະສານອ້າງອີງ) ຄັດລອກຢ່າງລະມັດລະວັງຈາກແຖບສູດແລະວາງຫນ້າທີ່ຂອງພວກເຮົາ LAMBDA, ພຽງແຕ່ບໍ່ມີການໂຕ້ຖຽງສຸດທ້າຍ (A2):

LAMBDA ແມ່ນ Excels New Super Function

ທຸກຢ່າງ. ຫຼັງຈາກທີ່ຄລິກໃສ່ OK ຟັງຊັນທີ່ສ້າງຂື້ນສາມາດຖືກນໍາໃຊ້ໃນຕາລາງໃດໆໃນເອກະສານໃດໆຂອງປື້ມຄູ່ມືນີ້:

LAMBDA ແມ່ນ Excels New Super Function

ໃຊ້ໃນປຶ້ມອື່ນໆ

ເນື່ອງ​ຈາກ​ວ່າ​ການ​ສ້າງ​ຕັ້ງ​ຂື້ນ​ກັບ​ LAMBDA ນັບຕັ້ງແຕ່ຟັງຊັນທີ່ຜູ້ໃຊ້ກໍານົດແມ່ນ, ໃນຄວາມເປັນຈິງ, ຂອບເຂດທີ່ມີຊື່, ທ່ານສາມາດເຮັດໃຫ້ພວກມັນມີຢູ່ໃນປື້ມວຽກປະຈຸບັນໄດ້ຢ່າງງ່າຍດາຍ. ມັນຈະພຽງພໍທີ່ຈະຄັດລອກຕາລາງທີ່ມີຟັງຊັນແລະວາງມັນຢູ່ບ່ອນໃດກໍໄດ້ໃນເອກະສານຂອງໄຟລ໌ອື່ນ.

LAMBDA ແລະອາເຣແບບໄດນາມິກ

ຟັງຊັນແບບກຳນົດເອງທີ່ສ້າງຂຶ້ນດ້ວຍຟັງຊັນ LAMBDA ສະ​ຫນັບ​ສະ​ຫນູນ​ສົບ​ຜົນ​ສໍາ​ເລັດ​ການ​ເຮັດ​ວຽກ​ກັບ array dynamic ໃຫມ່​ແລະ​ຫນ້າ​ທີ່​ຂອງ​ເຂົາ​ເຈົ້າ (FILTER, UNIQUE, ລະດັບຊັ້ນຮຽນ) ເພີ່ມໃສ່ Microsoft Excel ໃນປີ 2020.

ສົມມຸດວ່າພວກເຮົາຕ້ອງການສ້າງຫນ້າທີ່ກໍານົດໂດຍຜູ້ໃຊ້ໃຫມ່ທີ່ຈະປຽບທຽບສອງລາຍຊື່ແລະສົ່ງຄືນຄວາມແຕກຕ່າງລະຫວ່າງພວກມັນ - ອົງປະກອບເຫຼົ່ານັ້ນຈາກບັນຊີລາຍຊື່ທໍາອິດທີ່ບໍ່ໄດ້ຢູ່ໃນທີສອງ. ການເຮັດວຽກຂອງຊີວິດ, ບໍ່ແມ່ນບໍ? ກ່ອນຫນ້ານີ້, ສໍາລັບການນີ້, ພວກເຂົາເຈົ້າໄດ້ນໍາໃຊ້ທັງສອງຫນ້າທີ່ a la VPR (VLOOKUP), ຫຼື PivotTables, ຫຼືການສອບຖາມ Power Query. ໃນປັດຈຸບັນທ່ານສາມາດເຮັດໄດ້ດ້ວຍສູດຫນຶ່ງ:

LAMBDA ແມ່ນ Excels New Super Function

ໃນ​ສະ​ບັບ​ພາ​ສາ​ອັງ​ກິດ​ຈະ​ເປັນ​:

=LAMBDA(a;b;ФИЛЬТР(a;СЧЁТЕСЛИ(b;a)=0))(A1:A6;C1:C10)

ທີ່ນີ້ຫນ້າທີ່ COUNTIF ນັບຈໍານວນການປະກົດຕົວຂອງແຕ່ລະອົງປະກອບຂອງບັນຊີລາຍຊື່ທໍາອິດໃນທີສອງ, ແລະຫຼັງຈາກນັ້ນຟັງຊັນ FILTER ເລືອກພຽງແຕ່ຜູ້ທີ່ບໍ່ໄດ້ປະກົດຕົວເຫຼົ່ານີ້. ໂດຍການຫໍ່ໂຄງສ້າງນີ້ໃນ LAMBDA ແລະການສ້າງໄລຍະທີ່ມີຊື່ໂດຍອີງໃສ່ມັນດ້ວຍຊື່, ຕົວຢ່າງ, ຄົ້ນຫາການແຈກຢາຍ - ພວກ​ເຮົາ​ຈະ​ໄດ້​ຮັບ​ການ​ທໍາ​ງານ​ທີ່​ສະ​ດວກ​ທີ່​ຈະ​ກັບ​ຄືນ​ຜົນ​ໄດ້​ຮັບ​ຂອງ​ການ​ປຽບ​ທຽບ​ສອງ​ລາຍ​ການ​ໃນ​ຮູບ​ແບບ​ຂອງ array dynamic​:

LAMBDA ແມ່ນ Excels New Super Function

ຖ້າຂໍ້ມູນແຫຼ່ງບໍ່ແມ່ນເລື່ອງທໍາມະດາ, ແຕ່ຕາຕະລາງ "smart", ຫນ້າທີ່ຂອງພວກເຮົາຍັງຈະຮັບມືກັບບັນຫາທີ່ບໍ່ມີບັນຫາ:

LAMBDA ແມ່ນ Excels New Super Function

ຕົວຢ່າງອື່ນແມ່ນການແຍກຂໍ້ຄວາມແບບໄດນາມິກໂດຍການປ່ຽນມັນເປັນ XML ແລະຫຼັງຈາກນັ້ນແຍກມັນແຕ່ລະເຊລໂດຍໃຊ້ຟັງຊັນ FILTER.XML ທີ່ພວກເຮົາໄດ້ວິເຄາະເມື່ອບໍ່ດົນມານີ້. ໃນຄໍາສັ່ງທີ່ຈະບໍ່ຜະລິດສູດສະລັບສັບຊ້ອນນີ້ດ້ວຍຕົນເອງທຸກຄັ້ງ, ມັນຈະງ່າຍຂຶ້ນທີ່ຈະຫໍ່ມັນຢູ່ໃນ LAMBDA ແລະສ້າງລະດັບການເຄື່ອນທີ່ໂດຍອີງໃສ່ມັນ, ie ຫນ້າທີ່ຫນາແຫນ້ນແລະສະດວກໃຫມ່, ຊື່ມັນ, ສໍາລັບການຍົກຕົວຢ່າງ, RAZDTEXT:

LAMBDA ແມ່ນ Excels New Super Function

ອາກິວເມັນທໍາອິດຂອງຟັງຊັນນີ້ຈະເປັນຕາລາງທີ່ມີຂໍ້ຄວາມຕົ້ນສະບັບ, ແລະອັນທີສອງ - ຕົວອັກສອນຕົວແຍກ, ແລະມັນຈະສົ່ງຜົນໄດ້ຮັບໃນຮູບແບບຂອງອາເຣໄດນາມິກແນວນອນ. ລະ​ຫັດ​ການ​ທໍາ​ງານ​ຈະ​ເປັນ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

=LAMBDA(t;d; TRANSPOSE(FILTER.XML(““&ປ່ຽນແທນ(t;d? "«)&»“;”//Y”)))

ບັນຊີລາຍຊື່ຂອງຕົວຢ່າງແມ່ນບໍ່ມີທີ່ສິ້ນສຸດ - ໃນສະຖານະການໃດກໍ່ຕາມທີ່ທ່ານມັກຈະຕ້ອງໃສ່ສູດທີ່ຍາວນານແລະຫຍຸ້ງຍາກດຽວກັນ, ຟັງຊັນ LAMBDA ຈະເຮັດໃຫ້ຊີວິດງ່າຍຂຶ້ນຢ່າງເຫັນໄດ້ຊັດ.

ການນັບຈຳນວນຕົວລະຄອນຊ້ຳໆ

ຕົວຢ່າງທີ່ຜ່ານມາທັງຫມົດໄດ້ສະແດງໃຫ້ເຫັນພຽງແຕ່ຫນຶ່ງ, ທີ່ຈະແຈ້ງທີ່ສຸດ, ຂ້າງຂອງຟັງຊັນ LAMBDA - ການໃຊ້ມັນເປັນ "wrapper" ສໍາລັບການຫໍ່ສູດຍາວໃນມັນແລະງ່າຍການປ້ອນຂໍ້ມູນຂອງເຂົາເຈົ້າ. ໃນ​ຄວາມ​ເປັນ​ຈິງ, LAMBDA ມີອີກດ້ານຫນຶ່ງ, ເລິກຫຼາຍ, ດ້ານທີ່ປ່ຽນມັນເຂົ້າໄປໃນເກືອບເປັນພາສາການຂຽນໂປຼແກຼມເຕັມຮູບແບບ.

ຄວາມຈິງແລ້ວແມ່ນວ່າລັກສະນະທີ່ສໍາຄັນພື້ນຖານຂອງຫນ້າທີ່ LAMBDA ແມ່ນຄວາມສາມາດໃນການປະຕິບັດພວກມັນໃນ ການເອີ້ນຄືນ – ຕາມ​ເຫດ​ຜົນ​ຂອງ​ການ​ຄິດ​ໄລ່​, ໃນ​ເວ​ລາ​ທີ່​ຢູ່​ໃນ​ຂະ​ບວນ​ການ​ຂອງ​ການ​ຄິດ​ໄລ່​ຫນ້າ​ທີ່​ເອີ້ນ​ຕົວ​ມັນ​ເອງ​. ຈາກນິໄສ, ມັນອາດຈະເປັນເລື່ອງທີ່ຫນ້າຢ້ານກົວ, ແຕ່ໃນການຂຽນໂປຼແກຼມ, ການເອີ້ນຄືນເປັນເລື່ອງທໍາມະດາ. ເຖິງແມ່ນວ່າຢູ່ໃນ macro ໃນ Visual Basic, ທ່ານສາມາດປະຕິບັດມັນໄດ້, ແລະໃນປັດຈຸບັນ, ຕາມທີ່ເຈົ້າເຫັນ, ມັນໄດ້ມາຮອດ Excel. ໃຫ້ພະຍາຍາມເຂົ້າໃຈເຕັກນິກນີ້ດ້ວຍຕົວຢ່າງການປະຕິບັດ.

ສົມມຸດວ່າພວກເຮົາຕ້ອງການສ້າງຫນ້າທີ່ກໍານົດໂດຍຜູ້ໃຊ້ທີ່ຈະເອົາຕົວອັກສອນທີ່ໃຫ້ທັງຫມົດອອກຈາກຂໍ້ຄວາມຕົ້ນສະບັບ. ຜົນປະໂຫຍດຂອງຫນ້າທີ່ດັ່ງກ່າວ, ຂ້າພະເຈົ້າຄິດວ່າ, ທ່ານບໍ່ຈໍາເປັນຕ້ອງພິສູດ - ມັນຈະສະດວກຫຼາຍທີ່ຈະລຶບຂໍ້ມູນການປ້ອນຂໍ້ມູນຂີ້ເຫຍື້ອດ້ວຍການຊ່ວຍເຫຼືອຂອງມັນ, ແມ່ນບໍ?

ຢ່າງໃດກໍຕາມ, ເມື່ອປຽບທຽບກັບຕົວຢ່າງທີ່ຜ່ານມາ, ທີ່ບໍ່ແມ່ນ recursive, ສອງຄວາມຫຍຸ້ງຍາກລໍຖ້າພວກເຮົາ.

  1. ເຮົາຈະຕ້ອງມາຕັ້ງຊື່ໃຫ້ຟັງຊັນຂອງເຮົາກ່ອນຈະເລີ່ມຂຽນລະຫັດຂອງມັນ ເພາະໃນນັ້ນຊື່ນີ້ຈະຖືກໃຊ້ເພື່ອເອີ້ນຟັງຊັນນັ້ນເອງ.
  2. ການໃສ່ຟັງຊັນ recursive ດັ່ງກ່າວເຂົ້າໄປໃນເຊນແລະ debugging ມັນໂດຍການລະບຸ arguments ໃນວົງເລັບຫຼັງຈາກ LAMBDA (ດັ່ງທີ່ພວກເຮົາໄດ້ເຮັດກ່ອນຫນ້ານີ້) ຈະບໍ່ເຮັດວຽກ. ທ່ານຈະຕ້ອງສ້າງຫນ້າທີ່ທັນທີ "ຈາກ scratch" ໃນ ຜູ້ຈັດການຊື່ (ຜູ້ຈັດການຊື່).

ໃຫ້ໂທຫາຫນ້າທີ່ຂອງພວກເຮົາ, ເວົ້າວ່າ, CLEAN ແລະພວກເຮົາຕ້ອງການໃຫ້ມັນມີສອງ arguments - ຂໍ້ຄວາມທີ່ຈະເຮັດຄວາມສະອາດແລະບັນຊີລາຍຊື່ຂອງຕົວອັກສອນທີ່ຖືກຍົກເວັ້ນເປັນຂໍ້ຄວາມ:

LAMBDA ແມ່ນ Excels New Super Function

ໃຫ້ພວກເຮົາສ້າງ, ດັ່ງທີ່ພວກເຮົາໄດ້ເຮັດກ່ອນຫນ້ານີ້, ໃນແຖບ ສູດ в ຜູ້ຈັດການຊື່ ຕັ້ງຊື່ໄລຍະ, ຕັ້ງຊື່ມັນ CLEAR ແລະໃສ່ໃນພາກສະຫນາມ ລະດັບ ການ​ກໍ່​ສ້າງ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:

=LAMBDA(t;d;IF(d=””;t;CLEAR(SUBSTITUTE(t;LEFT(d);””);MID(d;2;255))))

ທີ່ນີ້ຕົວແປ t ແມ່ນຂໍ້ຄວາມຕົ້ນສະບັບທີ່ຈະຖືກລຶບລ້າງ, ແລະ d ແມ່ນບັນຊີລາຍຊື່ຂອງຕົວອັກສອນທີ່ຈະລຶບ.

ມັນທັງຫມົດເຮັດວຽກແບບນີ້:

ການເຜົາຜານ 1

Fragment SUBSTITUTE(t;LEFT(d);”) ຕາມທີ່ເຈົ້າອາດຈະເດົາໄດ້, ແທນທີ່ຕົວອັກສອນທຳອິດຈາກຕົວອັກສອນຊ້າຍຈາກຊຸດ d ທີ່ຈະລຶບໃນຂໍ້ຄວາມຕົ້ນສະບັບ t ດ້ວຍສາຍຂໍ້ຄວາມຫວ່າງເປົ່າ, ເຊັ່ນວ່າ ເອົາ “ A”. ຜົນໄດ້ຮັບລະດັບປານກາງ, ພວກເຮົາໄດ້ຮັບ:

Vsh zkz n 125 ຮູເບີນ.

ການເຜົາຜານ 2

ຫຼັງຈາກນັ້ນ, ຟັງຊັນເອີ້ນຕົວມັນເອງແລະເປັນວັດສະດຸປ້ອນ (ການໂຕ້ຖຽງທໍາອິດ) ໄດ້ຮັບສິ່ງທີ່ເຫຼືອຫຼັງຈາກການທໍາຄວາມສະອາດໃນຂັ້ນຕອນທີ່ຜ່ານມາ, ແລະການໂຕ້ຖຽງທີສອງແມ່ນສາຍຂອງຕົວອັກສອນທີ່ຖືກຍົກເວັ້ນທີ່ເລີ່ມຕົ້ນຈາກຕົວທໍາອິດ, ແຕ່ຈາກຕົວອັກສອນທີສອງ, ເຊັ່ນ: "BVGDEEGZIKLMNOPRSTUFHTSCHSHSHCHYYYYA. ,” ໂດຍບໍ່ມີການເລີ່ມຕົ້ນ “A” – ນີ້ແມ່ນເຮັດໄດ້ໂດຍຟັງຊັນ MID. ດັ່ງທີ່ຜ່ານມາ, ຟັງຊັນຈະເອົາຕົວອັກສອນທໍາອິດຈາກຊ້າຍຂອງຕົວທີ່ຍັງເຫຼືອ (B) ແລະແທນທີ່ມັນຢູ່ໃນຂໍ້ຄວາມທີ່ໃຫ້ມັນ (Zkz n 125 rubles) ດ້ວຍສາຍທີ່ຫວ່າງເປົ່າ - ພວກເຮົາໄດ້ຮັບຜົນປານກາງ:

125 ru.

ການເຜົາຜານ 3

ຟັງຊັນເອີ້ນຕົວມັນເອງອີກເທື່ອຫນຶ່ງ, ໄດ້ຮັບເປັນການໂຕ້ຖຽງທໍາອິດສິ່ງທີ່ເຫຼືອຢູ່ໃນຂໍ້ຄວາມທີ່ຈະຖືກລຶບລ້າງໃນ iteration ທີ່ຜ່ານມາ (Bsh zkz n 125 ru.), ແລະເປັນການໂຕ້ຖຽງທີສອງ, ຊຸດຂອງຕົວອັກສອນທີ່ຖືກຍົກເວັ້ນຖືກຕັດອອກໂດຍຕົວອັກສອນເພີ່ມເຕີມຫນຶ່ງເພື່ອ ຊ້າຍ, ie “VGDEEGZIKLMNOPRSTUFHTSCHSHSHCHYYYYUYA.,” ໂດຍບໍ່ມີ “B” ເບື້ອງຕົ້ນ. ຫຼັງຈາກນັ້ນ, ມັນໃຊ້ເວລາຕົວອັກສອນທໍາອິດຈາກຊ້າຍ (B) ຈາກຊຸດນີ້ແລະເອົາມັນອອກຈາກຂໍ້ຄວາມ - ພວກເຮົາໄດ້ຮັບ:

sh zkz n 125 ru.

ແລະອື່ນໆ - ຂ້ອຍຫວັງວ່າເຈົ້າຈະໄດ້ຮັບຄວາມຄິດ. ດ້ວຍການເຮັດຊ້ຳແຕ່ລະຄັ້ງ, ລາຍຊື່ຂອງຕົວອັກສອນທີ່ຈະຖືກຖອດອອກຈະຖືກຕັດອອກທາງຊ້າຍ, ແລະພວກເຮົາຈະຊອກຫາ ແລະປ່ຽນຕົວອັກສອນຕໍ່ໄປຈາກຊຸດດັ່ງກ່າວດ້ວຍຊ່ອງຫວ່າງ.

ເມື່ອຕົວລະຄອນທັງໝົດໝົດ, ພວກເຮົາຈະຕ້ອງອອກຈາກວົງການ – ບົດບາດນີ້ພຽງແຕ່ປະຕິບັດໂດຍຟັງຊັນ IF (ຖ້າແມ່ນ), ໃນການອອກແບບຂອງພວກເຮົາແມ່ນຫໍ່. ຖ້າບໍ່ມີຕົວອັກສອນທີ່ປ່ອຍໃຫ້ລຶບ (d = ""), ຫຼັງຈາກນັ້ນ, ຟັງຊັນບໍ່ຄວນເອີ້ນຕົວມັນເອງ, ແຕ່ພຽງແຕ່ຄວນສົ່ງຄືນຂໍ້ຄວາມທີ່ຖືກລຶບລ້າງ (ຕົວແປ t) ໃນຮູບແບບສຸດທ້າຍຂອງມັນ.

ການຊໍ້າຄືນຂອງເຊລ

ເຊັ່ນດຽວກັນ, ທ່ານສາມາດປະຕິບັດການ enumeration recursive ຂອງເຊລໃນຂອບເຂດທີ່ກໍານົດໄວ້. ສົມມຸດວ່າພວກເຮົາຕ້ອງການສ້າງຟັງຊັນ lambda ຊື່ ລາຍຊື່ການທົດແທນ ສໍາລັບການທົດແທນການຂາຍຍົກຂອງ fragments ໃນຂໍ້ຄວາມແຫຼ່ງອີງຕາມບັນຊີລາຍຊື່ອ້າງອິງ. ຜົນໄດ້ຮັບຄວນຈະເປັນແບບນີ້:

LAMBDA ແມ່ນ Excels New Super Function

ເຫຼົ່ານັ້ນ. ຢູ່ໃນຫນ້າທີ່ຂອງພວກເຮົາ ລາຍຊື່ການທົດແທນ ຈະ​ມີ​ສາມ​ການ​ໂຕ້​ຖຽງ​:

  1. ຕາລາງທີ່ມີຂໍ້ຄວາມເພື່ອປະມວນຜົນ (ທີ່ຢູ່ແຫຼ່ງ)
  2. ຕາລາງທໍາອິດຂອງຖັນທີ່ມີຄ່າເພື່ອຄົ້ນຫາຈາກການຊອກຫາ
  3. ຕາລາງທໍາອິດຂອງຖັນທີ່ມີຄ່າທົດແທນຈາກການຊອກຫາ

ຟັງຊັນຄວນໄປຈາກເທິງລົງລຸ່ມໃນໄດເລກະທໍລີແລະປ່ຽນແທນລໍາດັບທາງເລືອກທັງຫມົດຈາກຖັນຊ້າຍ ຊອກ​ຫາ ໄປຫາຕົວເລືອກທີ່ສອດຄ້ອງກັນຈາກຖັນຂວາ ທົດແທນ. ທ່ານສາມາດປະຕິບັດສິ່ງນີ້ດ້ວຍຟັງຊັນ lambda recursive ຕໍ່ໄປນີ້:

LAMBDA ແມ່ນ Excels New Super Function

ທີ່ນີ້, ຕົວແປ t ເກັບຮັກສາຂໍ້ຄວາມຕົ້ນສະບັບຈາກຕາລາງຖັນຕໍ່ໄປ ທີ່ຢູ່, ແລະຕົວແປ n ແລະ z ຊີ້ໄປຫາເຊລທຳອິດໃນຖັນ ຊອກ​ຫາ и ທົດແທນ, ຕາມລໍາດັບ.
ດັ່ງໃນຕົວຢ່າງທີ່ຜ່ານມາ, ຟັງຊັນນີ້ທໍາອິດແທນຂໍ້ຄວາມຕົ້ນສະບັບດ້ວຍຟັງຊັນ ແທນ (ປ່ຽນແທນ) ຂໍ້ມູນຢູ່ໃນແຖວທໍາອິດຂອງໄດເລກະທໍລີ (ie SPbon St Petersburg) , ແລະຫຼັງຈາກນັ້ນເອີ້ນຕົວມັນເອງ - ຕົວມັນເອງ, ແຕ່ມີການປ່ຽນແປງໃນໄດເລກະທໍລີລົງໄປຫາແຖວຕໍ່ໄປ (ເຊັ່ນ: ແທນທີ່. St Petersburg on St Petersburg). ຫຼັງ​ຈາກ​ນັ້ນ​, ໂທ​ຫາ​ຕົວ​ມັນ​ເອງ​ອີກ​ເທື່ອ​ຫນຶ່ງ​ທີ່​ມີ​ການ​ປ່ຽນ​ແປງ​ລົງ - ແລະ​ທົດ​ແທນ​ທີ່​ແລ້ວ​ Peter on St Petersburg ແລະອື່ນໆ

Shift ລົງໃນແຕ່ລະ iteration ແມ່ນປະຕິບັດໂດຍຟັງຊັນ excel ມາດຕະຖານ ການແຈກຢາຍ (OFFSET), ເຊິ່ງໃນກໍລະນີນີ້ມີສາມ argument - ຊ່ວງຕົ້ນສະບັບ, row shift (1) ແລະຖັນ shift (0).

ດີ, ທັນທີທີ່ພວກເຮົາໄປເຖິງຈຸດສິ້ນສຸດຂອງໄດເລກະທໍລີ (n = ""), ພວກເຮົາຕ້ອງສິ້ນສຸດການເອີ້ນຄືນ - ພວກເຮົາຢຸດເຊົາການໂທຫາຕົວເອງແລະສະແດງສິ່ງທີ່ໄດ້ສະສົມຫຼັງຈາກການປ່ຽນແທນທັງຫມົດໃນຕົວແປແຫຼ່ງຂໍ້ຄວາມ t.

ຫມົດ​ເທົ່າ​ນີ້. ບໍ່ມີມະຫາພາກທີ່ຫຼອກລວງ ຫຼືການສອບຖາມ Power Query – ວຽກທັງໝົດຖືກແກ້ໄຂດ້ວຍຟັງຊັນດຽວ.

  • ວິທີການນໍາໃຊ້ຟັງຊັນ array ແບບໄດນາມິກໃຫມ່ຂອງ Excel: FILTER, SORT, UNIC
  • ການປ່ຽນແທນ ແລະທຳຄວາມສະອາດຂໍ້ຄວາມດ້ວຍຟັງຊັນ SUBSTITUTE
  • ການສ້າງ macro ແລະຟັງຊັນທີ່ຜູ້ໃຊ້ກໍານົດ (UDFs) ໃນ VBA

ອອກຈາກ Reply ເປັນ