ສາລະບານ
ບົດສອນສະແດງວິທີການໃຊ້ຟັງຊັນ VLOOKUP ເພື່ອສຳເນົາຂໍ້ມູນຈາກແຜ່ນວຽກອື່ນ ຫຼື ປຶ້ມວຽກອື່ນ, Vlookup ໃນຫຼາຍແຜ່ນ ແລະຊອກຫາແບບໄດນາມິກເພື່ອສົ່ງຄ່າຈາກແຜ່ນງານຕ່າງໆໄປສູ່ເຊວຕ່າງໆ.
ເມື່ອຊອກຫາຂໍ້ມູນບາງຢ່າງໃນ Excel, ມັນເປັນກໍລະນີທີ່ຫາຍາກເມື່ອຂໍ້ມູນທັງໝົດຢູ່ໃນແຜ່ນດຽວກັນ. ເລື້ອຍໆ, ທ່ານຈະຕ້ອງຄົ້ນຫາຜ່ານຫຼາຍແຜ່ນຫຼືແມ້ກະທັ້ງປື້ມວຽກທີ່ແຕກຕ່າງກັນ. ຂ່າວດີແມ່ນວ່າ Microsoft Excel ໃຫ້ຫຼາຍກວ່າຫນຶ່ງວິທີທີ່ຈະເຮັດສິ່ງນີ້, ແລະຂ່າວບໍ່ດີແມ່ນວ່າວິທີການທັງຫມົດແມ່ນສັບສົນຫຼາຍກ່ວາສູດ VLOOKUP ມາດຕະຖານເລັກນ້ອຍ. ແຕ່ດ້ວຍຄວາມອົດທົນພຽງໜ້ອຍດຽວ, ພວກເຮົາຈະຊອກຫາພວກມັນອອກໄດ້ :)
ວິທີ VLOOKUP ລະຫວ່າງສອງແຜ່ນ
ສຳລັບການເລີ່ມຕົ້ນ, ໃຫ້ເຮົາພິຈາລະນາກໍລະນີທີ່ງ່າຍທີ່ສຸດ - ໂດຍໃຊ້ VLOOKUP ເພື່ອ ສຳເນົາຂໍ້ມູນຈາກແຜ່ນວຽກອື່ນ. ມັນຄ້າຍຄືກັນກັບສູດ VLOOKUP ປົກກະຕິທີ່ຄົ້ນຫາຢູ່ໃນແຜ່ນວຽກດຽວກັນ. ຄວາມແຕກຕ່າງແມ່ນວ່າທ່ານລວມເອົາຊື່ແຜ່ນງານໃນອາກິວເມັນ table_array ເພື່ອບອກສູດຄຳນວນຂອງທ່ານໃນແຜ່ນວຽກທີ່ໄລຍະຊອກຫາຢູ່.
ສູດທົ່ວໄປເພື່ອ VLOOKUP ຈາກແຜ່ນອື່ນມີດັ່ງນີ້:
VLOOKUP(lookup_value, Sheet!range, col_index_num, [range_lookup])ເປັນຕົວຢ່າງ, ໃຫ້ເຮົາດຶງຕົວເລກການຂາຍຈາກ Jan ລາຍງານໄປທີ່ ສະຫຼຸບ ແຜ່ນ. ສໍາລັບການນີ້, ພວກເຮົາກໍານົດ arguments ຕໍ່ໄປນີ້:
- Lookup_values ຢູ່ໃນຖັນ A ໃນແຜ່ນ ສະຫຼຸບ , ແລະພວກເຮົາVLOOKUP:
VLOOKUP($A2, 'West'!$A$2:$C$6 , 2, FALSE)
ສຸດທ້າຍ, ສູດ VLOOKUP ມາດຕະຖານຫຼາຍນີ້ຊອກຫາຄ່າ A2 ໃນຖັນທໍາອິດຂອງໄລຍະ A2:C6 ຢູ່ໃນແຜ່ນ ຕາເວັນຕົກ ແລະສົ່ງຄືນ a ກົງກັນຈາກຖັນທີ 2. ນັ້ນເອງ!
Dynamic VLOOKUP ເພື່ອສົ່ງຄືນຂໍ້ມູນຈາກຫຼາຍຊີດເຂົ້າໄປໃນເຊລຕ່າງໆ
ກ່ອນອື່ນໝົດ, ໃຫ້ເຮົາກຳນົດວ່າຄຳວ່າ "ໄດນາມິກ" ມີຄວາມໝາຍແນວໃດໃນສະພາບການນີ້ ແລະສູດຄຳນວນນີ້ຈະເປັນແນວໃດ. ແຕກຕ່າງຈາກອັນກ່ອນໜ້ານີ້.
ໃນກໍລະນີທີ່ທ່ານມີຂໍ້ມູນຂະໜາດໃຫຍ່ໃນຮູບແບບດຽວກັນທີ່ແບ່ງອອກເປັນຫຼາຍສະເປຣດຊີດ, ທ່ານອາດຈະຕ້ອງການແຍກຂໍ້ມູນຈາກແຜ່ນງານຕ່າງໆເຂົ້າໄປໃນເຊວຕ່າງໆ. ຮູບພາບຂ້າງລຸ່ມນີ້ສະແດງໃຫ້ເຫັນເຖິງແນວຄວາມຄິດ:
ແຕກຕ່າງຈາກສູດກ່ອນໜ້ານີ້ທີ່ດຶງເອົາຄ່າຈາກຊີດສະເພາະໃດໜຶ່ງໂດຍອີງໃສ່ຕົວລະບຸທີ່ເປັນເອກະລັກ, ເວລານີ້ພວກເຮົາກຳລັງຊອກຫາການດຶງຄ່າຈາກຫຼາຍແຜ່ນຢູ່ທີ່ ເວລາ.
ມີສອງວິທີແກ້ໄຂທີ່ແຕກຕ່າງກັນສໍາລັບວຽກງານນີ້. ໃນທັງສອງກໍລະນີ, ທ່ານຈໍາເປັນຕ້ອງເຮັດວຽກກະກຽມເລັກນ້ອຍແລະສ້າງຂອບເຂດທີ່ມີຊື່ສໍາລັບຈຸລັງຂໍ້ມູນໃນແຕ່ລະເອກະສານຊອກຫາ. ຕົວຢ່າງນີ້, ພວກເຮົາໄດ້ກໍານົດຂອບເຂດຕໍ່ໄປນີ້:
- East_Sales - A2:B6 ໃນແຜ່ນຕາເວັນອອກ
- North_Sales - A2: B6 ຢູ່ໃນແຜ່ນຕາເວັນຕົກ
- South_Sales - A2:B6 ຢູ່ໃນແຜ່ນຕາເວັນຕົກ
- West_Sales - A2:B6 ຢູ່ໃນແຜ່ນຕາເວັນຕົກ
VLOOKUP ແລະ IFs ທີ່ຖືກວາງໄວ້
ຫາກທ່ານມີຈຳນວນທີ່ສົມເຫດສົມຜົນຂອງຊີດທີ່ຈະຊອກຫາ, ທ່ານສາມາດໃຊ້ຟັງຊັນ IF ທີ່ຖືກວາງໄວ້.ເພື່ອເລືອກຊີດໂດຍອີງໃສ່ຄໍາທີ່ຢູ່ໃນເຊລທີ່ກໍານົດໄວ້ກ່ອນ (ເຊລ B1 ເຖິງ D1 ໃນກໍລະນີຂອງພວກເຮົາ).
ແປເປັນພາສາອັງກິດ, ສ່ວນ IF ອ່ານວ່າ:
ຖ້າ B1 ແມ່ນ ຕາເວັນອອກ , ໃຫ້ເບິ່ງໃນຂອບເຂດຊື່ East_Sales ; ຖ້າ B1 ແມ່ນ North , ເບິ່ງໃນຂອບເຂດທີ່ມີຊື່ວ່າ North_Sales ; ຖ້າ B1 ແມ່ນ South , ເບິ່ງໃນຂອບເຂດທີ່ມີຊື່ South_Sales ; ແລະຖ້າ B1 ແມ່ນ West , ໃຫ້ເບິ່ງໃນໄລຍະທີ່ມີຊື່ West_Sales .
ໄລຍະທີ່ສົ່ງກັບໂດຍ IF ໄປຫາ table_array ຂອງ VLOOKUP, ເຊິ່ງດຶງ ຄ່າທີ່ກົງກັນຈາກຖັນທີ 2 ຢູ່ໃນຊີດທີ່ສອດຄ້ອງກັນ.
ການນຳໃຊ້ທີ່ສະຫຼາດຂອງການອ້າງອີງແບບປະສົມສຳລັບຄ່າການຊອກຫາ ($A2 - ຖັນຢ່າງແທ້ຈິງ ແລະແຖວທີ່ສົມທຽບ) ແລະການທົດສອບທາງເຫດຜົນຂອງ IF (B$1 - ຖັນທີ່ສົມທຽບ ແລະແຖວຢ່າງແທ້ຈິງ) ອະນຸຍາດໃຫ້ຄັດລອກສູດໄປຫາເຊລອື່ນໂດຍບໍ່ມີການປ່ຽນແປງ - Excel ປັບການອ້າງອີງອັດຕະໂນມັດໂດຍອີງໃສ່ຕໍາແຫນ່ງທີ່ກ່ຽວຂ້ອງຂອງແຖວແລະຖັນ.
ດັ່ງນັ້ນ, ພວກເຮົາໃສ່ສູດໃນ B2, ຄັດລອກມັນຂວາແລະ ລົງເປັນຖັນ ແລະແຖວຫຼາຍເທົ່າທີ່ຕ້ອງການ, ແລະໄດ້ຜົນຕໍ່ໄປນີ້:
ພາບໂດຍພາຍໃນ
ເມື່ອເຮັດວຽກກັບຫຼາຍແຜ່ນ, ຫຼາຍລະດັບທີ່ຊ້ອນກັນສາມາດເຮັດໃຫ້ສູດໄດ້ຄືກັນ. ຍາວແລະຍາກທີ່ຈະອ່ານ. ວິທີທີ່ດີກວ່າແມ່ນການສ້າງ ໄລຍະ vlookup ແບບໄດນາມິກ ດ້ວຍການຊ່ວຍເຫຼືອຂອງ INDIRECT:
=VLOOKUP($A2, INDIRECT(B$1&"_Sales"), 2, FALSE)
ຢູ່ນີ້, ພວກເຮົາປະກອບການອ້າງອີງເຖິງຕາລາງທີ່ປະກອບດ້ວຍສ່ວນທີ່ເປັນເອກະລັກຂອງຊ່ວງທີ່ມີຊື່ (B1) ແລະສ່ວນທົ່ວໄປ (_Sales). ອັນນີ້ສ້າງສະຕຣິງຂໍ້ຄວາມເຊັ່ນ "East_Sales", ເຊິ່ງ INDIRECT ຈະປ່ຽນເປັນຊື່ໄລຍະທີ່ເຂົ້າໃຈໄດ້ໂດຍ Excel.
ດ້ວຍເຫດນັ້ນ, ທ່ານໄດ້ຮັບສູດຂະໜາດກະທັດຮັດທີ່ເຮັດວຽກໄດ້ສວຍງາມໃນທຸກແຜ່ນງານ:
<0ນັ້ນຄືວິທີການ Vlookup ລະຫວ່າງແຜ່ນງານ ແລະໄຟລ໌ໃນ Excel. ຂ້າພະເຈົ້າຂໍຂອບໃຈທ່ານສໍາລັບການອ່ານແລະຫວັງວ່າຈະໄດ້ພົບທ່ານໃນ blog ຂອງພວກເຮົາໃນອາທິດຕໍ່ໄປ!
ປື້ມຄູ່ມືການປະຕິບັດສໍາລັບການດາວໂຫຼດ
ເບິ່ງຕົວຢ່າງຫຼາຍແຜ່ນ (ໄຟລ໌ .xlsx)
ອ້າງອີງເຖິງຕາລາງຂໍ້ມູນທຳອິດ, ເຊິ່ງແມ່ນ A2. - Table_array ແມ່ນໄລຍະ A2:B6 ໃນແຜ່ນ Jan. ເພື່ອອ້າງເຖິງມັນ, ໃຫ້ນຳໜ້າການອ້າງອີງໄລຍະດ້ວຍຊື່ແຜ່ນງານຕາມດ້ວຍເຄື່ອງໝາຍ exclamation: Jan!$A$2:$B$6.
ກະລຸນາໃສ່ໃຈວ່າພວກເຮົາລັອກໄລຍະດ້ວຍການອ້າງອີງເຊລແບບສົມບູນເພື່ອປ້ອງກັນບໍ່ໃຫ້ມັນປ່ຽນແປງເມື່ອສຳເນົາສູດຄຳນວນໄປໃສ່ຕາລາງອື່ນ.
Col_index_num ແມ່ນ 2 ເພາະວ່າພວກເຮົາຕ້ອງການສຳເນົາຄ່າໃດໜຶ່ງ. ຈາກຖັນ B, ເຊິ່ງເປັນຖັນທີ 2 ໃນອາເຣຕາຕາລາງ.
- Range_lookup ຖືກຕັ້ງເປັນ FALSE ເພື່ອຊອກຫາການຈັບຄູ່ທີ່ແນ່ນອນ.
ການວາງ arguments ຮ່ວມກັນ, ພວກເຮົາໄດ້ຮັບສູດນີ້:
=VLOOKUP(A2, Jan!$A$2:$B$6, 2, FALSE)
ລາກສູດລົງຖັນແລະທ່ານຈະໄດ້ຮັບຜົນໄດ້ຮັບນີ້:
ໃນ ລັກສະນະຄ້າຍຄືກັນ, ທ່ານສາມາດ Vlookup ຂໍ້ມູນຈາກ Feb ແລະ Mar sheets:
=VLOOKUP(A2, Feb!$A$2:$B$6, 2, FALSE)
=VLOOKUP(A2, Mar!$A$2:$B$6, 2, FALSE)
ເຄັດລັບ ແລະບັນທຶກ:
- ຖ້າຊື່ຊີດມີ ຍະຫວ່າງ ຫຼື ຕົວອັກສອນທີ່ບໍ່ແມ່ນຕົວອັກສອນ , ມັນຈະຕ້ອງຖືກໃສ່ໃນເຄື່ອງໝາຍວົງຢືມອັນດຽວ ເຊັ່ນ 'ການຂາຍເດືອນມັງກອນ'!$A$2:$B$6 . ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ກະລຸນາເບິ່ງວິທີການອ້າງອີງຊີດອື່ນໃນ Excel.
- ແທນທີ່ຈະພິມຊື່ແຜ່ນງານໂດຍກົງໃນສູດ, ທ່ານສາມາດສະຫຼັບໄປຫາແຜ່ນງານຊອກຫາ ແລະເລືອກໄລຍະຢູ່ທີ່ນັ້ນ. Excel ຈະໃສ່ການອ້າງອີງທີ່ມີ syntax ທີ່ຖືກຕ້ອງໂດຍອັດຕະໂນມັດ, ເຮັດໃຫ້ທ່ານມີບັນຫາໃນການກວດສອບຊື່ແລະແກ້ໄຂບັນຫາ.
Vlookup ຈາກ workbook ທີ່ແຕກຕ່າງກັນ
ເພື່ອ VLOOKUP ລະຫວ່າງສອງ.ປື້ມບັນທຶກວຽກ, ໃຫ້ໃສ່ຊື່ໄຟລ໌ໃນວົງເລັບສີ່ຫຼ່ຽມ, ຕິດຕາມດ້ວຍຊື່ແຜ່ນງານ ແລະຈຸດ exclamation.
ຕົວຢ່າງ, ເພື່ອຊອກຫາຄ່າ A2 ໃນຊ່ວງ A2:B6 ໃນ Jan sheet in ປຶ້ມວຽກ Sales_reports.xlsx , ໃຊ້ສູດນີ້:
=VLOOKUP(A2, [Sales_reports.xlsx]Jan!$A$2:$B$6, 2, FALSE)
ສຳລັບລາຍລະອຽດເຕັມ, ກະລຸນາເບິ່ງ VLOOKUP ຈາກປຶ້ມວຽກອື່ນໃນ Excel.
ເບິ່ງຂ້າມ. ຫຼາຍແຜ່ນດ້ວຍ IFERROR
ເມື່ອທ່ານຕ້ອງການຊອກຫາລະຫວ່າງຫຼາຍກວ່າສອງແຜ່ນ, ການແກ້ໄຂທີ່ງ່າຍທີ່ສຸດແມ່ນການໃຊ້ VLOOKUP ປະສົມປະສານກັບ IFERROR. ແນວຄວາມຄິດແມ່ນເພື່ອວາງຟັງຊັນ IFERROR ຫຼາຍໆຢ່າງເພື່ອກວດເບິ່ງຫຼາຍໆແຜ່ນວຽກຫນຶ່ງຕໍ່ຫນຶ່ງ: ຖ້າ VLOOKUP ທໍາອິດບໍ່ພົບຄໍາທີ່ກົງກັນໃນແຜ່ນທໍາອິດ, ຄົ້ນຫາໃນແຜ່ນຕໍ່ໄປ, ແລະອື່ນໆ.
IFERROR(VLOOKUP(...), IFERROR(VLOOKUP(…), …, " ບໍ່ພົບ "))ເພື່ອເບິ່ງວິທີການນີ້ເຮັດວຽກກັບຂໍ້ມູນຊີວິດຈິງ, ໃຫ້ພິຈາລະນາຕົວຢ່າງຕໍ່ໄປນີ້. ຂ້າງລຸ່ມນີ້ແມ່ນຕາຕະລາງ ສະຫຼຸບ ທີ່ພວກເຮົາຕ້ອງການຕື່ມຂໍ້ມູນໃສ່ຊື່ລາຍການ ແລະຈຳນວນໂດຍການຊອກຫາເລກລຳດັບໃນ ຕາເວັນຕົກ ແລະ ຕາເວັນອອກ ແຜ່ນງານ:
ທໍາອິດ, ພວກເຮົາຈະດຶງລາຍການ. ສໍາລັບນີ້, ພວກເຮົາແນະນໍາສູດ VLOOKUP ເພື່ອຊອກຫາຈໍານວນຄໍາສັ່ງໃນ A2 ໃນແຜ່ນ ຕາເວັນອອກ ແລະສົ່ງຄືນຄ່າຈາກຖັນ B (ຖັນທີ 2 ໃນ table_array A2:C6). ຖ້າບໍ່ພົບການກົງກັນທີ່ແນ່ນອນ, ໃຫ້ຊອກຫາຢູ່ໃນ West sheet. ຖ້າທັງສອງ Vlookups ລົ້ມເຫລວ, ໃຫ້ກັບຄືນ "ບໍ່ພົບ".ພຽງແຕ່ປ່ຽນຕົວເລກດັດສະນີຖັນເປັນ 3:
=IFERROR(VLOOKUP(A2, East!$A$2:$C$6, 3, FALSE), IFERROR(VLOOKUP(A2, West!$A$2:$C$6, 3, FALSE), "Not found"))
ເຄັດລັບ. ຖ້າຈໍາເປັນ, ທ່ານສາມາດກໍານົດ array ຕາຕະລາງທີ່ແຕກຕ່າງກັນສໍາລັບຫນ້າທີ່ VLOOKUP ທີ່ແຕກຕ່າງກັນ. ໃນຕົວຢ່າງນີ້, ທັງສອງແຜ່ນຊອກຫາມີຈໍານວນແຖວດຽວກັນ (A2:C6), ແຕ່ແຜ່ນວຽກຂອງເຈົ້າອາດຈະແຕກຕ່າງກັນໃນຂະຫນາດ.
Vlookup ໃນຫຼາຍປຶ້ມວຽກ
ເພື່ອ Vlookup ລະຫວ່າງ 2 ຫຼືຫຼາຍກວ່ານັ້ນປຶ້ມວຽກ, ໃຫ້ໃສ່ຊື່ປຶ້ມວຽກໃສ່ໃນວົງເລັບສີ່ຫຼ່ຽມ ແລະວາງມັນໄວ້ກ່ອນຊື່ແຜ່ນງານ. ຕົວຢ່າງ, ນີ້ແມ່ນວິທີທີ່ທ່ານສາມາດ Vlookup ໃນ ສອງໄຟລ໌ທີ່ແຕກຕ່າງກັນ ( Book1 ແລະ Book2 ) ດ້ວຍສູດດຽວ:
=IFERROR(VLOOKUP(A2, [Book1.xlsx]East!$A$2:$C$6, 2, FALSE), IFERROR(VLOOKUP(A2, [Book2.xlsx]West!$A$2:$C$6, 2, FALSE),"Not found"))
ເຮັດໃຫ້ຕົວເລກດັດສະນີຖັນແບບໄດນາມິກເປັນ Vlookup ຫຼາຍຖັນ
ໃນສະຖານະການທີ່ເຈົ້າຕ້ອງການສົ່ງຄືນຂໍ້ມູນຈາກຫຼາຍຖັນ, ການເຮັດໃຫ້ col_index_num ໄດນາມິກສາມາດປະຫຍັດເວລາໄດ້. ມີການປັບຕົວບາງອັນທີ່ຕ້ອງເຮັດ:
- ສຳລັບອາກິວເມັນ col_index_num , ໃຫ້ໃຊ້ຟັງຊັນ COLUMNS ທີ່ສົ່ງຄືນຈຳນວນຖັນໃນອາເຣທີ່ກຳນົດໄວ້: COLUMNS($A$1 :B$1). (ການປະສານງານແຖວບໍ່ສຳຄັນແທ້ໆ, ມັນສາມາດເປັນແຖວໃດກໍໄດ້.)
- ໃນອາກິວເມັນ lookup_value , ລັອກການອ້າງອີງຖັນດ້ວຍເຄື່ອງໝາຍ $ ($A2), ສະນັ້ນມັນຍັງຄົງຢູ່. ແກ້ໄຂເມື່ອສຳເນົາສູດຄຳນວນໄປໃສ່ຖັນອື່ນ.
ດ້ວຍເຫດນັ້ນ, ທ່ານໄດ້ຮັບສູດແບບໄດນາມິກຊະນິດໜຶ່ງທີ່ດຶງເອົາຄ່າທີ່ກົງກັນຈາກຖັນຕ່າງໆ, ຂຶ້ນກັບຖັນໃດທີ່ສູດຄຳນວນຖືກສຳເນົາໄປ:
=IFERROR(VLOOKUP($A2, East!$A$2:$C$6, COLUMNS($A$1:B$1), FALSE), IFERROR(VLOOKUP($A2, West!$A$2:$C$6, COLUMNS($A$1:B$1), FALSE), "Not found"))
ເມື່ອໃສ່ໃນຖັນ B, COLUMNS($A$1:B$1)ປະເມີນເປັນ 2 ບອກ VLOOKUP ໃຫ້ສົ່ງຄືນຄ່າຈາກຖັນທີ 2 ໃນຕາຕະລາງຕາຕະລາງ.
ເມື່ອສຳເນົາໄປໃສ່ຖັນ C (ເຊັ່ນ: ທ່ານໄດ້ລາກສູດຈາກ B2 ຫາ C2), B$1 ປ່ຽນເປັນ C$1 ເພາະວ່າ ຖັນອ້າງອີງແມ່ນພີ່ນ້ອງ. ດັ່ງນັ້ນ, COLUMNS($A$1:C$1) ປະເມີນເປັນ 3 ບັງຄັບໃຫ້ VLOOKUP ຕອບຄ່າຈາກຖັນທີ 3.
ສູດນີ້ໃຊ້ໄດ້ຫຼາຍສຳລັບ 2 - 3 ແຜ່ນງານຊອກຫາ. ຖ້າທ່ານມີຫຼາຍ, IFERRORs ຊໍ້າຊ້ອນກາຍເປັນເລື່ອງທີ່ຫຍຸ້ງຍາກເກີນໄປ. ຕົວຢ່າງຕໍ່ໄປສະແດງໃຫ້ເຫັນຄວາມຊັບຊ້ອນເລັກນ້ອຍແຕ່ມີວິທີການທີ່ສະຫງ່າງາມກວ່າ.
ເບິ່ງຫຼາຍແຜ່ນດ້ວຍ INDIRECT
ອີກວິທີໜຶ່ງເພື່ອ Vlookup ລະຫວ່າງຫຼາຍແຜ່ນໃນ Excel ແມ່ນການໃຊ້ການລວມກັນຂອງ VLOOKUP ແລະ ຟັງຊັນ INDIRECT. ວິທີການນີ້ຮຽກຮ້ອງໃຫ້ມີການກະກຽມເລັກນ້ອຍ, ແຕ່ໃນທີ່ສຸດ, ເຈົ້າຈະມີສູດທີ່ຫນາແຫນ້ນກວ່າສໍາລັບ Vlookup ໃນຈໍານວນຕາຕະລາງໃດໆ. 1>lookup_value , INDIRECT("'"&INDEX( Lookup_sheets , MATCH(1, --(COUNTIF(INDIRECT("'"") & Lookup_sheets &")" '! lookup_range "), lookup_value )>0), 0)) & "'! table_array "), col_index_num , FALSE)
ຢູ່ໃສ:
- Lookup_sheets - ໄລຍະທີ່ມີຊື່ປະກອບດ້ວຍຊື່ຊີດຊອກຫາ.
- Lookup_value - the ຄ່າທີ່ຈະຊອກຫາ.
- ໄລຍະການຊອກຫາ - ໄລຍະຖັນໃນແຜ່ນຂໍ້ມູນຊອກຫາບ່ອນໃດທີ່ຈະຊອກຫາການຊອກຫາ.ຄ່າ.
- Table_array - ໄລຍະຂໍ້ມູນໃນແຜ່ນຊອກຫາ.
- Col_index_num - ຈຳນວນຂອງຖັນໃນຕາຕະລາງ array ຈາກນັ້ນໄປ. ຕອບຄ່າໃດໜຶ່ງ.
ເພື່ອໃຫ້ສູດຄຳນວນເຮັດວຽກໄດ້ຢ່າງຖືກຕ້ອງ, ກະລຸນາຮັບຊາບບັນດາຂໍ້ແນະນຳຕໍ່ໄປນີ້:
- ມັນເປັນສູດອາເຣ, ເຊິ່ງຈະຕ້ອງສຳເລັດໂດຍການກົດ Ctrl + Shift + ໃສ່ກະແຈເຂົ້າກັນ.
- ຊີດທັງໝົດຕ້ອງມີ ລຳດັບຂອງຖັນດຽວກັນ .
- ເມື່ອພວກເຮົາໃຊ້ຕາຕະລາງຕາຕະລາງອັນດຽວສຳລັບເອກະສານຊອກຫາທັງໝົດ, ໃຫ້ລະບຸ ໄລຍະທີ່ໃຫຍ່ທີ່ສຸດ ຖ້າຊີດຂອງທ່ານມີຈໍານວນແຖວທີ່ແຕກຕ່າງກັນ.
ວິທີໃຊ້ສູດການ Vlookup ໃນທົ່ວຊີດ
ເພື່ອ Vlookup ຫຼາຍແຜ່ນຕໍ່ໆກັນ, ດໍາເນີນການເຫຼົ່ານີ້. ຂັ້ນຕອນ:
- ຂຽນຊື່ແຜ່ນການຊອກຫາທັງຫມົດຢູ່ບ່ອນໃດຫນຶ່ງໃນ workbook ຂອງທ່ານແລະຊື່ທີ່ລະດັບ ( Lookup_sheets ໃນກໍລະນີຂອງພວກເຮົາ).
- ຊອກຫາຄ່າ A2 ( lookup_value )
- ໃນໄລຍະ A2:A6 ( lookup_range ) ໃນ ສີ່ແຜ່ນວຽກ ( ຕາເວັນອອກ , ເໜືອ , ໃຕ້ ແລະ ຕາເວັນຕົກ ), ແລະ
- ດຶງຄ່າທີ່ກົງກັນຈາກຖັນ B, ເຊິ່ງແມ່ນຖັນ 2 ( col_index_num ) ໃນຂອບເຂດຂໍ້ມູນ A2:C6 ( table_array ).
ດ້ວຍອາກິວເມັນຂ້າງເທິງ, ສູດຈະໃຊ້ຮູບຮ່າງນີ້:
=VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'"& Lookup_sheets&"'!$A$2:$A$6"), $A2)>0), 0)) &"'!$A$2:$C$6"), 2, FALSE)
ກະລຸນາສັງເກດວ່າພວກເຮົາລັອກທັງສອງໄລຍະ ($A$2:$A$6 ແລະ $A$2:$C$6) ດ້ວຍການອ້າງອີງຕາລາງຢ່າງແທ້ຈິງ.
ດັ່ງທີ່ ຜົນໄດ້ຮັບ, ພວກເຮົາໄດ້ຮັບສູດເພື່ອຊອກຫາຈໍານວນຄໍາສັ່ງໃນ 4 ແຜ່ນແລະດຶງເອົາລາຍການທີ່ສອດຄ້ອງກັນໄດ້. ຖ້າບໍ່ພົບຕົວເລກການສັ່ງຊື້ສະເພາະ, ຂໍ້ຜິດພາດ #N/A ຈະຖືກສະແດງຄືກັບແຖວທີ 14:
ເພື່ອສົ່ງຄືນຈຳນວນ, ພຽງແຕ່ແທນທີ່ 2 ກັບ 3 ໃນ col_index_num. argument ເປັນຈໍານວນຢູ່ໃນຖັນທີ 3 ຂອງຕາຕະລາງ array:
=VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'" & Lookup_sheets & "'!$A$2:$A$6"), $A2)>0), 0)) & "'!$A$2:$C$6"), 3, FALSE)
ຖ້າທ່ານຕ້ອງການປ່ຽນມາດຕະຖານຄວາມຜິດພາດ #N/A ດ້ວຍຂໍ້ຄວາມຂອງທ່ານເອງ, ຫໍ່ ສູດເຂົ້າໄປໃນຟັງຊັນ IFNA:
=IFNA(VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'" & Lookup_sheets & "'!$A$2:$A$6"), $A2)>0), 0)) & "'!$A$2:$C$6"), 3, FALSE), "Not found")
ເບິ່ງຫຼາຍແຜ່ນລະຫວ່າງປຶ້ມວຽກ
ສູດທົ່ວໄປນີ້ (ຫຼືຮູບແບບຕ່າງໆຂອງມັນ) ຍັງສາມາດຖືກນໍາໃຊ້ ເພື່ອ Vlookup ຫຼາຍແຜ່ນໃນ ປຶ້ມວຽກທີ່ແຕກຕ່າງກັນ . ສໍາລັບການນີ້, concatenate ຊື່ workbook ພາຍໃນ INDIRECT ດັ່ງທີ່ສະແດງຢູ່ໃນສູດຂ້າງລຸ່ມນີ້:
=IFNA(VLOOKUP($A2, INDIRECT("'[Book1.xlsx]" & INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'[Book1.xlsx]" & Lookup_sheets & "'!$A$2:$A$6"), $A2)>0), 0)) & "'!$A$2:$C$6"), 2, FALSE), "Not found")
Vlookup ລະຫວ່າງແຜ່ນແລະສົ່ງຄືນຫຼາຍຖັນ
ຖ້າທ່ານຕ້ອງການດຶງຂໍ້ມູນຈາກຫຼາຍ ຖັນ, ສູດອະເຣຫຼາຍເຊລ ສາມາດເຮັດໄດ້ໃນຄັ້ງດຽວ. ເພື່ອສ້າງສູດດັ່ງກ່າວ, ສະໜອງຄ່າຄົງທີ່ array ສໍາລັບ col_index_num argument.
ໃນຕົວຢ່າງນີ້, ພວກເຮົາຕ້ອງການສົ່ງຄືນຊື່ລາຍການ (ຖັນ B) ແລະຈໍານວນ (ຖັນ C), ເຊິ່ງ. ແມ່ນຖັນທີ 2 ແລະທີ 3 ໃນຕາຕະລາງຕາຕະລາງ, ຕາມລໍາດັບ. ດັ່ງນັ້ນ, array ທີ່ຕ້ອງການແມ່ນ{2,3}.
=VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'"& Lookup_sheets &"'!$A$2:$C$6"), $A2)>0), 0)) &"'!$A$2:$C$6"), {2,3}, FALSE)
ເພື່ອປ້ອນສູດຄຳນວນໃຫ້ຖືກຕ້ອງໃນຫຼາຍຕາລາງ, ນີ້ແມ່ນສິ່ງທີ່ທ່ານຕ້ອງເຮັດ:
- ໃນແຖວທຳອິດ, ເລືອກຕາລາງທັງໝົດທີ່ຈະຕື່ມຂໍ້ມູນ (B2:C2 ໃນຕົວຢ່າງຂອງພວກເຮົາ).
- ພິມສູດແລ້ວກົດ Ctrl + Shift + Enter . ອັນນີ້ເຂົ້າໄປໃນສູດດຽວກັນໃນຕາລາງທີ່ເລືອກ, ເຊິ່ງຈະສົ່ງຄ່າທີ່ແຕກຕ່າງກັນໃນແຕ່ລະຖັນ.
- ລາກສູດຄຳນວນລົງໄປຫາແຖວທີ່ເຫຼືອ.
ສູດນີ້ເຮັດວຽກແນວໃດ
ເພື່ອເຂົ້າໃຈສາເຫດໄດ້ດີຂຶ້ນ, ຂໍໃຫ້ແບ່ງສູດພື້ນຖານນີ້ອອກເປັນການທໍາງານຂອງແຕ່ລະຄົນ:
=VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'"& Lookup_sheets&"'!$A$2:$A$6"), $A2)>0), 0)) &"'!$A$2:$C$6"), 2, FALSE)
ເຮັດວຽກຈາກພາຍໃນສູ່ພາຍນອກ, ນີ້ແມ່ນສິ່ງທີ່ສູດເຮັດ:
COUNTIF ແລະ INDIRECT
ໂດຍຫຍໍ້, INDIRECT ຈະສ້າງເອກະສານອ້າງອີງສໍາລັບແຜ່ນການຊອກຫາທັງໝົດ, ແລະ COUNTIF ຈະນັບການປະກົດຕົວຂອງການຄົ້ນຫາ. ຄ່າ (A2) ໃນແຕ່ລະຊີດ:
--(COUNTIF( INDIRECT("'"&Lookup_sheets&"'!$A$2:$A$6"), $A2)>0)
ໃນລາຍລະອຽດເພີ່ມເຕີມ:
ທໍາອິດ, ທ່ານປະກອບຊື່ໄລຍະ (Lookup_sheets) ແລະການອ້າງອີງໄລຍະ ($A$2: $A$6), ການເພີ່ມ apostrophes ແລະ exclamation point ໃນສະຖານທີ່ທີ່ຖືກຕ້ອງເພື່ອເຮັດການອ້າງອີງພາຍນອກ, ແລະ feed string text ຜົນໄດ້ຮັບໄປຫາຟັງຊັນ INDIRECT ເພື່ອອ້າງອີງແບບໄດນາມິກຂອງ lookup sheets:
INDIRECT({"'East'!$A$2:$A$6"; "'South'!$A$2:$A$6"; "'North'!$A$2:$A$6"; "'West'!$A$2:$A$6"})
COUNTIF ກວດສອບແຕ່ລະເຊລໃນໄລຍະ A2:A6 ໃນແຕ່ລະແຜ່ນຊອກຫາຕໍ່ກັບຄ່າໃນ A2 ໃນຫຼັກ ແຜ່ນແລະສົ່ງຄືນການນັບຂອງຄໍາທີ່ກົງກັນສໍາລັບແຕ່ລະແຜ່ນ. ໃນຊຸດຂໍ້ມູນຂອງພວກເຮົາ, ຕົວເລກຄໍາສັ່ງໃນ A2 (101) ແມ່ນພົບເຫັນຢູ່ໃນແຜ່ນ ຕາເວັນຕົກ , ເຊິ່ງເປັນອັນດັບທີ 4 ໃນແຜ່ນ.ໄລຍະທີ່ມີຊື່, ດັ່ງນັ້ນ COUNTIF ຕອບອາເຣນີ້:
{0;0;0;1}
ຕໍ່ໄປ, ທ່ານສົມທຽບແຕ່ລະອົງປະກອບຂອງອາເຣຂ້າງເທິງນີ້ດ້ວຍ 0:
--({0; 0; 0; 1}>0)
ອັນນີ້ໃຫ້ຜົນ array ຂອງ TRUE (ໃຫຍ່ກວ່າ 0) ແລະ FALSE (ເທົ່າກັບ 0), ທີ່ທ່ານບີບບັງຄັບເປັນ 1's ແລະ 0's ໂດຍໃຊ້ double unary (--), ແລະໄດ້ຮັບ array ດັ່ງຕໍ່ໄປນີ້:
{0; 0; 0; 1}
ການດຳເນີນການນີ້ແມ່ນເປັນຂໍ້ຄວນລະວັງເພີ່ມເຕີມເພື່ອຈັດການກັບສະຖານະການເມື່ອເອກະສານຊອກຫາປະກອບດ້ວຍການປະກົດຕົວຫຼາຍຄັ້ງຂອງຄ່າການຊອກຫາ, ໃນກໍລະນີນີ້ COUNTIF ຈະສົ່ງຄືນການນັບໃຫຍ່ກວ່າ 1, ໃນຂະນະທີ່ພວກເຮົາຕ້ອງການພຽງແຕ່ 1's ແລະ 0's ເທົ່ານັ້ນ. array ສຸດທ້າຍ (ໃນປັດຈຸບັນ, ທ່ານຈະເຂົ້າໃຈວ່າເປັນຫຍັງ).
ຫຼັງຈາກການປ່ຽນແປງທັງຫມົດເຫຼົ່ານີ້, ສູດຂອງພວກເຮົາມີດັ່ງຕໍ່ໄປນີ້:
VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, {0;0;0;1} , 0)) &"'!$A$2:$C$6"), 2, FALSE)
INDEX ແລະ MATCH
ໃນຈຸດນີ້, ຂັ້ນຕອນການປະສົມປະສານ INDEX MATCH ຄລາສສິກໃນ:
INDEX(Lookup_sheets, MATCH(1, {0;0;0;1}, 0))
ຟັງຊັນ MATCH ທີ່ຖືກຕັ້ງຄ່າໃຫ້ກົງກັນທີ່ແນ່ນອນ (0 ໃນອາກິວເມັນສຸດທ້າຍ) ຊອກຫາຄ່າ 1 ໃນອາເຣ { 0;0;0;1} ແລະສົ່ງຄືນຕຳແໜ່ງຂອງມັນ, ເຊິ່ງແມ່ນ 4:
INDEX(Lookup_sheets, 4)
ຟັງຊັນ INDEX ໃຊ້ຕົວເລກທີ່ສົ່ງຄືນ. ໂດຍ MATCH ເປັນອາກິວເມັນເລກແຖວ (row_num), ແລະສົ່ງຄືນຄ່າທີ 4 ໃນຊ່ວງທີ່ມີຊື່ Lookup_sheets , ເຊິ່ງແມ່ນ ຕາເວັນຕົກ .
ດັ່ງນັ້ນ, ສູດຈະຫຼຸດລົງຕື່ມອີກ. ເປັນ:
VLOOKUP($A2, INDIRECT("'"&" West "&"'!$A$2:$C$6"), 2, FALSE)
VLOOKUP ແລະ INDIRECT
ຟັງຊັນ INDIRECT ປະມວນຜົນຂໍ້ຄວາມທີ່ຢູ່ໃນມັນ:
INDIRECT("'"&"West"&"'!$A$2:$C$6")
ແລະປ່ຽນມັນ. ເຂົ້າໄປໃນການອ້າງອີງທີ່ໄປຫາ table_array argument ຂອງ