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.
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 TEXTJOIN
no esté disponible y UDF
la 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.