Concatena um intervalo com um separador condicional

2

Estou procurando algo semelhante a esse truque para concatenar um intervalo com um separador , mas quero a saída para incluir um caractere especial no item no intervalo que é para essa linha.

Por exemplo, começando com isso:

Fruit      #
------------
Apples   100
Oranges   80
Pears     50

... Eu quero uma fórmula que possa criar uma linha como esta:

Fruit      #             Output
------------------------------------------
Apples   100   >Apples -- Oranges -- Pears
Oranges   80   Apples -- >Oranges -- Pears
Pears     50   Apples -- Oranges -- >Pears

Este exemplo é massivamente simplificado ... meu problema atual tem centenas de linhas, precisa ser repetido muitas vezes para muitas folhas e é sobre a criação de entrada de especificação precisa para um programa diferente, mas a essência do problema é a mesmo. Algo que pode automatizar a saída no exemplo simples acima resolverá meu problema mais complexo.

Suponho que quero que eu quero é algo como =TRANSPOSE(A1:A10)&IF($THIS=A2," -- >"," -- ") onde $THIS de alguma forma indica o item na matriz que está sendo olhado quando F9 avalia isso ... é algo parecido até mesmo possível?

    
por user568458 25.08.2015 / 20:31

1 resposta

1

Usando o VBA:

Public Function markitem(itemrange As Range, item As String)
    markitem = ""
    i = 0
    itemlength = itemrange.Rows.Count
    result = ""
    For i = 1 To itemlength
        actualitem = itemrange.item(i)
        If actualitem = item Then
            actualitem = "<" & actualitem
        End If
        result = result & actualitem & " -- "
    Next i
    If i <> 0 Then
        markitem = Left(result, Len(result) - 3)
    End If   
End Function

Suponha que seus dados iniciem na célula A1 , em seguida, na célula C1 , você precisa colocar =markitem($A$1:$A$3;A1) e copiar a fórmula na coluna C.

Para usar este código, vá para Macros / VBA, insira um novo módulo em ThisWorkbook e cole o código no lado direito.

    
por 26.08.2015 / 11:02