Excel:如何从一行创建多行

Excel:如何从一行创建多行

我在文档中有许多行,我需要在其中插入某些行子集。具体来说,我需要为每个月份插入一行。如果我有一行从 7 月开始到 9 月结束,我需要用 3 行替换该行,一行代表 7 月,一行代表 8 月,一行代表 9 月。

我怎样才能自动完成此操作?

之前和之后

答案1

我假设你的数据如下:


(1)我格式化了列EFmmm-yy (m/yyyy) 避免语言混淆。
(2)上面的内容可复制版本为这个答案的来源

Sheet1,并且您要将其复制到其中Sheet2并添加额外的行。您可以使用三个“辅助列”来执行此操作Sheet2— 在以下步骤中,我使用XYZ。操作方法如下:

  • 将列标题从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!X2Sheet1行(在Sheet2)将从中提取数据,因此,例如,如果您的数据实际上从 的第 61 行开始Sheet1,请61输入Sheet2!X2
  • 输入。0Sheet2!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!XnSheet1n(开启Sheet2)将从中提取数据。
  • Sheet2!Yn是值内的上一个数字;即在一行内。例如,由于第 3-6 行从第 3 行提取数据,因此我们有=Sheet2!XnSheet1Sheet2Sheet1X3X4 = X5= X6=3,并且Y3Y4Y5Y6= 0, 1, 2, 3。
  • Z只是IF列中表达式的“真”分支F;即该组行的结束月份。

当然,您可以隐藏列XYZ。或者,如果您只想执行一次即可完成,您可以复制并粘贴值。

相关内容