Como rotular / marcar itens em uma planilha

12

Sou um novato em planilhas, então espero que você me perdoe se eu estiver fazendo uma pergunta super óbvia.

É possível usar tags na planilha do Excel / Google? Estou criando uma planilha para registrar todos os artigos e livros que estou lendo. Diga que estou lendo "Eu, Claudius". Eu quero dar-lhe estas tags: história, ficção, biografia, deficiência, política, drama. Então, se eu quiser exibir todos os artigos / livros marcados com "política", talvez eu possa pesquisar / exibir / dinamizar com essa tag.

Talvez, de preferência, as tags estejam todas em uma célula, com cada palavra separada por uma vírgula. Se cada palavra estivesse em uma célula própria, isso tornaria a mesa realmente confusa, eu acho.

Estou aberto a outras soluções de rotulagem também.

Obrigado!

    
por nusantara 27.03.2012 / 11:23

5 respostas

12

Até onde eu sei, não há recursos integrados que possam analisar e resumir tags separadas por vírgulas no Excel. Você pode, claro, criar sua própria solução com funções de planilha e um pouco de VBA. Aqui está uma solução rápida para fazer isso.

Passo 1 : Pressione Alt + F11 para abrir o painel do editor do VBA no Excel. Insira um novo módulo e cole este código para uma função personalizada.

Public Function CCARRAY(rr As Variant, sep As String)
'rr is the range or array of values you want to concatenate.  sep is the delimiter.
Dim rra() As Variant
Dim out As String
Dim i As Integer

On Error GoTo EH
rra = rr
out = ""
i = 1

Do While i <= UBound(rra, 1)
    If rra(i, 1) <> False Then
        out = out & rra(i, 1) & sep
    End If
    i = i + 1
Loop
out = Left(out, Len(out) - Len(sep))
CCARRAY = out
Exit Function

EH:
rra = rr.Value
Resume Next

End Function

Esta função permite criar listas separadas por vírgula para resumir os dados da tag que você possui.

Etapa 2 : em uma planilha, insira em uma célula (H2 no exemplo abaixo) a tag que você deseja pesquisar. Na célula à direita, insira a seguinte fórmula pressionando Ctrl + Deslocar + Enter .

=IFERROR(CCARRAY(IF(NOT(ISERROR(FIND(H2,$B$2:$B$6))),$A$2:$A$6),", "),"No matches found.")

Pressionando Ctrl + Deslocamento + Enter , você está inserindo a fórmula como uma fórmula de matriz. Ele aparecerá rodeado por {...} na barra de fórmulas. Observe que na fórmula $B$2:$B$6 é o intervalo que contém todas as tags dos itens listados em $A$2:$A$6 .

EDITAR:
Sevocênãoseimportarquesuascorrespondênciassejamlistadasemumacolunaemvezdeemumalistaemumacélula,poderáretornarcorrespondênciasparatagsusandoapenasfunçõesdeplanilha.

OndeseustítulosestãoemColumnA,astagsestãoemColumnBeatagquevocêestáprocurandoestáemH2,vocêpodeusaraseguintematrizdefórmulaemI2epreenchaoquevocêprecisar:

=IFERROR(INDEX($A$1:$A$6,SMALL(IF(NOT(ISERROR(FIND($H$2,$B$1:$B$6))),ROW($B$1:$B$6),2000000),ROW()-1)),"")

Afórmulafuncionaprimeiroformandoumamatrizdenúmeroscombaseemseastagsemcadalinhacontêmotermodepesquisa.Seumacorrespondênciaforencontrada,onúmerodalinhaseráarmazenadonamatriz.Senãoforencontrado,2000000éarmazenadonamatriz.Emseguida,aparteSMALL(<array>,ROW()-1)dafórmularetornaomenorvalorROW()-1thdamatriz.Emseguida,essevalorépassadocomoumargumentodeíndiceparaafunçãoINDEX(),emqueovalornesseíndicenamatrizdetítuloséretornado.SeumnúmeromaiorqueonúmerodelinhasnamatrizdetítulosforpassadoparaINDEX()comoumargumento,umerroseráretornado.Como2000000épassadocomoargumentoquandonenhumacorrespondênciaéencontrada,umerroéretornado.AfunçãoIFERROR()retornaentão"" neste caso.

É importante entender como o ROW() está sendo usado nesta fórmula. Se você deseja exibir sua lista de resultados iniciando em uma linha diferente, será necessário ajustar o segundo argumento da função SMALL() para que ele retorne o primeiro menor valor da matriz. Por exemplo, se sua lista de resultados começar na Linha 1 em vez da Linha 2, você usaria SMALL(...,ROW()) em vez de SMALL(...,ROW()-1) .

Além disso, se sua lista de títulos e tags não for iniciada na Linha 1, você precisará ajustar a fórmula também. O segundo argumento da função IF() deve ser ajustado para que uma correspondência na primeira linha de seus dados retorne 1. Por exemplo, se sua lista de títulos começar na Linha 2 em vez da Linha 1, você precisará da fórmula para incluir IF(...,ROW($A$2:$A$7)-1,...) em vez de IF(...,ROW($A$1:$A$6),...) .

    
por 27.03.2012 / 17:57
2

Ao fazer isso programaticamente funciona bem em alguns casos, encontrei uma abordagem manual trabalhada para mim. Usando colunas para tags, você pode marcar facilmente um item de linha inserindo um 0 na coluna. Em seguida, você tem uma linha e insere 1s em cada uma das colunas da tag dessa linha (é possível colorir essa linha). Então, quando você classifica por uma das tags, a linha 1s (azul) atua como um separador. Entre seus resultados filtrados (0s) e tudo mais (_).

Isso tem algumas vantagens.  1. Você não precisa digitar sua tag a cada vez.  2. Você pode facilmente cruzar a referência para verificar se você tem duplicado ou     itens semelhantes que podem ser reduzidos a um.

    
por 20.03.2016 / 05:17
1

Outra ideia:

Use a funcionalidade de filtro embutido. Filtrar pela coluna "Tags" então você pode pesquisar por linhas que contenham uma determinada tag.

Uma linha com a lista de tags: comédia, horror, romance

apareceria ao pesquisar por qualquer uma dessas três tags.

    
por 05.02.2015 / 14:29
1

Minha abordagem não-VBA é listar tags em uma coluna (digamos, coluna H), separando itens com vírgulas. De lá, eu uso uma combinação de "Text to Columns" e "Remove Duplicates" para obter minha lista de tags. Eu copio após isso na linha de cabeçalho da minha planilha principal (neste caso, começando na coluna L. Então, em cada célula abaixo dos cabeçalhos de tag individuais, insira o seguinte:

=IF((ISNUMBER(SEARCH(L$1,$H2)))=TRUE,1,0)

Isso dá o melhor dos dois mundos - a coluna de tags (H) é fácil para as pessoas lerem; as colunas de tags individuais (com seus 0s e 1s) são fáceis para o computador ler. É dinâmico se você permanecer dentro do conjunto de tags fornecido; se não, você precisa adicionar sua nova tag à linha de cabeçalho e depois copiar suas fórmulas.

De lá, as mesas dinâmicas são suas amigas.

    
por 27.03.2018 / 22:20
0

Não está claro para mim exatamente como você deseja usar as tags. No Planilhas Google, no entanto, você pode usar a função SPLIT () para dividir uma sequência de tags ( delimitado por espaços, vírgulas ou o que você quiser) em várias outras células, e tenho certeza que até mesmo o Excel tem uma função que pode pesquisar uma célula por uma tag.

    
por 29.10.2014 / 23:25