Excel - 重复公式的部分x次

Excel - 重复公式的部分x次

我想根据不同单元格中显示的数字重复公式 x 次。对我来说,这个数字是给定文本的长度。

我想要做的是在每个给定字符之前和之后添加字符,以便在新单元格中显示新文本。

原始公式的基本部分 - 我想缩短它,因为原始文本现在的长度约为 100 个字符;所以我必须重复公式的这个基本部分 100 次 - 如下所示:

=$T$10&MID(K21;1;1)&$T$11&MID(K21;2;1)&$T$12

现在在另一个单元格中,我有数字 33(原始文本的长度)。现在部分

$T$11&MID(K21;2;1)

应重复 32 次,但中间的数字(给出位置)应相应地迭代。如果您手动输入此示例的公式,它将如下所示:

=$T$10&MID(K21;1;1)&$T$11&MID(K21;2;1)&$T$11&MID(K21;3;1)&$T$11&MID(K21;4;1)&$T$11&MID(K21;5;1)&$T$11&MID(K21;6;1)&$T$11&MID(K21;7;1)&$T$11&MID(K21;8;1)&$T$11&MID(K21;9;1)&$T$11&MID(K21;10;1)&$T$11&MID(K21;11;1)&$T$11&MID(K21;12;1)&$T$11&MID(K21;13;1)&$T$11&MID(K21;14;1)&$T$11&MID(K21;15;1)&$T$11&MID(K21;16;1)&$T$11&MID(K21;17;1)&$T$11&MID(K21;18;1)&$T$11&MID(K21;19;1)&$T$11&MID(K21;20;1)&$T$11&MID(K21;21;1)&$T$11&MID(K21;22;1)&$T$11&MID(K21;23;1)&$T$11&MID(K21;24;1)&$T$11&MID(K21;25;1)&$T$11&MID(K21;26;1)&$T$11&MID(K21;27;1)&$T$11&MID(K21;28;1)&$T$11&MID(K21;29;1)&$T$11&MID(K21;30;1)&$T$11&MID(K21;31;1)&$T$11&MID(K21;32;1)&$T$11&MID(K21;33;1)&$T$12

是否有可能根据不同单元格中给出的数字动态生成此公式?

由于工作流程中的几个原因,我不想在这里使用 VBA 宏。

答案1

我想说我已经找到了解决我的问题的方法。我使用的是 Excel 2013,这是我的解决方案:

  1. 在 Excel 中激活迭代,迭代次数为 X(例如 150):转到“文件”-->“选项”-->“公式”并激活迭代
  2. 这是给定的文本:

    B2=P50,R50,P1,R1,P27,R27,

  3. 这是迭代公式:

德语 B3=WENN(B3<150;B3+1;1)

英语 B3=IF(B3<150,B3+1,1)

激活此单元格并按 Enter 以确保迭代结果为 X=150 或 1。如果多次重新计算接连发生,则可能出现其他结果。因此,一个迭代过程被下一个迭代过程打断。

  1. 这是减 3 的迭代公式:

    B4=B3-3

  2. 这些是在给定文本的每个字符之前插入的字符:

    B5=C

  3. 这些是在给定文本的每个字符后插入的字符:

    B6=,

  4. 这是在每个原始字符之前和之后包含字符的公式:

德语 B7==WENN($B$4<0;B7;WENN($B$4=0;"";WENN(LÄNGE(B7)<(LÄNGE(B2))*(LÄNGE(B5)+LÄNGE(B6)+1);VERKETTEN(B7;$B$5;TEIL(B2;$B$4;1);$B$6);B7)))

英语 B7==IF($B$4<0,B7,IF($B$4=0,"",IF(LEN(B7)<(LEN(B2))*(LEN(B5)+LEN(B6)+1),CONCATENATE(B7,$B$5,MID(B2,$B$4,1),$B$6),B7)))

  1. 只需确保迭代过程后得到的迭代公式停留在 X=150 或 1 处即可。您可以通过单击迭代公式的单元格(光标位于公式后面)来实现这一点,然后按 Enter

  2. 这是原文和结果文本:

    P50,R50,P1,R1,P27,R27,

    CP,C5,C0,C,,CR,C5,C0,C,,CP,C1,C,,CR,C1,C,,CP,C2,C7,C,,CR,C2,C7,C,,

如果您喜欢这个或这对您来说是新的,请为答案投票。谢谢。

相关内容