data1data2data311111121211231311341411451511561611671711781811191191020120相关链接
“列表”功能动态引用
gouweicao782006-4-12欢迎光临“草屋”一、现象
定义名称如下data1=Sheet1!$A$2:$A$11——————————————data2=OFFSET(Sheet1!$B$2,,,COUNTA(Sheet1!$B$2:$B$18))data21=INDIRECT(\"Sheet1!B2:B11\")
data22=Sheet1!$B$2:INDEX(Sheet1!$B:$B,11)data3=Sheet1!$C$2:$C$11——————————————1、对下列区域用indirect求和data155#NAME?indirect引用OK
data2#REF!#NAME?data21#REF!#NAME?indirect不能引用data22#REF!#NAME?data3
1155
#NAME?
indirect引用OK2、请以下面左边的名称在右边做出数据有效性的下拉菜单
data12OKdata2data21不行data22data3115OK二、分析
1、Indirect函数语法INDIRECT(ref_text,a1)
Ref_text 为对单元格的引用,此单元格可以包含 A1-样式的引用、R1C1-样式的引用、引用的名称或对文本字符串单元格的引用。如果 ref_text 不是合法的单元格的引用,函数INDIRECT 返回错误值 #REF!。2、理解“对单元格的引用”
由定义名称来看,一般都可以理解为“对单元格的引用”;但为什么有如此所以,我想提出2个概念——“直接引用”和“间接引用”用以区分。
由定义名称我们不难看出这两个概念就是:
(1) 直接用等号不带任何函数公式的将单元格区域定义为名称为“直接引用”;(2) 而采用函数对单元格区域引用来定义名称的称为“间接引用”。Indirect函数的参数为“代表某定义名称的字符串”时,该定义名称不得为3、可以绕过的解决办法,除了采用“列表”功能作动态引用之外,还可以用(如下例),不若当定义的名称很多时,choose公式就要很长了。
有效性用data155#NAME?2data2155#NAME?13用choosedata21155#NAME?12在H1的有效性输入=data1data22155#NAME?15过用choose+match智能化data31155#NAME?114 choose为定义名称:
有相对引用,故请点上述公式所在单元格按Ctrl+F3查看。
直接对单元格静态区域的引用用公式产生的动态、静态区域引用用“列表”功能产生的动态区域引用
现象归纳1、用函数公式产生的区域引用做定义名称,无法用indirect(名称)再引用;2、而对单元格区域的直接引用,不论是静态还是动态(目前只发现“列表”的拓展功能可以),都可以直接用于Indirect函数的再引用。样式的引用、R1C1-样式的引用、定义为 不是合法的单元格的引用,函数
有如此的差别呢?
”用以区分。
名称为“直接引用”;接引用”。
不得为“间接引用”!可以用choose函数来选择有效性用=choosehoose函数都OK,其实相当于在H1的有效性输入=data1,只不过用choose+match智能化了很长了。