Me gustaría repetir una fórmula para x veces dependiendo de un número que se muestra en una celda diferente. Para mí, este número es la longitud de un texto dado.
Lo que estoy tratando de hacer es agregar caracteres antes y después de cada carácter dado, para tener un nuevo texto en una nueva celda.
La parte básica de la fórmula original, que quiero acortar porque el texto original tiene ahora una longitud de ~ 100 caracteres; así que tendría que repetir esta parte básica de la fórmula 100 veces, se ve así:
=$T$10&MID(K21;1;1)&$T$11&MID(K21;2;1)&$T$12
Ahora, en una celda diferente, tengo el número 33 (la longitud del texto original). Ahora la parte
$T$11&MID(K21;2;1)
debe repetirse 32 veces, pero el número en el medio (dando la posición) debe iterar en consecuencia. Si escribe la fórmula manualmente para este ejemplo, se vería así:
=$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
¿Existe alguna posibilidad de generar dinámicamente esta fórmula de acuerdo con el número dado en una celda diferente?
Por varias razones en el flujo de trabajo, no quiero usar una macro VBA aquí.
=$T$10 & ArrayFormula(JOIN($T$11,MID(K21,ROW(INDIRECT("1:" & A2)),1)))
donde A2 es el número de repeticiones.Respuestas:
Yo diría que he encontrado una solución a mi desafío. Estoy usando Excel 2013 y esta es mi solución:
Este es el texto dado:
B2=P50,R50,P1,R1,P27,R27,
Esta es la fórmula de iteración:
alemán
B3=WENN(B3<150;B3+1;1)
Inglés
B3=IF(B3<150,B3+1,1)
Active esta celda y presione Intro para asegurarse de que el resultado de la iteración sea X = 150 o 1. Otros resultados pueden ocurrir si se han realizado varios cálculos poco después uno del otro. Entonces, un proceso de iteración ha sido interrumpido con el siguiente.
Esta es la fórmula de iteración menos 3:
B4=B3-3
Estos son los caracteres que se insertan antes de cada carácter del texto dado:
B5=C
Estos son los caracteres que se insertan después de cada carácter del texto dado:
B6=,
alemán
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)))
Inglés
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)))
Solo asegúrese de que la fórmula de iteración resultante se encuentre en X = 150 o 1 después del proceso de iteración. Puede lograr esto haciendo clic en la celda de la fórmula de iteración, con el cursor visible detrás de la fórmula, y luego presione Intro
Este es el original y el texto resultante:
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,,
Si le gusta esto o esto es nuevo para usted, vote por la respuesta. Gracias.
fuente