分享

进阶 | INDIRECT函数进阶教程 - 原理篇!

 王意pu3eupsbkg 2021-11-05
图片

INDIRECT函数也是常用的引用函数之一,我把他叫做“快递员函数”!因为只要我们告诉他地址,他就可以准确的那种地址中的东西!

INDIRECT函数基础还没掌握的同学,可以先读一下基础篇,不然学习本篇有点压力!点击跳转阅读---> INDIRECT函数基础入门

进阶部分主要讲,ROW等函数引发的三维问题以及降维处理!虽然有点难,但是我还是尽量通过图例和动画的方式讲解,希望大家都能“悟”到!

进阶01 | ROW和COLUMN引发的三维思考及讲解

我们手工输入地址,输入到单元格中直接返回结果,完全OK!


函数公式▼

=INDIRECT('A1:A2')

图片

但是当我们输入

函数公式▼

=INDIRECT('A'&ROW(A1:A2))

结果却返回#VALUE错误值,你想过为什么吗?

图片

两个结果有什么区别?我们可以通过图示的方式让大家直观的感受一下!

图片

从图中我们可以看出结果是两个三维的,他无法存放到二维的单元格中!

那为什么会产生这种情况呢?其实这是ROW方式导致的,我们大部分人只知道ROW返回对应的行号,不知道他的结果是一个数组,设置只有一个单元格的情况!

来看一个动画!从动画中,你会发现ROW(A1)的结果并不是你想象中的1

而是{1},他们一个是常量,一个是单元数数组!

图片

那么 =INDIRECT('A'&ROW(A1:A2))  的结果 其实不是你F9看到的 {1;4}

而是 {{1},{4}},只是这种是单元格F9自动做了简化呈现!但元素不是单个时可以充分说明这点!

进阶02 | 多元素多区域及降维

如果我们相对9宫格的,每行累计求和(1行,1-2行,1-3行),使用INDIRECT该怎么写呢?

函数公式▼

=INDIRECT('A1:C'&ROW(1:3))

图片

上面INDIRECT部分的写法没有问题,下面我们通过图示的方法看看INDIRECT错误的结果背后的数据结果到底是什么样子的!

手残党大概看看,主要意思是他们每一个区域的结果都是一个平面,他们是在空间上独立的。所以无法在二维层面呈现结果!

图片

上面很重要,要考!!

那么我们怎么让一个平面输入到一个单元格中的呢?

一个我们可以取每个平面的其中一个输入,或者我们把整个平面聚合处理(比如本题的求和)!因为平面独立,所以可以直接使用SUM求和(每个平面会分别求和,互不影响)!

选中三个单元格,然后按下Ctrl+Shift+Enter!


函数公式▼

=SUM(INDIRECT('A1:C'&ROW(1:3)))

图片

上面的图示我们讲过了,那么如果通过数据该如何呈现,那么应该是这样

{{1,2,3};{1,2,3;4,5,6};{1,2,3;4,5,6;7,8,9}} 三个元素,那么元素又是一个数组!

可以是二维的或者单元素数组!

其实除了使用SUM,SUMIF(S)和SUBTOTAL也可以实现聚合,以欧版SUMIF使用较多!

O365版本下可以自动扩展!其他版本“ESC三键”录入!


函数公式▼

=SUMIF(INDIRECT('A1:C'&ROW(1:3)),'<>')

图片

如果我们想求平均值等,可以使用SUBTOTAL配合,聚合方式多!

函数公式▼

=SUBTOTAL(1,INDIRECT('A1:C'&ROW(1:3)))

图片

进阶基础原理我们就先到这里,后续我们再通过一些实际案例进行巩固!如果你有一点的数组基础,你应该有所“悟”吧!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多