如何从一列数据快速分离单双数?用indirect函数和Offset函数见证奇迹

职领office达人学院第781个原创技巧
有一位关注nboffice抖音号的小伙伴留言,问怎样才能实现单双数的快速分列获取?
职领office达人学院的讲师团给了N种解决方案。
第一种是余项老师的indirect函数大法。
A列是混合的数据区,C列是分离出来的单数,D列是分离出的双数。
C1单元格的公式如下:
=INDIRECT("a"&2*ROW()-1)
D1单元格的公式如下:
=INDIRECT("a"&2*ROW())
第二种是Offset函数大法。
C1单元格的公式如下:
=OFFSET($A$1,2*ROW()-2,0,1,1)
D1单元格的公式如下:
=OFFSET($A$1,2*ROW()-1,0,1,1)
余项老师的这两种方法,比较稍有难度,用到了两个强大的函数,尤其是offse函数,可以称为当年动态统计之王!有兴趣的小伙伴可以看看秦川老师的《十大明星函数教程》(阅读原文即可找到),专门有讲到indirect函数和offset函数。
当然方法很多,还有更牛B的方法,VBA,可以收藏这个代码。
Sub 单双数统计()
Dim r AsInteger, i As Integer, j As Integer
r =Range("a1").End(xlDown)
For i = 1 To r
Range("i"& i) = Range("a" & 2 * i - 1)
Next i
For j = 1 To r
Range("j"& j) = Range("a" & 2 * j)
Next j
End Sub
在Excel中,按alt+F11把这个代码贴到VBA代码框里以后进行执行,也是可行的。
你也许会问,怎么搞那么复杂,这是因为是真的想把单双数分别去到两列。
如果你想来个简单的方法也可以。那就是除2余数大法,方法如下:
在B1单元格输入
=MOD(A1,2)
A列的数据都除以2,得到余数。
单数余数为0
双数余数为1
可关键是怎么取到旁边列呢?当然是再加个if函数。
所以这个方法也算是辅助列大法,但if出来的数据都不是连续的,所以这也是最完美的用前面的几个复杂函数你方法。希望本例能为您开通解题思路。
扫描下面二维码,每日打卡,每日精进office技巧,学在手里的技能,才是职场的核心竞争力。学在大脑里的思维,才是职场上傲娇的本钱。

(0)

相关推荐