Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将一组类型和实例数转换为Excel中所有这些实例的列表_Excel_Vba - Fatal编程技术网

如何将一组类型和实例数转换为Excel中所有这些实例的列表

如何将一组类型和实例数转换为Excel中所有这些实例的列表,excel,vba,Excel,Vba,我已经四处寻找这方面的指导,但我有点经验不足,所以可能错过了一些明显的东西-对不起 我希望能够以一种动态的方式将一组类型和数量的实例转换为这些实例的列表,这样我可以更新实例的数量,例如,列表将更新(填写新行) 会回来吗 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

我已经四处寻找这方面的指导,但我有点经验不足,所以可能错过了一些明显的东西-对不起

我希望能够以一种动态的方式将一组类型和数量的实例转换为这些实例的列表,这样我可以更新实例的数量,例如,列表将更新(填写新行)

会回来吗

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没有实例


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

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

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

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

=IF(D1=0,INDIRECT("B"&(G1+2))-1,D1-1)
=IF(D1=0,G1+1,G1)
该列中的所有单元格都类似,行索引会自动调整

G
中的单元格跟踪当前类型编号,每当列
D
中的单元格点击
0
时,该编号随
1
的增加而增加。例如,单元格
G2
的公式为

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

这就是你想要的。。。几乎。如果列
B
中的单元格的值为
0
,则会出现问题。在这种情况下,您需要跳到下一个非零单元格。这是可以做到的,整个示例也可以进行一些清理。然而,我不想在这方面花费太多的精力,直到您对这个答案做出了一些回应,证明您有兴趣自己学习一些更高级的Excel公式。

您尝试了什么?此外,我注意到,在你所有的问题中,你从来没有在这个问题上表现出任何努力的迹象。你很可能会被一遍又一遍地问这个问题,而得不到任何帮助。表明你至少试过了。至于这个问题,我很确定你不能在纯Excel公式中这样做,你必须使用VBA。也不清楚类型的计数在哪里变成项目1、项目2等。但正如@AlexandreP.Levasseur所说,告诉我们你在VBA中尝试了什么,以及你在哪里遇到了困难。这将帮助你,帮助我们帮助你更多!