Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3696|回复: 10

[已解决]求助引用函数

[复制链接]
发表于 2014-2-14 11:52 | 显示全部楼层 |阅读模式
本帖最后由 ghostjiao 于 2014-2-14 13:10 编辑

各位老师大家好:
      关于引用函数index、offset、indirect,通过这3个函数返回一个单元格区域之后,为什么能与其他区域进行计算啊?
  1. =OFFSET(A1,{1;2;3},1)*(C2:C4)
复制代码
比如这个函数,返回值就是错误的,对这三个函数理解不是太深,请大家多多指教,多谢{:1112:}
最佳答案
2014-2-14 12:53
ghostjiao 发表于 2014-2-14 12:45
多谢,比较了一下发现不同了,麻烦给我讲下为什么会这样,N函数起到了什么作用,这个不是太了解, ...

N函数有两个特点,一个就是比较熟悉的数值转换
把TRUE转换成1,把FALSE转换为0,把文本转换为0

第二个特征是如果N函数的内部是引用的话,那么N函数会对引用区间起到两个作用,将引用区间变成数组,取引用区间中每个二维数据的第一个数值。从而可以让其他函数进一步运算。(一般函数只对本表维度的数据进行运算,忽略超出的维度

第二个特点就比较抽象了。首先必须要明白什么是引用,什么是维数:1行为1维,1列为1维,那么1张工作表及为2维。多张当然就是3维了。一般的数据计算都是2维运算,就是在当前工作表引用运算。(这里要强调一点引用单行单列比如A1:A2,A1:B1这个产生的也是一个二维的引用。如果你知道点VBA就知道了ARR=[A1:A2]那么对ARR取第一个值是ARR(1,1),所以你引用工作表上的单元格就是一个二维的引用或者讲带有二维的特性了)那么什么是3维,4维。上面讲了多张工作表就是3维。还有就是用OFFSET对产生的引用如果偏移量或高度宽度是数组的话就产生了3维,4维或更多维数的引用。
  举例吧:
A1=1,A1=2,A3=3,B1=4,B2=5,B3=6
=OFFSET(A1,{1,2},)
这就是个三维的引用,A1带有本工作表2维的特性,{1,2}这个数组又产生了1维。
那么用SUM直接求和就会得不到想要的结果。
这时候通过N函数将其转换为数组,每个二维数组取第一个数{2,3}结束就是5
=SUM(N(OFFSET(A1,{1,2},)))
=SUM({2,3})

请教引用函数.rar

6.81 KB, 下载次数: 10

发表于 2014-2-14 11:57 | 显示全部楼层
index、offset、indirect   多维引用  生成的不一定是内纯数组   就不好计算啦

评分

参与人数 1 +3 收起 理由
ghostjiao + 3 多谢

查看全部评分

回复

使用道具 举报

发表于 2014-2-14 11:58 | 显示全部楼层
本帖最后由 蝶·舞 于 2014-2-14 11:59 编辑

在offset外套个N函数再数组回车

评分

参与人数 1 +3 收起 理由
ghostjiao + 3 赞一个!多谢

查看全部评分

回复

使用道具 举报

发表于 2014-2-14 12:08 | 显示全部楼层
=SUM(N(INDIRECT("A"&ROW(2:4)))*B2:B4)
=SUM(N(OFFSET(A1,{1;2;3},1))*C2:C4)
要加一个n函数来降维

评分

参与人数 1 +3 收起 理由
ghostjiao + 3 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2014-2-14 12:13 | 显示全部楼层
本帖最后由 josonxu 于 2014-2-14 12:19 编辑

=SUBTOTAL(6,OFFSET(A1,{1;2;3},1))*C2:C4
这样也行   三键



这个你看看   =SUM(OFFSET(A1,{1;2;3},1))
                    =SUM(N(OFFSET(A1,{1;2;3},1)))
                    =SUM(OFFSET(A1,N(IF(1,{1;2;3})),1))    你看有什么不同   
回复

使用道具 举报

 楼主| 发表于 2014-2-14 12:41 | 显示全部楼层
蝶·舞 发表于 2014-2-14 11:58
在offset外套个N函数再数组回车

请教一下n函数在这里的作用,没学过n函数,我看帮助文件写的很简单{:091:}
回复

使用道具 举报

 楼主| 发表于 2014-2-14 12:43 | 显示全部楼层
gdw831001 发表于 2014-2-14 12:08
=SUM(N(INDIRECT("A"&ROW(2:4)))*B2:B4)
=SUM(N(OFFSET(A1,{1;2;3},1))*C2:C4)
要加一个n函数来降维

请教一下这个N函数应该怎么理解,以前没用到过,看帮助文件也说的很简单,要是能在跟我解释下"降维"就更好了{:241:}
回复

使用道具 举报

 楼主| 发表于 2014-2-14 12:45 | 显示全部楼层
josonxu 发表于 2014-2-14 12:13
=SUBTOTAL(6,OFFSET(A1,{1;2;3},1))*C2:C4
这样也行   三键

多谢,比较了一下发现不同了,麻烦给我讲下为什么会这样{:301:},N函数起到了什么作用,这个不是太了解,多谢了
回复

使用道具 举报

发表于 2014-2-14 12:53 | 显示全部楼层    本楼为最佳答案   
ghostjiao 发表于 2014-2-14 12:45
多谢,比较了一下发现不同了,麻烦给我讲下为什么会这样,N函数起到了什么作用,这个不是太了解, ...

N函数有两个特点,一个就是比较熟悉的数值转换
把TRUE转换成1,把FALSE转换为0,把文本转换为0

第二个特征是如果N函数的内部是引用的话,那么N函数会对引用区间起到两个作用,将引用区间变成数组,取引用区间中每个二维数据的第一个数值。从而可以让其他函数进一步运算。(一般函数只对本表维度的数据进行运算,忽略超出的维度

第二个特点就比较抽象了。首先必须要明白什么是引用,什么是维数:1行为1维,1列为1维,那么1张工作表及为2维。多张当然就是3维了。一般的数据计算都是2维运算,就是在当前工作表引用运算。(这里要强调一点引用单行单列比如A1:A2,A1:B1这个产生的也是一个二维的引用。如果你知道点VBA就知道了ARR=[A1:A2]那么对ARR取第一个值是ARR(1,1),所以你引用工作表上的单元格就是一个二维的引用或者讲带有二维的特性了)那么什么是3维,4维。上面讲了多张工作表就是3维。还有就是用OFFSET对产生的引用如果偏移量或高度宽度是数组的话就产生了3维,4维或更多维数的引用。
  举例吧:
A1=1,A1=2,A3=3,B1=4,B2=5,B3=6
=OFFSET(A1,{1,2},)
这就是个三维的引用,A1带有本工作表2维的特性,{1,2}这个数组又产生了1维。
那么用SUM直接求和就会得不到想要的结果。
这时候通过N函数将其转换为数组,每个二维数组取第一个数{2,3}结束就是5
=SUM(N(OFFSET(A1,{1,2},)))
=SUM({2,3})
回复

使用道具 举报

 楼主| 发表于 2014-2-14 13:08 | 显示全部楼层
josonxu 发表于 2014-2-14 12:53
N函数有两个特点,一个就是比较熟悉的数值转换
把TRUE转换成1,把FALSE转换为0,把文本转换为0

基本明白了,多谢{:101:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-26 13:38 , Processed in 0.591922 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表