我想根据不同单元格中显示的数字重复公式 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,这是我的解决方案:
- 在 Excel 中激活迭代,迭代次数为 X(例如 150):转到“文件”-->“选项”-->“公式”并激活迭代
这是给定的文本:
B2=P50,R50,P1,R1,P27,R27,
这是迭代公式:
德语 B3=WENN(B3<150;B3+1;1)
英语 B3=IF(B3<150,B3+1,1)
激活此单元格并按 Enter 以确保迭代结果为 X=150 或 1。如果多次重新计算接连发生,则可能出现其他结果。因此,一个迭代过程被下一个迭代过程打断。
这是减 3 的迭代公式:
B4=B3-3
这些是在给定文本的每个字符之前插入的字符:
B5=C
这些是在给定文本的每个字符后插入的字符:
B6=,
- 这是在每个原始字符之前和之后包含字符的公式:
德语 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)))
只需确保迭代过程后得到的迭代公式停留在 X=150 或 1 处即可。您可以通过单击迭代公式的单元格(光标位于公式后面)来实现这一点,然后按 Enter
这是原文和结果文本:
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,,
如果您喜欢这个或这对您来说是新的,请为答案投票。谢谢。