Excel - 重复公式x次的部分


0

我想根据不同单元格中显示的数字重复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宏。


我几乎可以肯定没有办法。您可以通过使用最新版本的Excel(请参阅新的CONCAT功能)找到解决方法,并将当前K21的内容拆分为每个单元格一个字符。
Máté Juhász

你能描述一下这个功能究竟应该做什么吗?可能举一个例子,看看它有两次或三次重复而不是33次?这样你会更清楚你要做什么。
Seth

只有拥有TEXTJOIN的最新版本的Excel才能执行此操作。如果您无法访问,那么vba是唯一的方法。
Scott Craner

虽然可以做到 Google表格 =$T$10 & ArrayFormula(JOIN($T$11,MID(K21,ROW(INDIRECT("1:" & A2)),1))) 其中A2是重复次数。
Scott Craner

1
@Scott Crane:我会检查是否有TEXTJOIN,或者我是否可以使用Google工作表进行此工作流程并告知您。至少这是一个很好的起点,看看。谢谢!
Jens

Answers:


1

我会说我找到了解决方案。我正在使用Excel 2013,这是我的解决方案:

  1. 使用X(例如150)迭代在Excel中激活迭代:转到'文件' - > '选项' - > '公式'并激活迭代
  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,,

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.