用常数值更改 excel 公式的一部分

Change part of excel formula with a constant value

我有一个跨列的 excel 公式,其基数每隔 "x" 行更改一次。请注意,此 "x" 不是恒定的,并且会不断变化。例如

=D1/SUM(D:D)
=D2/SUM(D:D)
=D3/SUM(D:D)
=D4/SUM(D:D)
=D5/SUM(D:D)
=D6/SUM(D:D)
=D7/SUM(D:D)
=D8/SUM(D:D)
=D9/SUM(D:D)

我正在尝试更改公式的第一部分而不更改第二部分,反之亦然。例如将分子改变 10 个单元格。

=D11/SUM(D:D)
=D12/SUM(D:D)
=D13/SUM(D:D)
=D14/SUM(D:D)
=D15/SUM(D:D)
=D16/SUM(D:D)
=D17/SUM(D:D)
=D18/SUM(D:D)
=D19/SUM(D:D)

或者,将基数更改为 100。例如

=D1/SUM(D0:D4)
=D2/SUM(D0:D4)
=D3/SUM(D0:D4)
=D4/SUM(D0:D4)
=D5/SUM(D5:D9)
=D6/SUM(D5:D9)
=D7/SUM(D5:D9)
=D8/SUM(D5:D9)
=D9/SUM(D5:D9)

有时,两者都有。关于如何做到这一点的任何指导?

谢谢。

除非我遗漏了什么,否则这个问题的第一部分似乎很简单?

第 1 部分:

由于分母已经是 $x 形式,您可以 select 并复制整个范围的公式并将它们粘贴到 10 行下方,然后将其剪切并粘贴回原位。 COPY 将适当地更新分子,当您将其剪切并粘贴回原位时,它们现在将如您所愿?第二个问题会更具挑战性!

第 2 部分:

没有 VBA 也行 我只能想出一个非常冗长的方法来改变你的恶魔,但我只是检查它是否有效: 换底。

  1. 搜索并替换 = 为 '=

现在您可以更自由地编辑公式了。

  1. 搜索并用 D% 替换 D

  2. 搜索并将 D%$ 替换为 D

  3. 搜索 D% 并将其替换为 D$
  4. 通过使用数据>文本到列选项摆脱 '=
  5. 现在使用第 1 部分中的复制和粘贴、剪切粘贴技巧。

然后,如果您仍然需要按原样取回 $s,您基本上会再次重复 1 到 5。 抱歉,这看起来真的很啰嗦,但如果你在开始之前绝望并备份它应该有用。

一个excel公式不能替换另一个单元格excel公式...一种方法是将公式制成文本,然后通过其他公式转换它。转换完成后,您可以将公式粘贴回去。

因此,为了更改 D1 -> D11,我将构建一个虚拟系列(第 K 列),然后编写一个公式(单元格 L1)。然后我可以复制公式并将其粘贴到正确的列中。

将“=”替换为特殊字符即可进行公式转换。 (F 列)。

在第一列中,使用的公式是:=RIGHT(F1,LEN(F1)-FIND("/",F1))

为了更改 D -> D0,我想我只是通过在 "Formulas".

中搜索来复制和替换它

这种方法对于几百个细胞是可行的。如果列表很长,我会推荐一些 VBA 解决方案,您可以在其中使用 .Range("A1").Formula

获取单元格公式