12
2017
07

对二维数列进行降维打击

配图为梵高的星空,是科幻小说《三体》中太阳系被时空工具“二向箔”从三维打击成二维世界的象征。

本文则讲述矩阵数据从二维变成一维,不过这个工具可不是“一维丝”。

由于经常处理大量格式数据,或者入数据库,所以经常要对二维的矩阵数据进行降维打击,使所有数据变成规范的一列。这时候大名鼎鼎的offset函数就派上用场了,在offset函数的使用中,数列的灵活使用作用非常之大。

有两个函数要配合offset的使用,其中之一就是mod函数,第二个就是int函数。

Mod函数可以循环生成一组等差数列。

Int函数则可以使一组数列变成一个数。

基础的部分不知道就先百度一下offset函数吧。

下面我们举例说明:一个4*6的数据矩阵,转换成一列数据,就是黄色的部分。

不废话先看东西,黄色部分的公式是这样的。=OFFSET($A$1,MOD(ROW()-1,4),INT((ROW()-1)/4)-1)

我们把其中的行偏移和列偏移提取出来看是什么结果。

把公式变为=MOD(ROW()-1,4)

把公式变为=INT((ROW()-1)/4)-1

这样很直观,原公式实际就是=offset(以A1为准,行偏移为0123循环,列偏移为00001111....循环),每走4个行数据列加1再走4个行数据,很直白。

所以offset的精髓就是构造这两个函数,把过程想象成每走几行列加1,出来这两个数列,函数也就完成了。

如果不限构造这两个函数,初学的话可能调试半天也找不到问题,还容易出错,简单吧。

sample712.xlsx


« 上一篇下一篇 »

相关文章:

财务二三事,工作批发制  (2017-8-2 15:17:37)

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。