Aquí hay una fórmula que funcionará en Excel 2016, tal como está. En versiones anteriores de Excel, TEXTJOIN()
se requiere un UDF de poli-relleno para . (Vea esta publicación para una básica).
Array ingrese ( Ctrl+ Shift+ Enter) la siguiente fórmula F2
y copie, pegue / rellene en el resto de la columna:
{=TEXTJOIN(";",TRUE,INDEX(B:B,N(IF(1,MATCH(--MID(SUBSTITUTE(E2,";",REPT(" ",99)),(ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1))-1)*99+((ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1)))=1),99),A:A,0)))))}
Tenga en cuenta que esta fórmula solo funciona si los valores en la columna A
se almacenan realmente como números. Para valores de texto, el --MID(…)
en la fórmula necesita ser reemplazado por TRIM(MID(…))
.
La fórmula prettificada es la siguiente:
{=
TEXTJOIN(
";",
TRUE,
INDEX(
(B:B),
N(IF(1,
MATCH(
--MID(
SUBSTITUTE(E2,";",REPT(" ",99)),
99*(ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1))-1)
+(1=ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1))),
99
),
(A:A),
0
)
))
)
)}
Notas:
- La fórmula prettificada realmente funciona si se ingresa.
- Los corchetes
(A:A)
en la versión prettified son necesarios para forzar A:A
que permanezca en su propia línea. Lo mismo se aplica para el (B:B)
.
Para Excel 2016 (solo Windows), la siguiente fórmula más simple debería funcionar:
{=TEXTJOIN(";",TRUE,INDEX(B:B,N(IF(1,MATCH(--FILTERXML("<a><b>" & SUBSTITUTE(E2, ";", "</b><b>") & "</b></a>", "//b"),A:A,0)))))}
Al igual que la fórmula anterior, esta también solo funciona en valores almacenados como números. Para valores de texto, simplemente elimine el --
de la fórmula.
;
de la fórmula. También puede cambiarlo a cualquier otra cadena de separación. PD: Si realmente aprecias mi ayuda, una vez que alcances más de 15 reputación, no olvides volver y votar mi respuesta también ;-)Ctrl
+Shift
+Enter
, en lugar de soloEnter
. (Es por eso que las llaves están ahí, para recordarle que lo haga ;-)) PD: No es la causa de su problema, pero para referencia futura he agregado información a la respuesta sobre números almacenados como texto versus números almacenados como reales Números PPS También he simplificado ligeramente la primera fórmula no prettificada. (La versión prettified ya era la versión más simple.)