Como faço para recuperar linhas em uma célula que consiste em um determinado texto que eu quero?

0

Eu tenho uma grande lista de grupos de usuários e seus respectivos nomes de usuários. Agora, eu gostava de filtrá-los ainda mais. Os grupos de usuários para cada usuário são todos em uma célula (nome de usuário - grupos de usuários), o que significa que há talvez 10-15 grupos de usuários em uma única célula. Eu só quero linhas que consiste em "WTS" e, em seguida, colocando as linhas de grupos de usuários consistindo de "WTS" em uma nova célula.

Como faço para fazer isso?

Exemplo de dados:

Grupos de usuários 1 WTS_A,      BTS_B,      WTS_C,

Eu quero WTS_A e WTS_C.

    
por Justin Ooi Jun Kai 27.09.2017 / 05:24

2 respostas

0

Com base no meu entendimento da sua pergunta, sugiro uma solução de 2 etapas.

Etapa 1 - Use o recurso Text to Columns no Excel e converta o texto de uma única coluna em várias colunas. Use espaço e vírgula como delimitadores.

Step 2 - Use uma função VBA personalizada para unir apenas as células pretendidas em uma única célula delimitada por Comma.

Depois de concluir o processo Text To Columns, pressione ALT + F11 na folha para abrir o Editor do VBA. No menu Inserir, insira o módulo. Um Módulo1 deve ser criado e seu editor de código deve abrir. Se não clicar duas vezes no Módulo1 no painel esquerdo para abrir seu editor de código.

Cole o seguinte código no mesmo.

Public Function TXTJOIN(argument1 As Range)      'Accept input range
   result = ""
   colcounter = argument1.Columns.Count
   rowcounter = argument1.Rows.Count
   If rowcounter > 1 Then
        TXTJOIN = CVErr(xlErrValue)  'If row counter > 1 return #VALUE! Error
        Exit Function
   End If

   If colcounter > 255 Then
        TXTJOIN = CVErr(xlErrValue)  'If col counter > 255 return #VALUE! Error
        Exit Function
   End If


        For Each element In argument1
            If Left(element, 3) = "WTS" And Len(element) > 3 Then
                result = result & element & ","
            End If
        Next element

        If result = "" Then
            TXTJOIN = result
        Else
            TXTJOIN = Left(result, Len(result) - 1)
        End If
End Function

Isso cria uma função TXTJOIN personalizada para verificar a inicialização de String como "WTS" e unir todas essas colunas delimitadas por vírgula

Salve e saia do editor do VBA. De volta à planilha, vá para a coluna extrema direita e insira essa função, especificando o intervalo da coluna aplicável. Copie ou arraste-o para baixo ao longo do comprimento das linhas aplicáveis. Você deve obter a seqüência desejada nas respectivas células. Copie apenas os valores em outro lugar e exclua o restante das colunas para limpar a planilha.

Você receberá #VALUE! Erro desta função em situações como.

  • Você passa um array multidimensional para ele. A1: D12

  • Você passa mais de 255 colunas para isso.

  • Você passa várias linhas para, por exemplo, A1: A12

Deixe-me saber se isso funciona para você.

Limitação - Isso pressupõe que os IDs do usuário sejam separados por Espaço ou Vírgula. Se dois estiverem juntos sem vírgula ou espaço, essa função não identificará os dois separadamente.

    
por 27.09.2017 / 14:47
1

Você tem duas tarefas: pesquisar dados válidos (interessantes) e formatá-los.

1 Procurando por uma string:

A pesquisa por uma string como o WTS pode ser feita com as funções Find ou Search. Ambos vão mostrar um valor numérico quando a string for encontrada, assim: FIND ("WTS"; A1) ou SEARCH ("WTS"; A1)

Faça isso para a primeira linha. Selecione a célula com sua cópia de fórmula e, em seguida, selecione as células abaixo dela para todas as suas linhas de dados e cole. A fórmula será atualizada automaticamente para FIND ("WTS"; B1) ... FIND ("WTS"; C1) ...

Sugiro neste momento a filtragem manual para ocultar as linhas que dão erro: #VALUE!

Basta excluir as linhas que não fornecem resultados.

2 Divida os dados dos grupos de usuários:

Quando você tem várias entradas em sua célula delimitadas por uma string (como um traço "-"), selecione suas células e use Dados - > Texto para colunas - > Delimitado - > Adicione seu delimitador - escolha Outro e insira um traço.

Isso levará seus dados e os colocará em várias células, como esta Usergroup1 Usergroup2 Usergroup3 ...

3 Dica de bônus:

Se você quiser usar a função find ou search nas várias células que acabou de dividir, faça uma concatenação das células em uma célula (inverta basicamente a divisão) e, em seguida, pesquise os valores concatenados. A7 = CONCATENAR (A1; A2; A3) A8 = FIND ("WTS"; A7)

    
por 27.09.2017 / 06:07