【问题标题】:Excel duplicate line and apply formulaExcel重复行并应用公式
【发布时间】:2016-02-09 18:28:28
【问题描述】:

我需要以下方面的帮助。

我需要 excel 将同一行再复制 4 次,并根据下一个标记列更新“售价”。在上图中,“售价”使用的是“类零售标记百分比”。 公式:=((N2/100)*L2)+L2

以下是我想要实现的目标,但我需要将其自动化,因为这是成千上万的项目之一。

任何帮助将不胜感激。

【问题讨论】:

    标签: excel


    【解决方案1】:

    如果不使用 VBA,将需要做很多工作。但你可以这样做:

    手动插入 5 行,但将所有内容作为参考。 A3 到 A6 都将具有 =A2(对于 B 到 J 和 L 列相同)(对于 K,直接键入 2 到 5)
    然后在M3 中输入=(O2/100+1)*L3M4 =(P2/100+1)*L4M5=(Q2/100+1)*L5M6 变成 =(R2/100+1)*L6

    现在复制整行 3 到 5。

    在下一个数据集选择它下面的行并右键单击它->“插入复制的单元格”(对每个条目重复复制/粘贴步骤)

    通过宏进行复制粘贴部分:

    Sub Macro1()
      Dim i As Long
      For i = 47861 To 8 Step -1
        Rows("3:6").Copy
        Rows(i).Insert Shift:=xlDown
      Next
    End Sub
    

    确保使用正确的范围或至少将其拆分为一小部分进行测试...可能需要很长时间才能在一个步骤中完成所有行...

    【讨论】:

    • 谢谢,但对 47861 行执行此操作不是一种选择:(
    【解决方案2】:

    假设您在此工作表(又名 sheet1)中的数据没有被另一个工作表中的公式使用,您可能可以选择创建一个具有完全相同标题的新工作表(又名 sheet2)。 (如果您在其他工作表中有公式读取您的 47861 行数据,那么这可能不是方法,因为您必须将所有这些重新链接到工作表 2。要检查,请使用工作表 1 中的“跟踪依赖项”)

    在 Sheet2 的 A2 单元格中,写下这个公式:

    =HLOOKUP(A$1,Sheet1!$A$1:$R$47862,(INT(ROW(Sheet1!A2)-2)/5)+2,0)
    

    说明:它将在您的表格中查找来自 sheet1 中 sheet2 的列标题,例如“内部 ID”(我假设是 47861 行,因此公式中为“Sheet1!$A$1:$R$47862”)。在 hlookup 的 row index no 中,有一个 play around 是让 row index no 重复 5 次。

    您可以将该公式在 sheet2 中向下复制到 A239306(因为 47861*5=239305)。您可以将该行复制到 sheet2 中直到 R 的所有列,K 和 M 除外(假设您可以在 N 到 R 列中重复 5 次)。

    在sheet2中,cellK2:

    =MOD((ROW()-2),5)
    

    您可以将其拖至 K239306。这会填充除 M 之外的所有列。

    在 sheet2 中,从 M2 到 M6,您可以写下 5 个计算您的 SP 的公式,然后将其中的 5 个复制为一个块,并将它们作为一个块一直粘贴到 239305 个单元格中,从 M2 到M239306。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      • 1970-01-01
      • 2017-07-24
      • 2021-11-13
      • 2023-03-21
      • 2014-01-02
      相关资源
      最近更新 更多