Como eu combino a String com cada valor separado por vírgula de outra célula

0

Estou trabalhando com uma lista de números de contas na coluna A e uma lista de subs na coluna B. A coluna A tem apenas o número da conta, por exemplo: 310050. A coluna B tem uma lista de subs: Exemplo: 10,11,30 . O que estou tentando fazer é criar uma equação para a coluna C para citar 31005010,31005011,31005030, mas tudo que estou pesquisando está mostrando apenas como dividir vírgulas em linhas ou colunas. Como vocês resolvem isso? Configuração atual do Excel

    
por Ardel 25.05.2017 / 17:40

2 respostas

0

Se você tiver uma assinatura do Office 365 Excel, use esta fórmula de matriz:

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

Sendo uma fórmula de matriz, ela precisa ser confirmada com Ctrl-Shift-Enter em vez de Enter ao sair do modo de edição. Se feito corretamente, o Excel colocará {} em torno da fórmula.

Sevocênãotiverumaassinatura,poderácolocaressecódigoemummóduloanexadoàpastadetrabalho.Entãovocêusariaafórmuladescritaacima.

FunctionTEXTJOIN(delimAsString,skipblankAsBoolean,arr)DimdAsLongDimcAsLongDimarr2()DimtAsLong,yAsLongt=-1y=-1IfTypeName(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
    
por 25.05.2017 / 18:00
0

No caso em que a função TEXTJOIN esteja indisponível e UDF solução não é desejável por algum motivo, essa fórmula de planilha ajudará nesse caso:

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

, assumindo que o símbolo @ não é usado nos dados, caso contrário, use qualquer outro símbolo não utilizado.

    
por 25.05.2017 / 20:16