ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1544|回复: 8

[求助] 各位表哥表姐, INDEX函数参数求解

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-6-18 08:50 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 nvidia1987 于 2019-6-18 08:55 编辑

首先来段度娘的INDEX解释
INDEX(array,row_num,column_num)                               数组形式的
INDEX(reference,row_num,column_num,area_num)      引用形式的
度娘的解释




目前在自学函数,想照这“模版1" 依样画葫芦 。对此“模版1”的INDEX 后缀参数 不明觉厉 百思不得其解(好吧,就是Excel小白)
=INDEX('1.库存变动表'!$B$4:$AN$35,$F$1,(($A3*3-3)+3))
问题1:此表的函数公式用的是INDEX的数组形式呢还是引用形式?




以下是我的粗浅分析理解:
参数的第一部分:'1.库存变动表'!$B$4:$AN$35       指的是array 指向“1.库存变动表”的B4:AN35 带$表示绝对引用
参数的第二部分:$F$1,                                          应该是 Row_Num; 指的是F1行的绝对引用
参数的第三部分:(($A3*3-3)+3))                          应该是Column_num吗?  那么问题来了
问题2:(($A3*3-3)+3)) 里的+3是指列的位置向右偏移3格是吧,那($A3*3-3)是什么意思就真真理解不了了?

H62的INDEX引用

H62的INDEX引用

附件.rar

191.53 KB, 下载次数: 14

TA的精华主题

TA的得分主题

发表于 2019-6-18 09:14 | 显示全部楼层
用F9选中不理解的部分,查看运算结果,看看变化规律就懂了。

TA的精华主题

TA的得分主题

发表于 2019-6-18 09:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 micch 于 2019-6-18 09:22 编辑

关于你所说的数组和引用两个方式,可以考虑去看函数帮助,我只会用,从没追究过原理。
好像并不是什么数组不数组,好像第二个用法是可以多个区域引用,第一个用法数组和单元格区域通用

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-18 09:21 | 显示全部楼层
micch 发表于 2019-6-18 09:14
用F9选中不理解的部分,查看运算结果,看看变化规律就懂了。

F9键怎么用呢,不太明白
鼠标左键选中上图中的C3单元格,然后按F9键吗?

TA的精华主题

TA的得分主题

发表于 2019-6-18 09:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
nvidia1987 发表于 2019-6-18 09:21
F9键怎么用呢,不太明白
鼠标左键选中上图中的C3单元格,然后按F9键吗?

在编辑栏选中公式中的运算部分,(($A3*3-3)+3))  

这一段,用鼠标选中,变色以后,按F9键

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-18 09:40 | 显示全部楼层
micch 发表于 2019-6-18 09:23
在编辑栏选中公式中的运算部分,(($A3*3-3)+3))  

这一段,用鼠标选中,变色以后,按F9键

谢谢大神的F9提示,好像有点明白了
但是,($A3*3-3) 按了F9得出的结果是0   应该是表示是最左边的0 起始点喽对吧?
那么,问题又来了,0就0呗,为何用这么复杂的定位标识 来表达呢? 我自己做的空模版,又得用什么单元格做为基准点呢? 不明觉厉

TA的精华主题

TA的得分主题

发表于 2019-6-18 09:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 micch 于 2019-6-18 09:55 编辑
nvidia1987 发表于 2019-6-18 09:40
谢谢大神的F9提示,好像有点明白了
但是,($A3*3-3) 按了F9得出的结果是0   应该是表示是最左边的0 起 ...

这样不直接写0,是因为公式可以右拉下拉的时候按照规律取值,如果只是一个单元格,那就直接写数字好了。

但是很多时候,我们一个公式要应用到区域内所有单元格,这就需要相对引用
一般来说用row和column函数进行相对引用变化,这里用A列的数据,是因为A列是个自然数序列

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-6-18 10:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=INDEX('1.库存变动表'!$B$4:$AN$35,$F$1,(($A3*3-3)+3))
1. INDEX 参数一 =  '1.库存变动表'!$B$4:$AN$35 是引用,那么结果就是引用
2.INDEX 参数三是列方向
    假设A3 = 1  , (($A3*3-3)+3) =((1*3-3)+3)=0
    假设A3 = 2  , (($A3*3-3)+3) =((2*3-3)+3)=3
    假设A3 = 3  , (($A3*3-3)+3) =((3*3-3)+3)=6
    ..........................
    .........................
按规律  下拉的结果为每次移动 3 列
3. 另:INDEX的参数二 和 参数三 空或 0,那么返回所有的 行 或 列
所以你的公式
当A3=1 时返回的是 '1.库存变动表'!B4:B35 的区域引用,而不是 '1.库存变动表'!B4的单元格的引用!!
当 A3=2 时 返回的是 '1.库存变动表'!D4 的单元格的引用
希望对你有帮助。

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-6-18 13:26 | 显示全部楼层
嗯,老师以前教过index行列参数省略和0的用法,但是又忘了, ̄□ ̄||

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

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-19 17:09 , Processed in 0.050706 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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