如何根据 excel 中的另一个单元格值将值重复到行中

How to repeat a value into rows based on another cells value in excel

在我的工作表中,我有以下数据,使用来自另一个工作表的 =countif() 语句告诉我有多少人担任特定工作角色:

Job Role|Amount of people in the role
Job 1   |            6
Job 2   |            26
Job 3   |            4

现在我在我的工作表中完成了工作,我使用作业 1、作业 2 和作业 3 作为此 table 下面 3 个单独的 table 的标题,如下所示:

Job Role|Amount of people in the role
Job 1   |            6
Job 2   |            26
Job 3   |            4


Job 1                   Job 2                    Job3
Name|Job Role           Name|Job Role            Name|Job Role

我现在想做的就是根据顶部 table 中的数量用工作角色填充 3 个 table 中的每一个,例如,在下面工作 1 table,我希望工作角色重复 6 次(我不能只输入这个,因为我希望它自动工作,以防万一另一个员工被添加到我的员工列表中)。

Job 1
Name|Job Role
1   |Job 1
2   |Job 1
3   |Job 1
4   |Job 1
5   |Job 1
6   |Job 1

作业 2(将有 26 行重复)和作业 3 将有 4 行。任何帮助将不胜感激。

以防万一有人好奇我已经解决了这个问题。首先,我发现我可以为每个作业 1、作业 2 和作业 3 tables 中的每一行数据添加一个 ROW ID,这样它就不会超过中所述的人数顶部 table 像这样:

       A                 B                     C
1    Job Role|Amount of people in the role |
2    Job 1   |            6                |
3    Job 2   |            26               |
4    Job 3   |            4                |
5
6    Job 1 
7    ID      |Name                          |Job Role        
8    1       |t                             |
9    2       |b                             |
10   3       |a                             |
11   4       |s                             |
12   5       |d                             |
13   6       |f                             |

为了让数字达到 6 而不是超过这个,我使用这个公式 (IN CELL A8) 在员工被带走或添加时自动给该行一个 ID:

=IF(ROW()-7>B2,"",ROW()-7)

这个语句基本上是说“如果行号 -7 高于 B2(table 中的 6),则留空 space,如果行号低于 B2,则return 行号 -7 = 1,当下拉时,这将一直持续到 6,然后开始留空 spaces,除非添加了工作 1 工作角色的另一名员工,以防万一将上升到 7.

对于 return 工作角色,当我有 ID 号时,这很容易,我在单元格 C8 中使用的语句是:

=IF(A8<>"",A6,"")

这基本上意味着如果 ID 列中有内容,那么 return 工作角色,所以我最终得到我想要的:

Job 1
ID  | Name  |Job Role
1   |   T   |Job 1
2   |   B   |Job 1
3   |   A   |Job 1
4   |   S   |Job 1
5   |   D   |Job 1
6   |   F   |Job 1

你必须使用电源查询

您只需使用以下公式添加一列:

=Text.Repeat("a",[重复次数的列])

第 5 列应该是您希望复制的行数。

然后,从转换选项卡中,按字符数拆分新列,使用 1 个字符拆分,但从高级设置中,确保拆分为行,而不是列,这将复制所有其他列。