¿Cómo combino una cadena con cada valor separado por comas de otra celda?

¿Cómo combino una cadena con cada valor separado por comas de otra celda?

Estoy trabajando con una lista de números de cuenta en la columna A y una lista de suscriptores en la columna B. La columna A tiene solo el número de cuenta, por ejemplo: 310050. La columna B tiene una lista de suscriptores: Ejemplo: 10,11,30. Lo que estoy tratando de hacer es crear una ecuación para que la columna C escupe 31005010,31005011,31005030 pero todo lo que estoy investigando solo muestra cómo dividir comas en filas o columnas. ¿Cómo resolverían esto? Configuración actual de Excel

Respuesta1

Si tiene una suscripción a Office 365 Excel, utilice esta fórmula matricial:

=TEXTJOIN(",",TRUE,A1&TRIM(MID(SUBSTITUTE(B1,",",REPT(" ",999)),(ROW(INDIRECT("1:" & LEN(B1)-LEN(SUBSTITUTE(B1,",",""))+1))-1)*999+1,999)))

Al ser una fórmula matricial, debe confirmarse con Ctrl-Shift-Enter en lugar de Enter al salir del modo de edición. Si se hace correctamente, Excel implementará {}la fórmula.

![ingrese la descripción de la imagen aquí


Si no tiene una suscripción, puede colocar este código en un módulo adjunto al libro de trabajo. Entonces usarías la fórmula como se describe arriba.

Function TEXTJOIN(delim As String, skipblank As Boolean, arr)
    Dim d As Long
    Dim c As Long
    Dim arr2()
    Dim t As Long, y As Long
    t = -1
    y = -1
    If TypeName(arr) = "Range" Then
        arr2 = arr.Value
    Else
        arr2 = arr
    End If
    On Error Resume Next
    t = UBound(arr2, 2)
    y = UBound(arr2, 1)
    On Error GoTo 0

    If t >= 0 And y >= 0 Then
        For c = LBound(arr2, 1) To UBound(arr2, 1)
            For d = LBound(arr2, 1) To UBound(arr2, 2)
                If arr2(c, d) <> "" Or Not skipblank Then
                    TEXTJOIN = TEXTJOIN & arr2(c, d) & delim
                End If
            Next d
        Next c
    Else
        For c = LBound(arr2) To UBound(arr2)
            If arr2(c) <> "" Or Not skipblank Then
                TEXTJOIN = TEXTJOIN & arr2(c) & delim
            End If
        Next c
    End If
    TEXTJOIN = Left(TEXTJOIN, Len(TEXTJOIN) - Len(delim))
End Function

Respuesta2

En caso de que la función TEXTJOINno esté disponible y UDFla solución no sea deseable por algún motivo, esta fórmula de la hoja de trabajo le ayudará en este caso:

=SUBSTITUTE("@"&SUBSTITUTE(B1,",",",@"),"@",A1)

, asumiendo que ese símbolo @no se usa en los datos; de lo contrario, use cualquier otro símbolo no utilizado en su lugar.

ingrese la descripción de la imagen aquí

información relacionada