ເນື້ອໃນ
ຊົມເຊີຍ! ທ່ານໄດ້ມາຮອດມື້ສຸດທ້າຍຂອງການແລ່ນມາຣາທອນ 30 ຟັງຊັນ Excel ໃນ 30 ມື້. ມັນເປັນການເດີນທາງທີ່ຍາວນານແລະຫນ້າສົນໃຈໃນໄລຍະທີ່ທ່ານໄດ້ຮຽນຮູ້ສິ່ງທີ່ເປັນປະໂຫຍດຫຼາຍຢ່າງກ່ຽວກັບຫນ້າທີ່ Excel.
ໃນວັນທີ 30 ຂອງການແລ່ນມາຣາທອນ, ພວກເຮົາຈະອຸທິດການສຶກສາຫນ້າທີ່ ປະຕິບັດຕາມ (INDIRECT), ເຊິ່ງສົ່ງຄືນການເຊື່ອມຕໍ່ທີ່ລະບຸໄວ້ໂດຍສະຕຣິງຂໍ້ຄວາມ. ດ້ວຍຟັງຊັນນີ້, ທ່ານສາມາດສ້າງລາຍການເລື່ອນລົງທີ່ຂຶ້ນກັບ. ຕົວຢ່າງ, ເມື່ອເລືອກປະເທດຈາກບັນຊີລາຍຊື່ແບບເລື່ອນລົງຈະກໍານົດວ່າທາງເລືອກໃດຈະປາກົດຢູ່ໃນບັນຊີລາຍຊື່ແບບເລື່ອນລົງຂອງເມືອງ.
ດັ່ງນັ້ນ, ໃຫ້ພິຈາລະນາຢ່າງລະອຽດກ່ຽວກັບພາກສ່ວນທິດສະດີຂອງຫນ້າທີ່ ປະຕິບັດຕາມ (INDIRECT) ແລະສຳຫຼວດຕົວຢ່າງພາກປະຕິບັດຂອງແອັບພລິເຄຊັນຂອງມັນ. ຖ້າທ່ານມີຂໍ້ມູນເພີ່ມເຕີມຫຼືຕົວຢ່າງ, ກະລຸນາແບ່ງປັນໃຫ້ເຂົາເຈົ້າໃນຄໍາເຫັນ.
ຟັງຊັນ 30: INDIRECT
ຫນ້າທີ່ ປະຕິບັດຕາມ (INDIRECT) ສົ່ງຄືນລິ້ງທີ່ລະບຸໄວ້ໂດຍສະຕຣິງຂໍ້ຄວາມ.
ເຈົ້າສາມາດໃຊ້ຟັງຊັນ INDIRECT ໄດ້ແນວໃດ?
ນັບຕັ້ງແຕ່ຫນ້າທີ່ ປະຕິບັດຕາມ (INDIRECT) ສົ່ງຄືນລິ້ງທີ່ໃຫ້ໂດຍສະຕຣິງຂໍ້ຄວາມ, ທ່ານສາມາດໃຊ້ມັນເພື່ອ:
- ສ້າງການເຊື່ອມຕໍ່ເບື້ອງຕົ້ນທີ່ບໍ່ປ່ຽນແປງ.
- ສ້າງການອ້າງອີງເຖິງໄລຍະທີ່ມີຊື່ຄົງທີ່.
- ສ້າງລິ້ງໂດຍໃຊ້ຂໍ້ມູນຊີດ, ແຖວ, ແລະຖັນ.
- ສ້າງ array ທີ່ບໍ່ປ່ຽນແປງຂອງຕົວເລກ.
Syntax INDIRECT (INDIRECT)
ຫນ້າທີ່ ປະຕິບັດຕາມ (INDIRECT) ມີ syntax ຕໍ່ໄປນີ້:
INDIRECT(ref_text,a1)
ДВССЫЛ(ссылка_на_ячейку;a1)
- ref_text (link_to_cell) ແມ່ນຂໍ້ຄວາມຂອງການເຊື່ອມຕໍ່.
- a1 – ຖ້າເທົ່າກັບ TRUE (TRUE) ຫຼືບໍ່ໄດ້ລະບຸ, ຮູບແບບຂອງລິ້ງຈະຖືກໃຊ້ A1; ແລະຖ້າ FALSE (FALSE), ຫຼັງຈາກນັ້ນຮູບແບບ R1C1.
ກັບດັກທາງອ້ອມ (INDIRECT)
- ຫນ້າທີ່ ປະຕິບັດຕາມ (INDIRECT) ຖືກຄິດໄລ່ຄືນໃຫມ່ທຸກຄັ້ງທີ່ຄ່າໃນ Excel ປ່ຽນແປງ. ນີ້ສາມາດເຮັດໃຫ້ປື້ມບັນທຶກການເຮັດວຽກຂອງທ່ານຊ້າລົງຢ່າງຫຼວງຫຼາຍຖ້າຟັງຊັນຖືກນໍາໃຊ້ໃນຫຼາຍສູດ.
- ຖ້າຫນ້າທີ່ ປະຕິບັດຕາມ (INDIRECT) ສ້າງລິ້ງໄປຫາປຶ້ມວຽກ Excel ອື່ນ, ປຶ້ມວຽກນັ້ນຕ້ອງເປີດ ຫຼືສູດຈະລາຍງານຂໍ້ຜິດພາດ. #REF! (#LINK!).
- ຖ້າຫນ້າທີ່ ປະຕິບັດຕາມ (INDIRECT) ອ້າງອີງໄລຍະທີ່ເກີນຂີດຈຳກັດແຖວ ແລະຖັນ, ສູດຈະລາຍງານຂໍ້ຜິດພາດ #REF! (#LINK!).
- ຫນ້າທີ່ ປະຕິບັດຕາມ (INDIRECT) ບໍ່ສາມາດອ້າງອີງໄລຍະທີ່ມີຊື່ແບບໄດນາມິກໄດ້.
ຕົວຢ່າງ 1: ສ້າງລິ້ງເບື້ອງຕົ້ນທີ່ບໍ່ປ່ຽນແປງ
ໃນຕົວຢ່າງທໍາອິດ, ຖັນ C ແລະ E ມີຕົວເລກດຽວກັນ, ຜົນລວມຂອງພວກມັນຖືກຄິດໄລ່ໂດຍໃຊ້ຟັງຊັນ SUM (SUM) ກໍ່ຄືກັນ. ຢ່າງໃດກໍຕາມ, ສູດແມ່ນແຕກຕ່າງກັນເລັກນ້ອຍ. ໃນເຊລ C8, ສູດແມ່ນ:
=SUM(C2:C7)
=СУММ(C2:C7)
ໃນເຊລ E8, ຫນ້າທີ່ ປະຕິບັດຕາມ (INDIRECT) ສ້າງລິ້ງໄປຫາຕາລາງເລີ່ມຕົ້ນ E2:
=SUM(INDIRECT("E2"):E7)
=СУММ(ДВССЫЛ("E2"):E7)
ຖ້າທ່ານໃສ່ແຖວຢູ່ເທິງສຸດຂອງແຜ່ນແລະເພີ່ມຄ່າສໍາລັບເດືອນມັງກອນ (Jan), ຈໍານວນຢູ່ໃນຖັນ C ຈະບໍ່ປ່ຽນແປງ. ສູດຈະປ່ຽນແປງ, ປະຕິກິລິຍາຕໍ່ການເພີ່ມເສັ້ນ:
=SUM(C3:C8)
=СУММ(C3:C8)
ຢ່າງໃດກໍຕາມ, ຫນ້າທີ່ ປະຕິບັດຕາມ (INDIRECT) ແກ້ໄຂ E2 ເປັນຕາລາງເລີ່ມຕົ້ນ, ດັ່ງນັ້ນເດືອນມັງກອນຈະຖືກລວມເຂົ້າໂດຍອັດຕະໂນມັດໃນການຄິດໄລ່ຖັນ E ທັງໝົດ. ເຊລສຸດທ້າຍມີການປ່ຽນແປງ, ແຕ່ເຊລເລີ່ມຕົ້ນບໍ່ໄດ້ຮັບຜົນກະທົບ.
=SUM(INDIRECT("E2"):E8)
=СУММ(ДВССЫЛ("E2"):E8)
ຕົວຢ່າງ 2: ເຊື່ອມຕໍ່ກັບໄລຍະທີ່ມີຊື່ແບບຄົງທີ່
ຫນ້າທີ່ ປະຕິບັດຕາມ (INDIRECT) ສາມາດສ້າງການອ້າງອີງເຖິງໄລຍະທີ່ມີຊື່. ໃນຕົວຢ່າງນີ້, ຈຸລັງສີຟ້າສ້າງຂອບເຂດ ບັນຊີລາຍຊື່. ນອກຈາກນັ້ນ, ຊ່ວງແບບເຄື່ອນໄຫວຍັງຖືກສ້າງຂື້ນຈາກຄ່າໃນຖັນ B NumListDyn, ຂຶ້ນກັບຈໍານວນຕົວເລກໃນຖັນນີ້.
ຜົນລວມສໍາລັບທັງສອງໄລຍະສາມາດຖືກຄິດໄລ່ໂດຍພຽງແຕ່ໃຫ້ຊື່ຂອງມັນເປັນການໂຕ້ຖຽງກັບຫນ້າທີ່ SUM (SUM), ດັ່ງທີ່ເຈົ້າເຫັນໃນເຊລ E3 ແລະ E4.
=SUM(NumList) или =СУММ(NumList)
=SUM(NumListDyn) или =СУММ(NumListDyn)
ແທນທີ່ຈະພິມຊື່ຊ່ວງໃສ່ໃນຟັງຊັນ SUM (SUM), ທ່ານສາມາດອ້າງອີງໃສ່ຊື່ທີ່ຂຽນຢູ່ໃນຫນຶ່ງໃນຈຸລັງຂອງແຜ່ນວຽກ. ຕົວຢ່າງ, ຖ້າຊື່ ບັນຊີລາຍຊື່ ຖືກຂຽນໄວ້ໃນເຊລ D7, ຫຼັງຈາກນັ້ນສູດໃນເຊນ E7 ຈະເປັນແບບນີ້:
=SUM(INDIRECT(D7))
=СУММ(ДВССЫЛ(D7))
ແຕ່ຫນ້າເສຍດາຍ, ຫນ້າທີ່ ປະຕິບັດຕາມ (INDIRECT) ບໍ່ສາມາດສ້າງການອ້າງອີງຊ່ວງແບບໄດນາມິກໄດ້, ສະນັ້ນ ເມື່ອທ່ານສຳເນົາສູດນີ້ລົງໃນເຊລ E8, ທ່ານຈະໄດ້ຮັບຂໍ້ຜິດພາດ. #REF! (#LINK!).
ຕົວຢ່າງ 3: ສ້າງລິ້ງໂດຍໃຊ້ຂໍ້ມູນແຜ່ນ, ແຖວ, ແລະຖັນ
ທ່ານສາມາດສ້າງລິ້ງໄດ້ຢ່າງງ່າຍດາຍໂດຍອີງໃສ່ຕົວເລກແຖວແລະຖັນ, ເຊັ່ນດຽວກັນກັບການໃຊ້ຄ່າ FALSE (FALSE) ສໍາລັບການໂຕ້ຖຽງຟັງຊັນທີສອງ. ປະຕິບັດຕາມ (INDIRECT). ນີ້ແມ່ນວິທີການເຊື່ອມຕໍ່ແບບສະໄຕລ໌ຖືກສ້າງຂື້ນ R1C1. ໃນຕົວຢ່າງນີ້, ພວກເຮົາຍັງໄດ້ເພີ່ມຊື່ແຜ່ນໃສ່ໃນການເຊື່ອມຕໍ່ – 'MyLinks'!R2C2
=INDIRECT("'"&B3&"'!R"&C3&"C"&D3,FALSE)
=ДВССЫЛ("'"&B3&"'!R"&C3&"C"&D3;ЛОЖЬ)
ຕົວຢ່າງ 4: ສ້າງ array ທີ່ບໍ່ປ່ຽນແປງຕົວເລກ
ບາງຄັ້ງທ່ານຈໍາເປັນຕ້ອງໃຊ້ array ຂອງຕົວເລກໃນສູດ Excel. ໃນຕົວຢ່າງຕໍ່ໄປນີ້, ພວກເຮົາຕ້ອງການສະເລ່ຍ 3 ຕົວເລກທີ່ໃຫຍ່ທີ່ສຸດໃນຖັນ B. ຕົວເລກສາມາດເຂົ້າໄປໃນສູດໄດ້, ດັ່ງທີ່ເຮັດຢູ່ໃນຕາລາງ D4:
=AVERAGE(LARGE(B1:B8,{1,2,3}))
=СРЗНАЧ(НАИБОЛЬШИЙ(B1:B8;{1;2;3}))
ຖ້າທ່ານຕ້ອງການ array ຂະຫນາດໃຫຍ່, ຫຼັງຈາກນັ້ນທ່ານບໍ່ຫນ້າຈະຕ້ອງການທີ່ຈະໃສ່ຕົວເລກທັງຫມົດໃນສູດ. ທາງເລືອກທີສອງແມ່ນການນໍາໃຊ້ຫນ້າທີ່ ROW (ROW), ດັ່ງທີ່ເຮັດໃນສູດອາເຣທີ່ໃສ່ໃນຕາລາງ D5:
=AVERAGE(LARGE(B1:B8,ROW(1:3)))
=СРЗНАЧ(НАИБОЛЬШИЙ(B1:B8;СТРОКА(1:3)))
ທາງເລືອກທີສາມແມ່ນການນໍາໃຊ້ຫນ້າທີ່ ROW (STRING) ພ້ອມດ້ວຍ ປະຕິບັດຕາມ (INDIRECT), ດັ່ງທີ່ເຮັດກັບສູດອາເຣໃນຕາລາງ D6:
=AVERAGE(LARGE(B1:B8,ROW(INDIRECT("1:3"))))
=СРЗНАЧ(НАИБОЛЬШИЙ(B1:B8;СТРОКА(ДВССЫЛ("1:3"))))
ຜົນໄດ້ຮັບຂອງທັງ 3 ສູດຈະຄືກັນ:
ຢ່າງໃດກໍຕາມ, ຖ້າແຖວຖືກໃສ່ຢູ່ເທິງສຸດຂອງແຜ່ນ, ສູດທີສອງຈະສົ່ງຄືນຜົນໄດ້ຮັບທີ່ບໍ່ຖືກຕ້ອງເນື່ອງຈາກຄວາມຈິງທີ່ວ່າການອ້າງອີງໃນສູດຈະປ່ຽນແປງພ້ອມກັບການປ່ຽນແຖວ. ໃນປັດຈຸບັນ, ແທນທີ່ຈະເປັນຄ່າສະເລ່ຍຂອງສາມຕົວເລກທີ່ໃຫຍ່ທີ່ສຸດ, ສູດຈະກັບຄືນຄ່າສະເລ່ຍຂອງຕົວເລກທີ່ໃຫຍ່ທີ່ສຸດທີ 3, 4 ແລະ 5.
ການນໍາໃຊ້ຫນ້າທີ່ ປະຕິບັດຕາມ (INDIRECT), ສູດທີສາມຮັກສາການອ້າງອີງແຖວທີ່ຖືກຕ້ອງແລະສືບຕໍ່ສະແດງຜົນທີ່ຖືກຕ້ອງ.