如何根据 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 个字符拆分,但从高级设置中,确保拆分为行,而不是列,这将复制所有其他列。
在我的工作表中,我有以下数据,使用来自另一个工作表的 =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 个字符拆分,但从高级设置中,确保拆分为行,而不是列,这将复制所有其他列。