Talaan ng nilalaman
Ipinapaliwanag ng tutorial kung paano gawing case-sensitive ang Excel VLOOKUP, nagpapakita ng ilan pang formula na nagpapakilala sa text case, at itinuturo ang mga lakas at limitasyon ng bawat function.
Sa palagay ko bawat Alam ng user ng Excel kung anong function ang gumaganap ng vertical lookup sa Excel. Tama, ito ay VLOOKUP. Gayunpaman, napakakaunting mga tao ang nakakaalam na ang VLOOKUP ng Excel ay case-insensitive, ibig sabihin, tinatrato nito ang mga lowercase at UPPERCASE na titik bilang parehong mga character.
Narito ang isang mabilis na halimbawa na nagpapakita ng kawalan ng kakayahan ng VLOOKUP na makilala ang text case. Ipagpalagay kung mayroon kang "bill" sa cell A2 at "Bill" sa A4. Ang formula sa ibaba ay kukuha ng "bill" dahil nauuna ito sa lookup array at nagbabalik ng katugmang halaga mula sa B2.
=VLOOKUP("Bill", A2:B4, 2, FALSE)
Higit pa rito artikulo, magpapakita ako sa iyo ng isang paraan upang gawing case-sensitive ang VLOOKUP. Mag-e-explore din kami ng ilang iba pang function na maaaring gumawa ng case-sensitive na tugma sa Excel.
Case-sensitive na VLOOKUP formula
Tulad ng nabanggit sa itaas, isang karaniwang VLOOKUP formula hindi kinikilala ang kaso ng sulat. Gayunpaman, may paraan para gawing case-sensitive ang Excel VLOOKUP, gaya ng ipinakita sa halimbawa sa ibaba.
Ipagpalagay na mayroon kang Mga ID ng Item sa column A at gusto mong kunin ang presyo at komento ng item mula sa mga column B at C. Ang problema ay ang mga ID ay kinabibilangan ng mga maliliit at malalaking titik. Halimbawa, ang mga halaga sa A4 (001Tvci3u) at A5 (001Tvci3U) ay naiiba lamang saang huling character, "u" at "U", ayon sa pagkakabanggit.
Kapag hinahanap ang "001Tvci3 U ", isang karaniwang VLOOKUP formula ang naglalabas ng $90 na nauugnay sa "001Tvci3 u " dahil nauuna ito sa "001Tvci3 U " sa lookup array. Ngunit hindi ito ang gusto mo, di ba?
=VLOOKUP(F2, A2:C7, 2, FALSE)
Upang magsagawa ng case-sensitive lookup sa Excel, pinagsama namin ang VLOOKUP, CHOOSE at EXACT mga function:
VLOOKUP(TRUE, CHOOSE({1,2}, EXACT( lookup_value, lookup_array), return_array), 2, 0)Ang generic na formula na ito ay perpektong gumagana sa lahat ng sitwasyon. Maaari mo ring tingnan ang mula kanan pakaliwa , isang bagay na hindi kayang gawin ng isang regular na formula ng VLOOKUP. Kudos sa Pouriya sa pagmumungkahi ng simple at eleganteng solusyon na ito!
Sa aming kaso, ang mga tunay na formula ay sumusunod.
Upang hilahin ang presyo sa F3:
=VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), B2:B7), 2, FALSE)
Upang kunin ang komento F4:
=VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7), 2, FALSE)
Tandaan. Sa lahat ng mga bersyon ng Excel maliban sa Excel 365, ito ay gumagana lamang bilang isang array formula, kaya tandaan na pindutin ang Ctrl + Shift + Enter upang makumpleto ito nang tama. Sa Excel 365, dahil sa suporta para sa mga dynamic na array, gumagana rin ito bilang isang regular na formula.
Paano gumagana ang formula na ito:
Ang pangunahing bahagi na gumagawa ng trick ay ang CHOOSE formula na may nested EXACT:
CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7)
Dito, ang EXACT function ay naghahambing ng halaga sa F2 laban sa bawat halaga sa A2:A7 at nagbabalik ng TRUE kung sila ay eksaktong pareho kasama ang letter case,FALSE kung hindi:
{FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}
Para sa index_num argument ng CHOOSE, ginagamit namin ang array constant {1,2}. Bilang resulta, pinagsasama ng function ang mga lohikal na halaga mula sa array sa itaas at ang mga halaga mula sa C2:C7 sa isang two-dimensional array na tulad nito:
{FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}
Ang VLOOKUP function ay tumatagal mula doon at hinahanap ang lookup value (na TRUE) sa 1st column ng 2-dimensional array (kinakatawan ng mga logical value) at nagbabalik ng tugma mula sa 2nd column, na siyang presyong hinahanap namin:
VLOOKUP(TRUE, {FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}, 2, 0)
Case-sensitive XLOOKUP formula
Ang mga subscriber ng Microsoft 365 ay maaaring gumawa ng case-sensitive lookup sa Excel gamit ang isang mas simpleng formula. Tulad ng maaari mong hulaan, pinag-uusapan ko ang tungkol sa isang mas malakas na kahalili ng VLOOKUP - ang XLOOKUP function.
Dahil ang XLOOKUP ay gumagana sa paghahanap at pagbabalik ng mga array nang hiwalay, hindi namin kailangan ang two-dimensional array trick mula sa nakaraang halimbawa. Simple lang, gamitin ang EXACT para sa lookup_array argument:
XLOOKUP(TRUE, EXACT( lookup_value , lookup_array ), return_array , " Hindi nahanap")Ang huling argumento ("Hindi nahanap") ay opsyonal. Tinutukoy lang nito kung anong halaga ang ibabalik kung walang nakitang tugma. Kung aalisin mo ito, ibabalik ang karaniwang #N/A na error sakaling walang mahanap ang formula.
Para sa aming sample na talahanayan, ito ang mga case-sensitive na XLOOKUP na formula na gagamitin.
Upang makuha ang presyo sa F3:
=XLOOKUP(TRUE, EXACT(F2, A2:A7), B2:B7, "Not found")
Upang i-extract angkomento F4:
=XLOOKUP(TRUE, EXACT(F2, A2:A7), C2:C7, "Not found")
Paano gumagana ang formula na ito:
Tulad ng sa nakaraang halimbawa, nagbabalik ang EXACT isang array ng TRUE at FALSE value, kung saan ang TRUE ay kumakatawan sa case-sensitive na mga tugma. Hinahanap ng XLOOKUP ang array sa itaas para sa TRUE na halaga at nagbabalik ng tugma mula sa return_array . Pakitandaan, kung may dalawa o higit pang eksaktong parehong value sa hanay ng paghahanap (kabilang ang letter case), ibabalik ng formula ang unang nakitang tugma.
Limitasyon ng XLOOKUP : available lang sa Excel 365 at Excel 2021.
SUMPRODUCT - case-sensitive lookup upang ibalik ang mga tumutugmang numero
Sa pagkakaintindi mo mula sa heading, ang SUMPRODUCT ay isa pang Excel function na makakagawa ng case-sensitive lookup , ngunit maaari lamang itong magbalik ng mga numerong halaga . Kung hindi ito ang iyong kaso, pagkatapos ay pumunta sa halimbawa ng INDEX MATCH na nagbibigay ng solusyon para sa lahat ng uri ng data.
Tulad ng malamang na alam mo, pinaparami ng SUMPRODUCT ng Excel ang mga bahagi sa mga tinukoy na array at ibinabalik ang kabuuan ng mga produkto. Dahil gusto namin ng case sensitive lookup, ginagamit namin ang EXACT function para makuha ang unang array:
=SUMPRODUCT((EXACT(A2:A7,F2) * (B2:B7)))
Sa kasamaang-palad, ang SUMPRODUCT function ay hindi makakapagbalik ng mga text matches dahil hindi ma-multiply ang mga value ng text. Sa kasong ito, makakakuha ka ng #VALUE! error tulad ng sa cell F4 sa screenshot sa ibaba:
Paano gumagana ang formula na ito:
Tulad ng halimbawa sa VLOOKUP, ang EXACT mga pagsusuri sa functionang value sa F2 laban sa lahat ng value sa A2:A7 at nagbabalik ng TRUE para sa case-sensitive na mga tugma, FALSE kung hindi:
SUMPRODUCT(({FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}*{155;186;90;54;159;28}))
Sa karamihan ng mga formula, sinusuri ng Excel ang TRUE sa 1 at FALSE sa 0 . Kaya, kapag pinarami ng SUMPRODUCT ang mga elemento ng dalawang array sa parehong mga posisyon, lahat ng hindi tugma (FALSE) ay magiging mga zero:
SUMPRODUCT({0;0;0;54;0;0})
Bilang resulta, ang formula ay nagbabalik ng numero mula sa column B na tumutugma sa eksaktong case-sensitive na tugma sa column A.
SUMPRODUCT na limitasyon : maaari lamang magbalik ng mga numeric na halaga.
INDEX MATCH - case-sensitive lookup para sa lahat ng uri ng data
Sa wakas, malapit na kaming makakuha ng formula ng paghahanap na sensitibo sa case na walang limitasyon na gumagana sa lahat ng bersyon ng Excel at sa lahat ng set ng data.
Ang halimbawang ito ay huling hindi lang dahil ang pinakamahusay ay nai-save para sa huli, ngunit dahil din sa kaalaman na nakuha mo sa mga nakaraang halimbawa ay maaaring makatulong sa iyong maunawaan ang case-sensitive na MATCH INDEX formula.
Ang kumbinasyon ng INDEX at MATCH function ay kadalasang ginagamit sa Hal cel bilang isang mas nababaluktot at maraming nalalaman na alternatibo sa VLOOKUP. Ang sumusunod na artikulo ay gumagawa ng magandang trabaho (sana :) na nagpapaliwanag kung paano gumagana ang dalawang function na ito - Gamit ang INDEX MATCH sa halip na VLOOKUP.
Dito, ipapaalala ko lang sa iyo ang mga pangunahing punto:
- Hinahanap ng MATCH function ang lookup value sa tinukoy na lookup array at ibinabalik ang relatibong posisyon nito.
- Ang relativeang posisyon ng lookup value ay direktang napupunta sa row_num argument ng INDEX function na nagtuturo dito na magbalik ng value mula sa row na iyon.
Para makilala ng formula ang text case, kailangan mo lang kailangang magdagdag ng isa pang function sa klasikong kumbinasyon ng INDEX MATCH. Malinaw, kailangan mong muli ang EXACT function:
INDEX( return_array , MATCH(TRUE, EXACT( lookup_value , lookup_array ), 0))Ang totoong formula sa F3 ay:
=INDEX(B2:B7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
Sa F4, ginagamit namin ang isang ito:
=INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
Pakitandaan na ito ay gumagana lamang bilang isang array formula sa lahat ng bersyon maliban sa Excel 365, kaya siguraduhing ilagay ito sa pamamagitan ng pagpindot sa Ctrl + Shift + Enter key nang magkasama. Kung gagawin nang tama, ang formula ay mapapaloob sa mga kulot na brace tulad ng ipinapakita sa screenshot sa ibaba:
Paano gumagana ang formula na ito:
Tulad ng lahat ng nakaraang halimbawa, ang EXACT ay nagbabalik ng TRUE para sa bawat value sa A2:A7 na eksaktong tumutugma sa value sa F2. Dahil gumagamit kami ng TRUE para sa lookup_value ng MATCH, nagbabalik ito ng relatibong posisyon ng eksaktong case-sensitive na tugma, na kung ano mismo ang kailangan ng INDEX para magbalik ng tugma mula sa B2:B7.
Advanced na case-sensitive lookup formula
Mukhang perpekto ang nabanggit sa itaas na formula ng INDEX MATCH, tama ba? Pero sa totoo lang, hindi naman. Hayaan mong ipakita ko sa iyo kung bakit.
Ipagpalagay na blangko ang isang cell sa return column na tumutugma sa lookup value. Ano ang ibabalik ng formula? Wala.At ngayon, tingnan natin kung ano talaga ang ibinabalik nito:
=INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
Oops, nagbabalik ng zero ang formula! Siguro, hindi talaga ito mahalaga kapag nakikitungo lamang sa mga halaga ng teksto. Gayunpaman, kung ang iyong worksheet ay naglalaman ng mga numero at ang ilan sa mga ito ay tunay na mga zero, ito ay isang problema.
Sa totoo lang, lahat ng iba pang mga formula sa paghahanap na tinalakay kanina ay kumikilos sa parehong paraan. Ngunit ngayon gusto mo ng hindi nagkakamali na formula, hindi ba?
Upang gawing ganap na perpekto ang case-sensitive na formula ng INDEX MATCH, ibalot mo ito sa function na IF na nagsusuri kung blangko ang isang return cell at walang ibinalik sa kasong ito:
=IF(INDIRECT("C"&(1+MATCH(TRUE,EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "")
Sa formula sa itaas:
- Ang "C" ay ang return column.
- "1" ang numero na ginagawang kamag-anak na posisyon ng cell na ibinalik ng MATCH function na isang real cell address .
Halimbawa, ang lookup array sa aming MATCH function ay A2:A7, ibig sabihin ang relatibong posisyon ng cell A2 ay "1", dahil ito ang unang cell sa array. Ngunit sa katotohanan, ang lookup array ay nagsisimula sa row 2. Para mabayaran ang pagkakaiba, nagdagdag kami ng 1, kaya ang INDIRECT function ay magbabalik ng value mula sa kanang cell.
Ang mga screenshot sa ibaba ay nagpapakita ng pinahusay na case-sensitive na INDEX Gumaganap ang MATCH formula.
Kung walang laman ang return cell, walang ilalabas ang formula (isang walang laman na string):
Kung naglalaman ng zero ang return cell , ang formula ay nagbabalik ng 0:
Kung mas gusto momagpakita ng ilang mensahe kapag blangko ang isang return cell, palitan ang isang walang laman na string ("") sa huling argumento ng IF ng ilang text:
=IF(INDIRECT("C"&(1+MATCH(TRUE, EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "There is nothing to return, sorry.")
Gawin ang case-sensitive na VLOOKUP sa isang madaling paraan
Ang mga user ng aming Ultimate Suite para sa Excel ay may espesyal na tool na ginagawang mas madali at walang stress ang paghahanap sa malalaki at kumplikadong mga talahanayan. Ang pinakamagandang bagay ay ang Merge Two Tables ay may case-sensitive na opsyon, at ipinapakita ito ng halimbawa sa ibaba sa pagkilos.
Ipagpalagay na gusto mong hilahin ang Qty. mula sa talahanayang Paghahanap hanggang sa talahanayang Pangunahing batay sa mga natatanging Item ID:
Ang ginagawa mo ay patakbuhin ang Mga Merge Tables wizard at gawin ang mga hakbang na ito:
- Piliin ang pangunahing talahanayan kung saan kukuha ng bagong data.
- Piliin ang lookup table kung saan hahanapin ang bagong data.
- Pumili ng isa o higit pang mga pangunahing column (Item ID sa aming kaso). At siguraduhing lagyan ng tsek ang kahon na Case-sensitive na pagtutugma .
Pagkalipas ng ilang sandali, makukuha mo ang gustong resulta :)
Iyan ay kung paano maghanap sa Excel na isinasaalang-alang ang text case. Salamat sa pagbabasa at umaasa akong makita ka sa aming blog sa susunod na linggo!
Magsanay ng workbook para sa pag-download
Mga halimbawa ng VLOOKUP na sensitibo sa case (.xlsx file)