Talaan ng nilalaman
Sa tutorial na ito, matututunan mo kung paano lumikha ng isang dynamic na pinangalanang hanay sa Excel at kung paano ito gamitin sa mga formula upang awtomatikong maisama ang bagong data sa mga kalkulasyon.
Sa nakaraang linggo tutorial, tumingin kami sa iba't ibang paraan upang tukuyin ang isang static na pinangalanang hanay sa Excel. Ang isang static na pangalan ay palaging tumutukoy sa parehong mga cell, ibig sabihin ay kailangan mong i-update nang manu-mano ang reference ng hanay sa tuwing magdadagdag ka ng bago o mag-aalis ng umiiral na data.
Kung nagtatrabaho ka sa isang patuloy na nagbabagong set ng data, maaaring gusto mong gawing dynamic ang iyong pinangalanang hanay upang awtomatiko itong lumawak upang mapaunlakan ang mga bagong idinagdag na entry o mga kontrata upang ibukod ang inalis na data. Higit pa sa tutorial na ito, makakahanap ka ng detalyadong sunud-sunod na gabay sa kung paano ito gawin.
Paano gumawa ng dynamic na pinangalanang hanay sa Excel
Para sa mga nagsisimula, bumuo tayo ng isang dynamic na pinangalanang hanay na binubuo ng isang column at isang variable na bilang ng mga row. Upang magawa ito, gawin ang mga hakbang na ito:
- Sa tab na Formula , sa grupong Mga Tinukoy na Pangalan , i-click ang Tukuyin ang Pangalan . O kaya, pindutin ang Ctrl + F3 upang buksan ang Excel Name Manger, at i-click ang Bago... na buton.
- Alinmang paraan, magbubukas ang Bagong Pangalan na dialog box, kung saan tinukoy mo ang mga sumusunod na detalye:
- Sa kahon ng Pangalan , i-type ang pangalan para sa iyong dynamic na hanay.
- Sa dropdown na Saklaw , itakda ang saklaw ng pangalan. Ang Workbook (default) ay inirerekomenda sa karamihankaso.
- Sa kahon na Tumutukoy sa , ilagay ang alinman sa OFFSET COUNTA o INDEX COUNTA na formula.
- I-click ang OK. Tapos na!
Sa sumusunod na screenshot, tinukoy namin ang isang dynamic na pinangalanang hanay mga item na tumanggap ng lahat ng cell na may data sa column A, maliban sa header row :
OFFSET na formula upang tukuyin ang isang Excel dynamic na pinangalanang hanay
Ang generic na formula upang gumawa ng isang dynamic na pinangalanang hanay sa Excel ay ang mga sumusunod:
OFFSET ( first_cell, 0, 0, COUNTA( column), 1)Where:
- first_cell - ang una item na isasama sa pinangalanang hanay, halimbawa $A$2.
- column - isang ganap na sanggunian sa column tulad ng $A:$A.
Sa ubod ng formula na ito, ginagamit mo ang function na COUNTA upang makuha ang bilang ng mga hindi blangkong cell sa column ng interes. Direktang napupunta ang numerong iyon sa height argument ng OFFSET(reference, rows, cols, [height], [width]) function na nagsasabi dito kung ilang row ang ibabalik.
Higit pa diyan, isa itong ordinaryong Offset na formula, kung saan:
- reference ang simula kung saan mo ibabase ang offset (first_cell).
- mga hilera at cols ay parehong 0, dahil walang mga column o row na i-offset.
- width ay katumbas ng 1 column.
Halimbawa, para bumuo ng dynamic na pinangalanang hanay para sa column A sa Sheet3, simula sa cell A2, ginagamit namin ang formula na ito:
=OFFSET(Sheet3!$A$2, 0, 0, COUNTA(Sheet3!$A:$A), 1)
Tandaan. Kung ikaw ay tumutukoyisang dynamic na hanay sa kasalukuyang worksheet, hindi mo kailangang isama ang pangalan ng sheet sa mga sanggunian, awtomatiko itong gagawin ng Excel para sa iyo. Kung bubuo ka ng range para sa ibang sheet, i-prefix ang cell o range reference na may pangalan ng sheet na sinusundan ng tandang padamdam (tulad ng halimbawa sa formula sa itaas).
INDEX formula para gumawa ng dynamic na pinangalanang range sa Excel
Ang isa pang paraan para gumawa ng Excel dynamic range ay ang paggamit ng COUNTA kasama ng INDEX function.
first_cell:INDEX( column,COUNTA( column))Ang formula na ito ay binubuo ng dalawang bahagi:
- Sa kaliwang bahagi ng range operator (:), inilalagay mo ang hard-coded na panimulang reference tulad ng $A$2 .
- Sa kanang bahagi, ginagamit mo ang function na INDEX(array, row_num, [column_num]) upang malaman ang panghuling reference. Dito, ibibigay mo ang buong column A para sa array at ginagamit ang COUNTA para makuha ang row number (ibig sabihin, ang bilang ng mga cell na hindi naka-entry sa column A).
Para sa aming sample na dataset (pakitingnan ang screenshot sa itaas), ang formula ay sumusunod:
=$A$2:INDEX($A:$A, COUNTA($A:$A))
Dahil mayroong 5 hindi blangko na mga cell sa column A, kasama ang header ng column, ang COUNTA ay nagbabalik ng 5. Dahil dito, ang INDEX ay nagbabalik ng $A $5, na siyang huling ginamit na cell sa column A (kadalasan ay nagbabalik ng value ang isang Index formula, ngunit pinipilit ito ng reference operator na magbalik ng reference). At dahil itinakda namin ang $A$2 bilang panimulang punto, ang huling resulta ngang formula ay ang hanay na $A$2:$A$5.
Upang subukan ang bagong likhang dynamic na hanay, maaari mong ipakuha sa COUNTA ang bilang ng mga item:
=COUNTA(Items)
Kung tapos na ang lahat, magbabago ang resulta ng formula sa sandaling magdagdag o mag-alis ka ng mga item sa/mula sa listahan:
Tandaan. Ang dalawang formula na tinalakay sa itaas ay gumagawa ng parehong resulta, gayunpaman mayroong pagkakaiba sa pagganap na dapat mong malaman. Ang OFFSET ay isang pabagu-bagong function na muling kinakalkula sa bawat pagbabago sa isang sheet. Sa mga makapangyarihang modernong makina at makatuwirang laki ng mga set ng data, hindi ito dapat maging problema. Sa mga makina na may mababang kapasidad at malalaking set ng data, maaari nitong pabagalin ang iyong Excel. Kung ganoon, mas mabuting gamitin mo ang INDEX formula upang lumikha ng isang dynamic na pinangalanang hanay.
Paano gumawa ng dalawang-dimensional na dynamic na hanay sa Excel
Upang bumuo ng isang dalawang-dimensional na pinangalanang hanay, kung saan hindi lang ang bilang ng mga row kundi pati na rin ang bilang ng mga column ay dynamic, gamitin ang sumusunod na pagbabago ng INDEX COUNTA formula:
first_cell:INDEX($1:$1048576, COUNTA( first_column), COUNTA( first_row)))Sa formula na ito, mayroon kang dalawang COUNTA function para makuha ang huling hindi-bakanteng row at huling hindi-bakanteng column ( row_num at column_num na mga argumento ng INDEX function, ayon sa pagkakabanggit). Sa array argument, pinapakain mo ang buong worksheet (1048576 row sa Excel 2016 - 2007; 65535 row sa Excel 2003 and lower).
At ngayon,tumukoy tayo ng isa pang dynamic na hanay para sa aming set ng data: ang hanay na pinangalanang mga benta na kinabibilangan ng mga bilang ng mga benta para sa 3 buwan (Ene hanggang Mar) at awtomatikong nagsasaayos habang nagdaragdag ka ng mga bagong item (mga hilera) o buwan (mga column) sa ang talahanayan.
Sa data ng mga benta na nagsisimula sa column B, row 2, ang formula ay may sumusunod na hugis:
=$B$2:INDEX($1:$1048576,COUNTA($B:$B),COUNTA($2:$2))
Upang matiyak na gumagana ang iyong dynamic na hanay ayon sa nararapat, ilagay ang mga sumusunod na formula sa isang lugar sa sheet:
=SUM(sales)
=SUM(B2:D5)
Gaya ng nakikita mo sa screenshot sa ibaba , ang parehong mga formula ay nagbabalik ng parehong kabuuan. Ang pagkakaiba ay nagpapakita mismo sa sandaling magdagdag ka ng mga bagong entry sa talahanayan: ang unang formula (na may dynamic na pinangalanang hanay) ay awtomatikong mag-a-update, samantalang ang pangalawa ay kailangang i-update nang manu-mano sa bawat pagbabago. Malaki ang pagkakaiba niyan, eh?
Paano gumamit ng mga dynamic na pinangalanang hanay sa mga formula ng Excel
Sa mga nakaraang seksyon ng tutorial na ito, nakita mo na ilang simpleng formula na gumagamit ng mga dynamic na hanay. Ngayon, subukan nating makabuo ng isang bagay na mas makabuluhan na nagpapakita ng tunay na halaga ng isang Excel dynamic na pinangalanang range.
Para sa halimbawang ito, kukunin natin ang classic na INDEX MATCH formula na nagsasagawa ng Vlookup sa Excel:
INDEX ( return_range, MATCH ( lookup_value, lookup_range, 0))
…at tingnan kung paano namin maaaring gawing mas makapangyarihan ang formula sa paggamit ngmga dynamic na pinangalanang hanay.
Tulad ng ipinapakita sa screenshot sa itaas, sinusubukan naming bumuo ng dashboard, kung saan ang user ay naglalagay ng pangalan ng item sa H1 at nakukuha ang kabuuang benta para sa item na iyon sa H2. Ang aming sample na talahanayan na ginawa para sa mga layunin ng pagpapakita ay naglalaman lamang ng 4 na item, ngunit sa iyong totoong buhay na mga sheet ay maaaring magkaroon ng daan-daan at kahit libu-libong mga row. Higit pa rito, ang mga bagong item ay maaaring idagdag sa araw-araw, kaya ang paggamit ng mga sanggunian ay hindi isang opsyon, dahil kailangan mong i-update ang formula nang paulit-ulit. Tinatamad na ako niyan! :)
Upang pilitin na awtomatikong lumawak ang formula, tutukuyin natin ang 3 pangalan: 2 dynamic na hanay, at 1 static na pinangalanang cell:
Lookup_range: =$A$2:INDEX($ A:$A, COUNTA($A:$A))
Return_range: =$E$2:INDEX($E:$E, COUNTA($E:$E))
Lookup_value: =$H$1
Tandaan. Idaragdag ng Excel ang pangalan ng kasalukuyang sheet sa lahat ng reference, kaya bago gawin ang mga pangalan siguraduhing buksan ang sheet gamit ang iyong source data.
Ngayon, simulang i-type ang formula sa H1. Pagdating sa unang argumento, mag-type ng ilang character ng pangalan na gusto mong gamitin, at ipapakita ng Excel ang lahat ng available na katugmang pangalan. I-double click ang naaangkop na pangalan, at ilalagay ito kaagad ng Excel sa formula:
Ang nakumpletong formula ay ganito ang hitsura:
=INDEX(Return_range, MATCH(Lookup_value, Lookup_range, 0))
At gumagana nang perpekto!
Sa sandaling magdagdag ka ng mga bagong tala sa talahanayan, isasama sila sa iyong mga kalkulasyon saminsan, nang hindi mo kailangang gumawa ng isang pagbabago sa formula! At kung sakaling kailanganin mong i-port ang formula sa isa pang Excel file, gumawa lang ng parehong mga pangalan sa patutunguhang workbook, kopyahin/i-paste ang formula, at paandarin ito kaagad.
Tip. Bukod sa paggawa ng mga formula na mas matibay, ang mga dynamic na hanay ay madaling gamitin para sa paggawa ng mga dynamic na dropdown na listahan.
Ganito ka gumawa at gumamit ng mga dynamic na pinangalanang hanay sa Excel. Upang mas masusing tingnan ang mga formula na tinalakay sa tutorial na ito, malugod kang i-download ang aming sample na Excel Dynamic Named Range Workbook. Salamat sa pagbabasa at umaasa akong makita ka sa aming blog sa susunod na linggo!