如何转换一组类型而不是。将实例放入Excel中所有这些实例的列表中

时间:2012-07-18 15:17:38

标签: excel excel-vba vba

我四处寻找这方面的指导,但是我有点缺乏经验,所以可能错过了一些明显的东西 - 抱歉!

我希望能够转换一组类型而不是。将实例以动态的方式放入这些实例的列表中,以便我可以更新实例数,例如列表将更新(填写新行)。

Type 1  |   0
Type 2  |   3
Type 3  |   2
Type 4  |   1

将返回

Project 1   |  Type 2
Project 2   |  Type 2
Project 3   |  Type 2
Project 4   |  Type 3
Project 5   |  Type 3
Project 6   |  Type 4

如果没有VBA可能会很棒。

理想情况下,它不会作为数组返回 - 尽管它确实不是问题(特别是如果它更简单)

我认为在VBA中会定义一些函数,它返回一个可以超过100行的数组,并在实例数量发生变化时填充?

它需要能够在没有的时候进行管理。实例的变化,例如类型4有10个实例,类型2没有实例

希望这很清楚,非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

通过使用包含一些中间结果的辅助列,您可以在不使用VBA的Excel中实现此目的。以下屏幕截图显示了它的工作原理:

Screenshot of Excel, with the result in columns F and G, starting at row 2

这是Excel的屏幕截图,D作为中间列,FG列中的所需结果,从行2开始

1包含引导公式的起始值。列D中的单元格用作计数器。只要它达到零,就会从列B中的单元格中读取其新值。例如,单元格D2中的倒计时公式为

=IF(D1=0,INDIRECT("B"&(G1+2))-1,D1-1)

和该列中的所有单元格类似,行索引自动调整。

G中的单元格会跟踪当前的类型数字,只要列1中的单元格点击D,就会0增加。例如,单元格G2的公式是

=IF(D1=0,G1+1,G1)

这就是你要找的......几乎。如果列B中的单元格的值为0,则会出现问题。在这种情况下,您需要跳到下一个非零单元格。这可以完成,整个例子也可以稍微清理一下。但是,在你真正展示对这个答案的一些回应之前,我不想花太多精力,证明你有兴趣自己学习一些更高级的Excel公式。