Talaan ng nilalaman
Ang tutorial ay nagpapakita ng ilang magkakaibang mga formula upang magsagawa ng dalawang dimensional na paghahanap sa Excel. Tingnan lang ang mga alternatibo at piliin ang paborito mo :)
Kapag naghahanap ng isang bagay sa iyong mga spreadsheet sa Excel, kadalasan ay hahanapin mo nang patayo sa mga column o pahalang sa mga hilera. Ngunit minsan kailangan mong tumingin sa parehong mga hilera at hanay. Sa madaling salita, nilalayon mong makahanap ng value sa intersection ng isang partikular na row at column. Ito ay tinatawag na matrix lookup (aka 2-dimensional o 2-way lookup ), at ipinapakita ng tutorial na ito kung paano ito gawin sa 4 na magkakaibang paraan.
Excel INDEX MATCH MATCH formula
Ang pinakasikat na paraan upang gumawa ng two-way lookup sa Excel ay sa pamamagitan ng paggamit ng INDEX MATCH MATCH. Ito ay isang variation ng classic na INDEX MATCH formula kung saan ka magdagdag ng isa pang MATCH function upang makuha ang parehong row at column na mga numero:
INDEX ( data_array, MATCH ( vlookup_value, lookup_column_range, 0), MATCH ( hlookup value, lookup_row_range, 0))Bilang halimbawa, gumawa tayo ng formula para makuha ang populasyon ng isang tiyak na hayop sa isang partikular na taon mula sa talahanayan sa ibaba. Para sa mga panimula, tinukoy namin ang lahat ng mga argumento:
- Data_array - B2:E4 (mga cell ng data, hindi kasama ang mga header ng row at column)
- Vlookup_value - H1 (target na hayop)
- Lookup_column_range - A2:A4 (row header: mga pangalan ng hayop) -A3:A4
- Hlookup_value - H2 (target na taon)
- Lookup_row_range - B1:E1 (column header: taon)
Pagsama-samahin ang lahat ng argumento at makukuha mo ang formula na ito para sa two-way lookup:
=INDEX(B2:E4, MATCH(H1, A2:A4, 0), MATCH(H2, B1:E1, 0))
Paano gumagana ang formula na ito
Bagaman ito ay medyo mukhang kumplikado sa unang tingin, ang lohika ng formula ay talagang diretso at madaling maunawaan. Ang INDEX function ay kumukuha ng value mula sa data array batay sa row at column na mga numero, at dalawang MATCH function ang nagbibigay ng mga numerong iyon:
INDEX(B2:E4, row_num, column_num)
Dito, ginagamit namin ang kakayahan ng MATCH(lookup_value, lookup_array, [match_type]) para magbalik ng relative position ng lookup_value sa lookup_array .
Kaya, para makuha ang row number, naghahanap kami para sa animal of interest (H1) sa mga header ng row (A2:A4):
MATCH(H1, A2:A4, 0)
Upang makuha ang numero ng column, hinahanap namin ang target na taon (H2) sa mga header ng column (B1:E1):
MATCH(H2, B1:E1, 0)
Sa parehong mga kaso, naghahanap kami ng eksaktong tugma sa pamamagitan ng pagtatakda ng 3rd argument sa 0.
Sa halimbawang ito, ang unang MATCH ay nagbabalik 2 dahil ang aming vlookup value (Polar bear) ay matatagpuan sa A3, na siyang 2nd cell sa A2:A4. Ang pangalawang MATCH ay nagbabalik ng 3 dahil ang hlookup value (2000) ay matatagpuan sa D1, na siyang ika-3 cell sa B1:E1.
Dahil sa itaas, ang formula ay bumaba sa:
INDEX(B2:E4, 2, 3)
At magbalik ng value sa intersection ng 2nd row at 3rd column sa data array B2:E4, na isangvalue sa cell D3.
VLOOKUP at MATCH formula para sa 2-way lookup
Ang isa pang paraan upang gumawa ng two-dimensional lookup sa Excel ay sa pamamagitan ng paggamit ng kumbinasyon ng VLOOKUP at MATCH function:
VLOOKUP( vlookup_value , table_array , MATCH( hlookup_value , lookup_row_range , 0), FALSE)Para sa aming sample na talahanayan , ang formula ay may sumusunod na hugis:
=VLOOKUP(H1, A2:E4, MATCH(H2, A1:E1, 0), FALSE)
Saan:
- Table_array - A2:E4 (data cell kasama ang mga row header)
- Vlookup_value - H1 (target na hayop)
- Hlookup_value - H2 (target na taon)
- Lookup_row_range - A1:E1 (mga header ng column: taon)
Paano gumagana ang formula na ito
Ang core ng formula ay ang VLOOKUP function na na-configure para sa eksaktong tugma (ang huling argumento nakatakda sa FALSE), na naghahanap ng lookup value (H1) sa unang column ng table array (A2:E4) at nagbabalik ng value mula sa isa pang column sa parehong row. Upang matukoy kung aling column ang magbabalik ng value, gagamitin mo ang MATCH function na naka-configure din para sa eksaktong tugma (ang huling argument na nakatakda sa 0):
MATCH(H2, A1:E1, 0)
MATCH ay naghahanap ng value sa H2 sa mga header ng column (A1:E1) at ibinabalik ang relatibong posisyon ng natagpuang cell. Sa aming kaso, ang target na taon (2010) ay matatagpuan sa E1, na ika-5 sa lookup array. Kaya, ang numero 5 ay napupunta sa col_index_num argument ng VLOOKUP:
VLOOKUP(H1, A2:E4, 5, FALSE)
VLOOKUP kinuha ito mula doon, nakahanap ngeksaktong tugma para sa lookup value nito sa A2 at nagbabalik ng value mula sa ika-5 column sa parehong row, na cell E2.
Mahalagang paalala! Para gumana nang tama ang formula, ang table_array (A2:E4) ng VLOOKUP at lookup_array ng MATCH (A1:E1) ay dapat magkaroon ng parehong bilang ng mga column, kung hindi, ang numerong ipinasa ng MATCH sa col_index_num ay magiging mali (hindi tumutugma sa posisyon ng column sa table_array ).
XLOOKUP function upang tumingin sa mga row at column
Kamakailan ay ipinakilala ng Microsoft ang isa pang function sa Excel na nilalayong palitan ang lahat ng umiiral na lookup function tulad ng VLOOKUP, HLOOKUP at INDEX MATCH. Sa iba pang mga bagay, maaaring tingnan ng XLOOKUP ang intersection ng isang partikular na row at column:
XLOOKUP( vlookup_value , vlookup_column_range , XLOOKUP( hlookup_value , hlookup_row_range , data_array ))Para sa aming sample na set ng data, ang formula ay sumusunod:
=XLOOKUP(H1, A2:A4, XLOOKUP(H2, B1:E1, B2:E4))
Tandaan. Sa kasalukuyan, ang XLOOKUP ay isang beta function, na available lang sa mga subscriber ng Office 365 na bahagi ng programa ng Office Insiders.
Paano gumagana ang formula na ito
Ginagamit ng formula ang kakayahan ng XLOOKUP na magbalik ng isang buong row o column. Hinahanap ng panloob na function ang target na taon sa row ng header at ibinabalik ang lahat ng halaga para sa taong iyon (sa halimbawang ito, para sa taong 1980). Napupunta ang mga value na iyon sa return_array argument ng outerXLOOKUP:
XLOOKUP(H1, A2:A4, {22000;25000;700}))
Hinahanap ng panlabas na XLOOKUP function ang target na hayop sa mga header ng column at ibinabalik ang value sa parehong posisyon mula sa return_array.
SUMPRODUCT formula para sa dalawa -way lookup
Ang function ng SUMPRODUCT ay parang Swiss knife sa Excel – nagagawa nito ang napakaraming bagay na lampas sa itinalaga nitong layunin, lalo na pagdating sa pagsusuri ng maraming pamantayan.
Upang maghanap ng dalawa pamantayan, sa mga row at column, gamitin ang generic na formula na ito:
SUMPRODUCT( vlookup_column_range = vlookup_value ) * ( hlookup_row_range = hlookup_value ), data_array )Upang magsagawa ng 2-way na paghahanap sa aming dataset, ang formula ay sumusunod:
=SUMPRODUCT((A2:A4=H1) * (B1:E1=H2), B2:E4)
Ang syntax sa ibaba ay gagana rin:
=SUMPRODUCT((A2:A4=H1) * (B1:E1=H2) * B2:E4)
Paano gumagana ang formula na ito
Sa gitna ng formula, naghahambing kami ng dalawang value ng paghahanap sa mga header ng row at column (ang target na hayop sa H1 laban sa lahat ng hayop mga pangalan sa A2:A4 at ang target na taon sa H2 laban sa lahat ng taon sa B1:E1):
(A2:A4=H1) * (B1:E1=H2)
This res ults sa 2 array ng TRUE at FALSE value, kung saan ang TRUE's ay kumakatawan sa mga tugma:
{FALSE;FALSE;TRUE} * {FALSE,TRUE,FALSE,FALSE}
Pinipilit ng multiplication operation ang TRUE at FALSE value sa 1's at 0's at gumagawa ng two-dimensional array ng 4 mga column at 3 row (ang mga row ay pinaghihiwalay ng mga semicolon at ang bawat column ng data sa pamamagitan ng kuwit):
{0,0,0,0;0,0,0,0;0,1,0,0}
Ang mga function ng SUMPRODUCT ay nagpaparami ng mga elemento ng array sa itaas ng mga item ngB2:E4 sa parehong mga posisyon:
{0,0,0,0;0,0,0,0;0,1,0,0} * {22000,13800,8500,3500;25000,23000,22000,20000;700,2000,2300,2500}
At dahil ang pag-multiply sa zero ay nagbibigay ng zero, tanging ang item na katumbas ng 1 sa unang array ang mananatili:
SUMPRODUCT({0,0,0,0;0,0,0,0;0,2000,0,0})
Sa wakas, ang SUMPRODUCT ay nagdaragdag ng mga elemento ng nagreresultang array at nagbabalik ng halagang 2000.
Tandaan. Kung ang iyong talahanayan ay may higit sa isang row o/at column header na may parehong pangalan, ang huling array ay maglalaman ng higit sa isang numero maliban sa zero, at lahat ng mga numerong iyon ay idaragdag. Bilang resulta, makakakuha ka ng kabuuan ng mga halaga na nakakatugon sa parehong pamantayan. Ito ang dahilan kung bakit naiiba ang formula ng SUMPRODUCT sa INDEX MATCH MATCH at VLOOKUP, na nagbabalik ng unang nakitang tugma.
Paghanap ng matrix na may mga pinangalanang hanay (tahasang Intersection)
Isa pang kamangha-manghang simpleng paraan upang gawin Ang isang matrix lookup sa Excel ay sa pamamagitan ng paggamit ng mga pinangalanang hanay. Ganito:
Bahagi 1: Pangalanan ang mga column at row
Ang pinakamabilis na paraan upang pangalanan ang bawat row at bawat column sa iyong talahanayan ay ito:
- Piliin ang buong talahanayan (A1:E4 sa aming kaso).
- Sa tab na Mga Formula , sa grupong Mga Tinukoy na Pangalan , i-click ang Gumawa mula sa Selection o pindutin ang Ctrl + Shift + F3 shortcut.
- Sa dialog box na Gumawa ng Mga Pangalan mula sa Selection , piliin ang Nangungunang row at Pakaliwa column, at i-click ang OK.
Awtomatiko itong gumagawa ng mga pangalan batay sa mga header ng row at column. Gayunpaman, mayroong ilang caveat:
- Kung ang iyong column at/oAng mga header ng row ay mga numero o naglalaman ng mga partikular na character na hindi pinapayagan sa mga pangalan ng Excel, ang mga pangalan para sa mga naturang column at row ay hindi gagawin. Upang makakita ng listahan ng mga nilikhang pangalan, buksan ang Name Manager ( Ctrl + F3 ). Kung nawawala ang ilang pangalan, manual na tukuyin ang mga ito gaya ng ipinaliwanag sa Paano pangalanan ang isang range sa Excel.
- Kung ang ilan sa iyong mga header ng row o column ay naglalaman ng mga puwang, ang mga puwang ay papalitan ng mga underscore, halimbawa, Polar_bear .
Para sa aming sample na talahanayan, awtomatikong ginawa lang ng Excel ang mga pangalan ng row. Ang mga pangalan ng column ay kailangang gawin nang manu-mano dahil ang mga header ng column ay mga numero. Upang mapagtagumpayan ito, maaari mo lamang unahan ang mga numero na may mga underscore, tulad ng _1990 .
Bilang resulta, mayroon kaming mga sumusunod na pinangalanang hanay:
Bahagi 2 : Gumawa ng matrix lookup formula
Upang kumuha ng value sa intersection ng isang ibinigay na row at column, i-type lang ang isa sa mga sumusunod na generic na formula sa isang walang laman na cell:
= row_name column_nameO vice versa:
= column_name row_nameHalimbawa, para makuha ang populasyon ng mga blue whale noong 1990 , ang formula ay kasing simple ng:
=Blue_whale _1990
Kung may nangangailangan ng mas detalyadong mga tagubilin, ang mga sumusunod na hakbang ay gagabay sa iyo sa proseso:
- Sa isang cell kung saan mo gustong lumabas ang resulta, i-type ang equality sign (=).
- Simulang i-type ang pangalan ng target na row, sabihin, Blue_whale . Pagkataposnag-type ka ng ilang character, ipapakita ng Excel ang lahat ng umiiral na pangalan na tumutugma sa iyong input. I-double click ang gustong pangalan para ipasok ito sa iyong formula:
- Pagkatapos ng pangalan ng row, mag-type ng space , na gumagana bilang intersection operator sa kasong ito.
- Ilagay ang target na pangalan ng column ( _1990 sa aming kaso).
- Sa sandaling mailagay ang parehong pangalan ng row at column, iha-highlight ng Excel ang katumbas na row at column sa iyong talahanayan, at pinindot mo ang Enter upang kumpletuhin ang formula:
Ang iyong matrix lookup ay tapos na, at ang screenshot sa ibaba ay nagpapakita ng resulta:
Ganyan ang paghahanap sa mga row at column sa Excel. Salamat sa pagbabasa at umaasa akong makita ka sa aming blog sa susunod na linggo!
Mga available na download
2-dimensional lookup sample workbook