我在文档中有许多行,我需要在其中插入某些行子集。具体来说,我需要为每个月份插入一行。如果我有一行从 7 月开始到 9 月结束,我需要用 3 行替换该行,一行代表 7 月,一行代表 8 月,一行代表 9 月。
我怎样才能自动完成此操作?
答案1
我假设你的数据如下:
(1)我格式化了列E
和F
以mmm-yy (m/yyyy)
避免语言混淆。
(2)上面的内容可复制版本为这个答案的来源。
上Sheet1
,并且您要将其复制到其中Sheet2
并添加额外的行。您可以使用三个“辅助列”来执行此操作Sheet2
— 在以下步骤中,我使用X
、Y
和Z
。操作方法如下:
- 将列标题从
Sheet1
第 1 行 复制到Sheet2
第 1 行。 - 进入
=IF($Y2=0, INDEX(Sheet1!A:A, $X2), "")
并Sheet2!A2
拖动/填充到右侧以覆盖所有数据(即到列I
)。 - 复制
Sheet1:A2:I2
并粘贴格式到Sheet2:A2:I2
。 Sheet2!E2
将(开始月份)更改为
=DATE(YEAR(INDEX(Sheet1!E:E, X2)), MONTH(INDEX(Sheet1!E:E, X2))+Y2, 1)
。- 输入。这指定
2
了该Sheet2!X2
行Sheet1
这行(在Sheet2
)将从中提取数据,因此,例如,如果您的数据实际上从 的第 61 行开始Sheet1
,请61
输入Sheet2!X2
。 - 输入。
0
Sheet2!Y2
- 输入
=INDEX(Sheet1!F:F, $X2)
。Sheet2!Z2
(如果需要,可将其格式化为日期。) - 选择
Sheet2!A2:Z2
并向下拖动/填充至第 3 行。 - 改成。
Sheet2!X3
=IF(E2<Z2, X2, X2+1)
- 改成。
Sheet2!Y3
=IF(E2<Z2, Y2+1, 0)
- 选择
Sheet2!A3:Z3
并向下拖动/填充,以获取您需要的所有数据。
它看起来应该是这样的:
笔记:
- 按照说明,指定行就该行
Sheet2!Xn
Sheet1
n
(开启Sheet2
)将从中提取数据。 Sheet2!Yn
是值内的上一个数字;即在一行内。例如,由于第 3-6 行从第 3 行提取数据,因此我们有=Sheet2!Xn
Sheet1
Sheet2
Sheet1
X3
X4
=X5
=X6
=3,并且Y3
,Y4
,Y5
,Y6
= 0, 1, 2, 3。- 列
Z
只是IF
列中表达式的“真”分支F
;即该组行的结束月份。
当然,您可以隐藏列X
、Y
和Z
。或者,如果您只想执行一次即可完成,您可以复制并粘贴值。