Sou iniciante em planilhas, então espero que você me perdoe se eu fizer 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, Cláudio". Quero atribuir-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 "policy", talvez eu possa pesquisar / exibir / alternar com essa tag.
Talvez, de preferência, todas as tags estejam em uma célula, com cada palavra separada por vírgula. Se cada palavra estivesse em uma célula própria, isso tornaria a mesa muito confusa, eu acho.
Também estou aberto a outras soluções de rotulagem.
Obrigado!
microsoft-excel
spreadsheet
google-spreadsheets
nusantara
fonte
fonte
Respostas:
Tanto quanto sei, não há recursos internos que possam analisar e resumir tags separadas por vírgula no Excel. Obviamente, você pode 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.
Etapa 1 : pressione Alt+ F11para abrir o painel do editor VBA no Excel. Insira um novo módulo e cole neste código para uma função personalizada.
Esta função permitirá que você crie 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, digite a seguinte fórmula pressionando Ctrl+ Shift+ Enter.
Pressionando Ctrl+ Shift+ Enter, você está inserindo a fórmula como uma fórmula de matriz. Aparecerá cercado
{...}
na barra de fórmulas. Note-se que na fórmula$B$2:$B$6
é o intervalo que contém todas as marcas para os itens listados no$A$2:$A$6
.EDIT:
Se você não se importa que suas correspondências sejam listadas em uma coluna, e não em uma lista em uma célula, você pode retornar correspondências para tags usando apenas as funções da planilha.
Onde seus títulos estão em
Column A
, as tags estão emColumn B
, ea marca que você está procurando está emH2
, você pode usar a seguinte fórmula de matriz emI2
e preencher para baixo tanto quanto você precisa:A fórmula funciona formando primeiro uma matriz de números com base em se as tags em cada linha contêm o termo de pesquisa. Se uma correspondência for encontrada, o número da linha é armazenado na matriz. Se não for encontrado, 2000000 é armazenado na matriz. A seguir, a
SMALL(<array>,ROW()-1)
parte da fórmula retorna oROW()-1
menor valor da matriz. Em seguida, esse valor é passado como um argumento de índice para aINDEX()
função, onde o valor nesse índice na matriz de títulos é retornado. Se um número maior que o número de linhas na matriz de títulos for passadoINDEX()
como argumento, um erro será retornado. Como 2000000 é passado como argumento quando nenhuma correspondência é encontrada, um erro é retornado. AIFERROR()
função então retorna""
neste caso.É importante entender como
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 daSMALL()
função para que ela retorne o primeiro menor valor da matriz. Por exemplo, se sua lista de resultados começa na Linha 1 em vez da Linha 2, você usaria emSMALL(...,ROW())
vez deSMALL(...,ROW()-1)
.Além disso, se sua lista de títulos e tags não começar na Linha 1, você precisará ajustar a fórmula também. O segundo argumento da
IF()
função deve ser ajustado para que uma correspondência na primeira linha dos 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 emIF(...,ROW($A$2:$A$7)-1,...)
vez deIF(...,ROW($A$1:$A$6),...)
.fonte
CONCATENATE
função no Excel não pode aceitar uma matriz como argumento (ele somente lê o primeiro item da matriz se você tentar). A função VBA é criada para criar listas separadas por vírgula a partir de uma matriz de valores.Embora fazer isso programaticamente funcione bem em alguns casos, descobri que uma abordagem manual funcionou para mim. Usando colunas para tags, você pode marcar facilmente um item de linha inserindo um 0 na coluna. Você tem uma linha e insere 1s em cada uma das colunas de tags 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 os resultados filtrados (0s) e tudo o mais (_).
Isso tem algumas vantagens. 1. Você não precisa digitar sua tag sempre. 2. Você pode facilmente fazer referência cruzada para verificar se possui itens duplicados ou similares que podem ser reduzidos a um.
fonte
Outra ideia:
Use a funcionalidade de filtro embutido. Filtre pela coluna Tags e, em seguida, você pode procurar linhas que contenham uma determinada tag.
Uma linha com a lista de tags: comédia, horror, romance
apareceria ao procurar qualquer uma dessas três tags.
fonte
Minha abordagem não-VBA é listar as tags em uma coluna (digamos, coluna H), separando itens com vírgulas. A partir daí, uso uma combinação de "Texto para colunas" e "Remover duplicatas" para obter minha lista de tags. Copio isso para a linha de cabeçalho da minha planilha principal (nesse caso, começando na coluna L.) Em cada célula abaixo dos cabeçalhos de tags individuais, insira o seguinte:
Isso oferece 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 de ler para o computador. É dinâmico se você permanecer dentro do conjunto de tags especificado. Caso contrário, você precisará adicionar sua nova tag à linha do cabeçalho e copiar suas fórmulas.
A partir daí, as tabelas dinâmicas são suas amigas.
fonte
Não está claro para mim exatamente como você deseja usar as tags. Mas no Planilhas Google, você pode usar a função SPLIT () para dividir uma sequência de tags (delimitada por espaços, vírgulas ou o que quiser) em várias outras células, e tenho certeza que até o Excel tem uma função que pode pesquisar um célula para uma tag.
fonte