加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

如何用Excel公式根据指定数字生成可变的行数_Excel公式教程

(2016-07-03 12:07:16)
标签:

excel公式教程

生成可变行数

分类: Excel公式教程-应用篇

http://s1/bmiddle/0067PPKnzy7kzfbqVoIa0&690


如图,根据B列的数量,使A列生成相应的行数,效果如E列。


【方法一】

在E2输入下面的数组公式(记得按Ctrl+Shift+Enter三键结束输入):

=INDEX(A:A,MATCH(ROW()-2,SUBTOTAL(9,OFFSET(B$1,,,ROW($1:4))))+1)

然后把公式往下复制。


【方法二】

E2输入公式:=A2

E3输入下面的公式,然后向下复制:

=IF(COUNTIF(E$2:E2,E2)<VLOOKUP(E2,A:B,2),E2,INDEX(A:A,MATCH(E2,A:A,)+1))


【方法三】

如果数据量大,用以上公式觉得卡,可以考虑使用辅助列。

如图,这里使用了两个辅助列——F列和G列。F列用来记录准备读取数据源中第几行。

http://s14/bmiddle/0067PPKnzy7kzfdmSoBcd&690


F2输入2,表示从数据源的第2行开始读取。

G2输入公式:=INDEX(B:B,F2)

E2输入公式:=INDEX(A:A,F2)

这一行主要的作用是初始化数据。好,真正的公式从下一行开始。

G3输入公式:=IF(G2,IF(G2=1,INDEX(B:B,F2+1),G2-1),)

F3输入公式:=IF(G3,IF(G3<G2,F2,F2+1),)

E3输入公式:=IF(G3,INDEX(A:A,F3),"")

最后,把E3:G3的公式往下复制。

这种方法的计算速度非常快,即使处理十几万行数据也不会觉得卡。这就是辅助数据技术的魅力!

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有