170831:本站刚升级到PHP7.0,仍有一些由于升级带来的代码错误需要慢慢纠正,敬请谅解。欢迎来到我的博客,这里关注汽车研发、Bo-blog博客、域名网站等专业内容!如果你喜欢我的博客,请将本站“加入收藏”,有空多来看看!

最近在尝试使用indirect生成动态字段来定义为某个名称,比如Summary_Date和Summary_Profit。

本想使用这两个字段用于生成动态图表的, 最终到了最后一步竟然发现无法引用。

用=Summary_Date不行,说是错误。用=!Summary_Date也不行,说是错误。再用='xxxx.xlsx'!Summary_Date,错误信息变化了,说是无法引用……我考。

然后开始不断百度,先是好几个贴子说是indirect生成的动态字段只能用于工作表云云,不能用于图表。反正就是说,死了这条心吧。

突然,发现有个网页说,要使用完整的引用,就可以了。比如:

Excel真是学无止境。我一直觉得自己的Excel水平还可以,想不到用的时候发现自己还是不行。

最近在折腾一个事情,想某段长度列的总和。

本想用sumifs的,结果sumifs不能处理复杂的多条件求和。结果转而使用sumproduct。sumproduct真是牛啊,真是多条件求和。

结果,sumproduct不能用于整列(sumifs可以),必须明确的某一段数列。用了这个某一段数列,我就折腾开了。

比如,我要A2:A107这段数字,可是由于107是在变的,我不能直接写A2:A107,必须用公式。我先得到107这个值,比如存在B1。这个107是怎么得到呢?match用于返回找到的值的所在行,而不是返回找到的值。

=MATCH(VLOOKUP(9E+304,'Data from FIN'!U:U,1),'Data from FIN'!U:U,0)

然后怎么用这个B1的值,间接表示出A2:A107这段引用呢?

发现方法有两种:

简单的是:用=indirect("'Data from FIN'!$A$2:$A"&$B$1)。indirect就是将字符串转义为引用。有点像C语言中的指针。用address函数可以产生某个单元格的引用。

复杂的是:用=offset('Data from FIN'!$A$1,1,0,$B$1-1,1)。offest是基于某个位置,偏置row行,偏置column列,高height行,宽width列。

另外,就是针对这个数列,数组,矩阵,在函数输完后,按F9,可看到矩阵。逗号表示行,分号表示列。用shift+ctrl+enter表示确认。

最近买了本《让Excel飞》,本意是想让老婆学习一下,提高一下工作效率。结果老婆不喜欢看,自然变成我看了。

其实我自认为对Excel非常熟了,不算高手,但基本上该会的我也会。

结果目前看了一半,有些感触或心得,故记录于此。

分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]