excel中第一列是数值,第二列是个数,如何用公式将所有数值列出来?

例如:
A1: 20 30 50 40
B1: 2 2 3 1

想要的结果:20 20 30 30 50 50 50 40

给你编了一段代码。运行即可。公式可能比较复杂,且如果数据多时。影响运行速度。

Sub a()
Dim i&, j&, k&
Range("c:c").ClearContents
k = 1
For i = 1 To [a65536].End(3).Row
    For j = 1 To Range("b" & i).Value
        Range("c" & k) = Range("a" & i)
        k = k + 1
    Next j
Next i
End Sub


追问

人才,非常感谢。但是我一点击“运行”就提示我由于安全级别设置的高,宏被禁用了,我把安全级别设置的最低还是不行。有什么办法吗?或者您能不能把表格做得再简单一些啊。谢谢

追答

2003版本——工具——宏——宏安全——设置为低——关闭EXCEL,重新打开。
2007以上——选项——信任中心——信任设置——宏设置——启用所有宏——关闭,重新打开。

追问

行了耶。谢谢了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-16
C1数组公式:
=INDEX(A:A,SMALL(IF(B$1:B$4<COLUMN(A:G),4^8,ROW($1:$4)),ROW(A1)))&""
按CTRL+SHIFT+回车键结束公式下拉,即可。
第2个回答  2013-06-16
把问题作为内容(邮件主题一定要包含“excel”,本人以此为依据辨别非垃圾邮件,以免误删)、excel样表文件(请特别注意:要03版的(如果是03以后的,把文件“另存为”一下,类型框可以选择03的),把现状和目标效果表示出来)作为附件发来看下 [email protected]
第3个回答  2013-06-16
能说明白些么?
相似回答