Excel返回具有特定重复项的列表

时间:2017-09-01 17:56:41

标签: excel indexing excel-formula excel-2010

我正在尝试根据另一个变量创建一个重复特定次数的名称列表。基本上,如果我有以下内容:

Column A    Column B
 Amy            5
 John           2
 Carl           3

结果将是:

  • 艾米
  • 艾米
  • 艾米
  • 艾米
  • 艾米
  • Carl
  • Carl
  • Carl
  • John
  • 约翰

我使用Index-Small-Countif方法构建了初始列表,以获得按字母顺序排列的不同列表,然后使用另一个公式来确定每个项目重复的次数。我知道我需要在引用行时使用某种索引/偏移量,但是不能完全解决它。

列表是动态的并且每天都在变化,因此每天手动重新输入列表将导致过多的人为错误和时间(列表大约有50个不同的项目,最后的行总数大约为400)。最终,该列表将用于许多sumproduct / vlookups。

我可以在VBA中相当快地完成此操作,但是本文档的用户并不总是信任VBA并且每次尝试将它们设置为启用宏都不会起作用。

非常感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:1)

根据您的表格:

+---+------+---+
|   |  A   | B |
+---+------+---+
| 1 | Amy  | 5 |
| 2 | John | 2 |
| 3 | Carl | 3 |
+---+------+---+

在C栏中贴上" 0"在C4和公式=B1+C2复制到0之前:

+---+------+---+----+
|   |  A   | B | C  |
+---+------+---+----+
| 1 | Amy  | 5 | 10 |
| 2 | John | 2 |  5 |
| 3 | Carl | 3 |  3 |
| 4 |      |   |  0 |
+---+------+---+----+

现在我们有一个行的上限,每个值都应放在该行上,我们可以在Match()公式中使用该公式来提供Index()公式。

在新栏目中(我使用E)IN E1:=INDEX($A$1:$A$3,MATCH(ROW(),$C$1:$C$3,-1),1)并复制

+----+------+---+----+--+------+
|    |  A   | B | C  | D |  E  |
+----+------+---+----+--+------+
|  1 | Amy  | 5 | 10 |  | Carl |
|  2 | John | 2 |  5 |  | Carl |
|  3 | Carl | 3 |  3 |  | Carl |
|  4 |      |   |  0 |  | John |
|  5 |      |   |    |  | John |
|  6 |      |   |    |  | Amy  |
|  7 |      |   |    |  | Amy  |
|  8 |      |   |    |  | Amy  |
|  9 |      |   |    |  | Amy  |
| 10 |      |   |    |  | Amy  |
+----+------+---+----+--+------+

该列表是向后的,因为我们在C列中从0开始向后回到奇怪的球。这是为了使Match() -1的最后一个参数(大于)正常工作。

我想通过一些调整可以做得更干净一点,但这应该让你进入球场。

虽然我仍然是寻找能够启用宏的用户的主要支持者。啊。