Enhavtabelo
La lernilo montras kelkajn malsamajn formulojn por fari dudimensian serĉon en Excel. Nur trarigardu la alternativojn kaj elektu vian plej ŝatatan :)
Serĉante ion en viaj Excel-kalkultabeloj, plejofte vi serĉus vertikale en kolumnoj aŭ horizontale en vicoj. Sed foje vi devas rigardi trans ambaŭ vicoj kaj kolumnoj. Alivorte, vi celas trovi valoron ĉe la intersekco de certa vico kaj kolumno. Ĉi tio nomiĝas matrica serĉo (alinome 2-dimensia aŭ dudirekta serĉo ), kaj ĉi tiu lernilo montras kiel fari ĝin en 4 malsamaj manieroj.
Formulo de Excel INDEX MATCH MATCH
La plej populara maniero fari dudirektan serĉon en Excel estas uzi INDEX MATCH MATCH. Ĉi tio estas variaĵo de la klasika INDEX MATCH-formulo al kiu vi aldonas unu plian MATCH-funkcion por akiri kaj la vico- kaj kolumno-numerojn:
INDEX ( datuma tabelo, MATCH ( vlookup_value, serĉa_kolumna_gamo, 0), MATCH ( hserĉa valoro, serĉa_vica_gamo, 0))Ekzemple, ni faru formulon por tiri populacion de certa besto en difinita jaro el la suba tabelo. Komence, ni difinas ĉiujn argumentojn:
- Data_array - B2:E4 (datumĉeloj, ne inkluzivante vicon kaj kolumnajn kapojn)
- Vlookup_value - H1 (cela besto)
- Amplekso_de_serĉado_kolumna - A2:A4 (vicaj kapoj: nomoj de bestoj) -A3:A4
- Serĉa_valoro - H2 (cela jaro)
- Serĉa_vica_gamo - B1:E1 (kolumnaj kapoj: jaroj)
Kunigu ĉiujn argumentojn kaj vi ricevos ĉi tiun formulon por dudirekta serĉo:
=INDEX(B2:E4, MATCH(H1, A2:A4, 0), MATCH(H2, B1:E1, 0))
Kiel ĉi tiu formulo funkcias
Kvankam ĝi eble aspektas iom kompleksa unuavide, la logiko de la formulo estas vere simpla kaj facile komprenebla. La INDEX-funkcio prenas valoron de la datumtabelo bazita sur la vico kaj kolumno-nombroj, kaj du MATCH-funkcioj provizas tiujn nombrojn:
INDEX(B2:E4, row_num, column_num)
Ĉi tie, ni ekspluatas la kapablon de MATCH(serĉa_valoro, lookup_array, [match_type]) por redoni relativan pozicion de lookup_value en lookup_array .
Do, por ricevi la vicon, ni serĉas por la interesa besto (H1) trans la vicaj kaplinioj (A2:A4):
MATCH(H1, A2:A4, 0)
Por akiri la kolumnnumeron, ni serĉas la celjaron (H2) trans la kolumnkapoj. (B1:E1):
MATCH(H2, B1:E1, 0)
En ambaŭ kazoj, ni serĉas ĝustan kongruon metante la 3-an argumenton al 0.
En ĉi tiu ekzemplo, la unua MATCH revenas 2 ĉar nia vserĉa valoro (polusa urso) troviĝas en A3, kiu estas la dua ĉelo en A2:A4. La dua MATCH redonas 3 ĉar la serĉvaloro (2000) troviĝas en D1, kiu estas la 3-a ĉelo en B1:E1.
Konsiderante la supre, la formulo reduktas al:
INDEX(B2:E4, 2, 3)
Kaj redonu valoron ĉe la intersekco de la 2-a vico kaj 3-a kolumno en la datumtabelo B2:E4, kiu estasvaloro en la ĉelo D3.
VLOOKUP kaj MATCH-formulo por dudirekta serĉo
Alia maniero fari dudimensian serĉon en Excel estas uzi kombinaĵon de VLOOKUP kaj MATCH-funkcioj:
VLOOKUP( vserĉa_valoro , table_array , MATCH( hlookup_value , serĉa_vica_gamo , 0), FALSE)Por nia specimena tabelo , la formulo prenas la jenan formon:
=VLOOKUP(H1, A2:E4, MATCH(H2, A1:E1, 0), FALSE)
Kie:
- Tabelo_array - A2:E4 (datumĉeloj inkluzive de vicaj kaplinioj)
- Vserĉa_valoro - H1 (cela besto)
- Rigarda_valoro - H2 (cela jaro)
- Rigarda_vica_gamo - A1:E1 (kolumnaj kapoj: jaroj)
Kiel ĉi tiu formulo funkcias
La kerno de la formulo estas la funkcio VLOOKUP agordita por ĝusta kongruo (la lasta argumento agordita al FALSO), kiu serĉas la serĉvaloron (H1) en la unua kolumno de la tabela tabelo (A2:E4) kaj resendas valoron de alia kolumno en la sama vico. Por determini de kiu kolumno redoni valoron, vi uzas la MATCH-funkcion, kiu ankaŭ estas agordita por ĝusta kongruo (la lasta argumento agordita al 0):
MATCH(H2, A1:E1, 0)
MATCH serĉas la valoron en H2 trans la kolumnkapoj (A1:E1) kaj resendas la relativan pozicion de la trovita ĉelo. En nia kazo, la celjaro (2010) troviĝas en E1, kiu estas 5-a en la serĉa tabelo. Do, la numero 5 iras al la argumento col_index_num de VLOOKUP:
VLOOKUP(H1, A2:E4, 5, FALSE)
VLOOKUP prenas ĝin de tie, trovasĝusta kongruo por ĝia serĉvaloro en A2 kaj liveras valoron de la 5-a kolumno en la sama vico, kiu estas la ĉelo E2.
Grava noto! Por ke la formulo funkciu ĝuste, table_array (A2:E4) de VLOOKUP kaj lookup_array de MATCH (A1:E1) devas havi la saman nombron da kolumnoj, alie la nombro preterpasita de MATCH al col_index_num estos malĝusta (ne respondas al la pozicio de la kolumno en table_array ).
XLOOKUP-funkcio por rigardi en vicoj kaj kolumnoj
Lastatempe Microsoft enkondukis unu plian funkcion en Excel, kiu celas anstataŭigi ĉiujn ekzistantajn serĉfunkciojn kiel VLOOKUP, HLOOKUP kaj INDEX MATCH. Interalie, XLOOKUP povas rigardi la intersekciĝon de specifa vico kaj kolumno:
XLOOKUP( vlookup_value , vlookup_column_range , XLOOKUP( hlookup_value , hlookup_row_range , data_array ))Por nia specimena datumaro, la formulo iras jene:
=XLOOKUP(H1, A2:A4, XLOOKUP(H2, B1:E1, B2:E4))
Noto. Nuntempe XLOOKUP estas beta-funkcio, kiu disponeblas nur por Office 365-abonantoj kiuj estas parto de la programo Office Insiders.
Kiel ĉi tiu formulo funkcias
La formulo uzas la kapablon de XLOOKUP por resendi tuta vico aŭ kolumno. La interna funkcio serĉas la celjaron en la kaplinio kaj resendas ĉiujn valorojn por tiu jaro (en ĉi tiu ekzemplo, por jaro 1980). Tiuj valoroj iras al la argumento return_array de la eksteraXLOOKUP:
XLOOKUP(H1, A2:A4, {22000;25000;700}))
La ekstera XLOOKUP-funkcio serĉas la celbeston trans la kolumnkapoj kaj liveras la valoron en la sama pozicio de la return_array.
SUMPRODUCT-formulo por du -way lookup
La funkcio SUMPRODUCT estas kiel svisa tranĉilo en Excel - ĝi povas fari tiom da aferoj preter sia difinita celo, precipe kiam temas pri taksado de multoblaj kriterioj.
Serĉi du kriteriojn. kriterioj, en vicoj kaj kolumnoj, uzu ĉi tiun ĝeneralan formulon:
SUMPRODUCT( vlookup_column_range = vlookup_value ) * ( hlookup_row_range = hlookup_value ), data_array )Por fari dudirektan serĉon en nia datumaro, la formulo iras jene:
=SUMPRODUCT((A2:A4=H1) * (B1:E1=H2), B2:E4)
La suba sintakso funkcios ankaŭ:
=SUMPRODUCT((A2:A4=H1) * (B1:E1=H2) * B2:E4)
Kiel ĉi tiu formulo funkcias
En la kerno de la formulo, ni komparas du serĉajn valorojn kontraŭ la vico kaj kolumnaj kapoj (la celbesto en H1 kontraŭ ĉiuj bestoj. nomoj en A2:A4 kaj la celjaro en H2 kontraŭ ĉiuj jaroj en B1:E1):
(A2:A4=H1) * (B1:E1=H2)
Tiu res. ultoj en 2 tabeloj de VERA kaj FALSA valoroj, kie VERA reprezentas kongruojn:
{FALSE;FALSE;TRUE} * {FALSE,TRUE,FALSE,FALSE}
La multiplika operacio devigas la VERA kaj FALSA valorojn en 1 kaj 0 kaj produktas dudimensian tabelon de 4 kolumnoj kaj 3 vicoj (vicoj estas apartigitaj per punktokomoj kaj ĉiu kolumno de datumoj per komo):
{0,0,0,0;0,0,0,0;0,1,0,0}
La funkcioj SUMPRODUKTO multobligas la elementojn de la supra tabelo per la eroj deB2:E4 en la samaj pozicioj:
{0,0,0,0;0,0,0,0;0,1,0,0} * {22000,13800,8500,3500;25000,23000,22000,20000;700,2000,2300,2500}
Kaj ĉar multipliko per nulo donas nulon, nur la ero responda al 1 en la unua tabelo pluvivas:
SUMPRODUCT({0,0,0,0;0,0,0,0;0,2000,0,0})
Fine, SUMPRODUCT aldonas la elementojn de la rezulta tabelo kaj redonas valoron de 2000.
Noto. Se via tabelo havas pli ol unu vicon aŭ/kaj kolumnajn titolojn kun la sama nomo, la fina tabelo enhavos pli ol unu nombron krom nulo, kaj ĉiuj tiuj nombroj estos aldonitaj. Kiel rezulto, vi ricevos sumon de valoroj, kiuj plenumas ambaŭ kriteriojn. Ĝi estas kio diferencas la formulon SUMPRODUCT de INDEX MATCH MATCH kaj VLOOKUP, kiuj resendas la unuan trovitan kongruon.
Matrica serĉo kun nomitaj intervaloj (eksplicita Intersekco)
Unu pli mirinde simpla maniero fari Matrica serĉo en Excel estas per uzado de nomitaj intervaloj. Jen kiel:
Parto 1: Nomu kolumnojn kaj vicojn
La plej rapida maniero nomi ĉiun vicon kaj ĉiun kolumnon en via tabelo estas jena:
- Elektu la tutan tabelon (A1:E4 en nia kazo).
- En la langeto Formuloj , en la grupo Definitaj Nomoj , alklaku Krei de Elekto aŭ premu la ŝparvojon Ctrl + Shift + F3.
- En la dialogkesto Krei Nomojn el Elekto , elektu Supra vico kaj Maldekstre. kolumno, kaj alklaku OK.
Tio aŭtomate kreas nomojn surbaze de la vicoj kaj kolumnaj kaplinioj. Tamen, estas kelkaj avertoj:
- Se via kolumno kaj/aŭvicoj-kapoj estas nombroj aŭ enhavas specifajn signojn kiuj ne estas permesitaj en Excel-nomoj, la nomoj por tiaj kolumnoj kaj vicoj ne estos kreitaj. Por vidi liston de kreitaj nomoj, malfermu la Nomadministrilon ( Ctrl + F3 ). Se kelkaj nomoj mankas, difinu ilin permane kiel klarigite en Kiel nomi gamon en Excel.
- Se iuj el viaj vicoj aŭ kolumnaj kapoj enhavas spacojn, la spacoj estos anstataŭigitaj per substrekoj, ekzemple, Polusa_urso .
Por nia specimena tabelo, Excel aŭtomate kreis nur la vicnomojn. La kolonnomoj devas esti kreitaj permane ĉar la kolumnkapoj estas nombroj. Por venki ĉi tion, vi povas simple antaŭparoli la nombrojn per substrekoj, kiel _1990 .
Kiel rezulto, ni havas la jenajn nomitajn intervalojn:
Parto 2 : Faru matrican serĉformulon
Por tiri valoron ĉe la intersekco de donita vico kaj kolumno, simple tajpu unu el la jenaj ĝeneralaj formuloj en malplena ĉelo:
= row_name kolumn_nameAŭ inverse:
= column_name row_nameEkzemple, por akiri la loĝantaron de blubalenoj en 1990 , la formulo estas tiel simpla kiel:
=Blue_whale _1990
Se iu bezonas pli detalajn instrukciojn, la sekvaj paŝoj gvidos vin tra la procezo:
- En ĉelo kie vi volas ke la rezulto aperu, tajpu la egalecsignon (=).
- Komencu tajpi la nomon de la cela vico, ekzemple, Blua_baleno . Postvi tajpis kelkajn signojn, Excel montros ĉiujn ekzistantajn nomojn, kiuj kongruas kun via enigo. Duoble alklaku la deziratan nomon por enigi ĝin en vian formulon:
- Post la vicnomo, tajpu spacon , kiu funkcias kiel la intersekca operatoro en ĉi tiu kazo.
- Enigu la celkolumnan nomon ( _1990 en nia kazo).
- Tuj kiam kaj la vico kaj kolumnonomoj estas enigitaj, Excel reliefigos la respondajn vicon kaj kolumnon en via tabelo, kaj vi premas Enen por kompletigi la formulon:
Via matrica serĉo estas farita, kaj la suba ekrankopio montras la rezulton:
Tiel serĉi en vicoj kaj kolumnoj en Excel. Mi dankas vin pro legado kaj esperas vidi vin en nia blogo venontsemajne!
Haveblaj elŝutoj
2-dimensia serĉa ekzempla laborlibro