¿Cómo CONCATENAR texto de matriz?

0

Deje que la celda A1 tenga "abccba". Ahora escribo una fórmula en la celda B1 =RIGHT(LEFT(A1,ROW(INDIRECT("1:"&LEN(A1)))))que le da el valor "a" o una cadena de matriz como {"a"; "b"; "c"; "c"; "b"; "a "} Ahora, cuando concateno esto con" =CONCATENATE(RIGHT(LEFT(A1,ROW(INDIRECT("1:"&LEN(A1))))))me da "pero" espero "abccba" ¿dónde me equivoco? ¿Cómo concatenar una cadena de matriz? ¡Gracias! Saludos,

Hemant Rupani
fuente

Respuestas:

1

Concatenate no acepta valores de matriz como argumento; solo acepta valores de texto discretos. Cuando ingresa matrices, solo toma el primer valor como ya lo ha encontrado. Si desea pasar un solo argumento como una matriz de texto y hacer que el resultado sea una sola cadena de todos esos argumentos, debe usar VBA. Aquí hay un UDF que haría eso:

Public Function JoinText(arr()) As String
    For i = LBound(arr) To UBound(arr)
        JoinText = JoinText & arr(i, 1)
    Next
End Function

Y aquí está la fórmula para poner en una celda, que debe ingresarse como una fórmula de matriz con Ctrl+ Shift+ Enter:

{=JoinText(RIGHT(LEFT(A1,ROW(INDIRECT("1:"&LEN(A1))))))}
Tostadas de ingeniero
fuente
¡Hola! ¿hay alguna fórmula directa?
Hemant Rupani
1
No. No hay una función de Excel integrada que pueda tomar un solo argumento con un número variable de elementos en una matriz y devolver una cadena que combine todos esos elementos. Si la matriz siempre tiene una longitud fija, puede hacer una fórmula muy larga para combinarlos. ¿Puedes intentar publicar una pregunta más cercana a tu tarea actual? El ejemplo que dio es una forma realmente compleja de obtener su resultado original. Si publicaste algo con los detalles exactos, podemos darte una mejor solución en la que no has pensado.
Engineer Toast
2
Sí. Francamente impactante que Microsoft aún no haya hecho de esta funcionalidad una característica de las funciones de la hoja de trabajo incorporada.
XOR LX