【问题标题】:Excel to return list of items with specific repetitionExcel返回具有特定重复的项目列表
【发布时间】:2018-02-10 20:07:39
【问题描述】:

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

Column A    Column B
 Amy            5
 John           2
 Carl           3

结果是:

  • 艾米
  • 艾米
  • 艾米
  • 艾米
  • 艾米
  • 卡尔
  • 卡尔
  • 卡尔
  • 约翰
  • 约翰

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

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

我可以在 VBA 中相当快地做到这一点,但本文档的用户并不总是信任 VBA,并且试图让他们每次都启用宏是行不通的。

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

【问题讨论】:

  • 获取新用户?这是一个选择吗?
  • 有时候我真希望是……

标签: excel indexing excel-formula excel-2010


【解决方案1】:

根据您的表:

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

在 C 列中,在 C4 处粘贴一个“0”,并将公式 =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 开始的奇怪事情。这是为了使 -1(大于)的最后一个参数 Match() 正常工作。

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

尽管我仍然大力支持寻找能够启用宏的用户。呃。

【讨论】:

  • 太棒了!非常感谢!我稍微调整了一下,让它按正确的顺序排列。基本上总结了 B 列,然后我将 Match 部分调整为 =....MATCH(SUM(B:B) - ROW(),...
  • 是的!这很有意义。倒过来倒不是错,但感觉必须有一种简单的方法来翻转它。我在几分钟内两次放弃了这个问题,但它一直困扰着我,所以当我(向后)破解它时,我不打算冒险重构。
猜你喜欢
  • 1970-01-01
  • 2021-04-09
  • 1970-01-01
  • 1970-01-01
  • 2019-03-07
  • 2015-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多