|
動(dòng)態(tài)區(qū)域:我理解的動(dòng)態(tài)區(qū)域分兩種,一種是不斷更新的區(qū)域,但最基本的起始位置不變,只是數(shù)據(jù)在不斷更新.另一種是完全動(dòng)態(tài)的,起始位置可以發(fā)生變化,區(qū)域的大小可以發(fā)生變化.
對于第一種區(qū)域而言,可以算是靜態(tài)區(qū)域的變異,基本使用方法和靜態(tài)沒有區(qū)別.不過有時(shí)也有一點(diǎn)不同,例如我需要調(diào)用的數(shù)據(jù)是你更新到那,就調(diào)用到那,這是需要一個(gè)定義的區(qū)域.這時(shí)需要使用OFFSET函數(shù)了.
例: 數(shù)據(jù)有效性大家基本都用過了,里面提供可以輸入選擇項(xiàng)目[數(shù)據(jù)有效性-序列],正常的時(shí)候,可以通過選擇一部分?jǐn)?shù)據(jù)或單元格作為備選項(xiàng),此時(shí)輸入信息時(shí)就可以通過選擇的方法來實(shí)現(xiàn),但是如果備選序列的數(shù)據(jù)是一個(gè)持續(xù)更新, 在B2:B5中輸入,缺陷A,缺陷B….缺陷D,選擇單元格A1, 設(shè)置數(shù)據(jù)有效性,備選項(xiàng)就是缺陷的名稱,由于缺陷名稱可能持續(xù)更新,此時(shí)就可以設(shè)置一個(gè)動(dòng)態(tài)的區(qū)域.使用定義名稱可以實(shí)現(xiàn). 插入 – 名稱 – 定義,輸入定義的名稱比如 defectname,然后在下面輸入公式: =offset(Sheet2!$B$1,1,0,counta(Sheet2!$B$2:$B$20),1)
![]()
Counta函數(shù)用于查找非空單元格的,就是數(shù)一下有多少備選項(xiàng)目. 選擇A1, 數(shù)據(jù) – 數(shù)據(jù)有效性 – 序列 – 輸入剛剛定義的名稱
此時(shí)就實(shí)現(xiàn)了有固定起始位置的動(dòng)態(tài)區(qū)域的引用
![]()
第二種就是完成的動(dòng)態(tài)區(qū)域引用了. 在這里介紹幾種引用完全動(dòng)態(tài)區(qū)域的方法 A:Indirect+Address函數(shù), B:Index函數(shù) C:Offset函數(shù) 方法A:address函數(shù)要用來可以根據(jù)提供的行數(shù)和列數(shù)顯示相應(yīng)的單元格,和Indirect一起使用可以用于動(dòng)態(tài)引用. 例:需要對A1:E10范圍內(nèi)數(shù)據(jù),根據(jù)不同需要進(jìn)行動(dòng)態(tài)求和,
![]()
=SUM(INDIRECT(ADDRESS(H5,2)):INDIRECT(ADDRESS(H6,5))) [大家不要糾結(jié)在認(rèn)為這個(gè)例子還有更簡單的解法,這里只是介紹INDIRECT+ADDRESS的使用方法而已]
方法B:使用INDEX函數(shù)實(shí)現(xiàn)單元格區(qū)域的顯示, 輸入函數(shù): =SUM(INDEX(A1:E10,H5,2):INDEX(A1:E10,H6,5)),例如sum(B2:E4),INDEX函數(shù)在這里的作用是代替B2和E4,待用的方法就是讓INDEX函數(shù)返回的結(jié)果就是B2,E4單元格.
方法C:使用OFFSET函數(shù)將這個(gè)區(qū)域調(diào)出來,, 輸入函數(shù): =SUM(OFFSET(A1,H5-1,1,H6-H5+1,4)),OFFSET的函數(shù)結(jié)果就是B2:E4區(qū)域的數(shù)據(jù).
這里關(guān)于INDIRECT,INDEX,OFFSET使用方法沒有介紹,大家可以到網(wǎng)上查資料,以后也會(huì)在博客中更新.
其實(shí)動(dòng)態(tài)引用區(qū)域,在很多復(fù)雜一點(diǎn)的數(shù)據(jù)運(yùn)算時(shí)會(huì)用到.這里只是給出幾種我常用的方法.動(dòng)態(tài)區(qū)域可以作為一個(gè)區(qū)域參數(shù)應(yīng)用到大多數(shù)的函數(shù)中.但是就是COUNTIF函數(shù)不能使用動(dòng)態(tài)區(qū)域(即內(nèi)存數(shù)據(jù)),使用的時(shí)候需要注意下. 2011-10-20 初始更新 |
|
|