Suponha que eu tenha alguns nomes nas células B1:B3
e uma lista completa de todos os nomes A1:A4
, é possível gerar uma lista de nomes A1:A4
que não aparecem B1:B3
?
Por exemplo, as células A1:A4
têm "A", "B", "C", "D", se B1:B3
contiverem "A", "C", "D", então eu quero obter "B".
Examinei a lista de funções, mas não consegui descobrir como fazê-lo.
Atualização : Com a ajuda de Lance, a fórmula que inventei foi:
FILTER(A1:A4, A1:A4<>B1, A1:A4<>B2, A1:A4<>B3)
Isso dá o resultado certo, mas ainda tenho um problema. O problema é que minhas células B1:Bx
podem se expandir. Estou gerenciando uma equipe esportiva e, usando um formulário do Google Docs para que as pessoas enviem, elas selecionam seu nome em uma lista de opções e escolhem um botão de opção "Sim" (eu posso jogar) ou "Não" (saio). O que eu quero alcançar aqui é exibir na minha planilha as pessoas que não responderam. O objetivo é atualizar esta lista automaticamente após cada novo envio. Infelizmente, quando novas linhas são preenchidas na planilha, a fórmula seria estragada. Não tenho certeza se existe uma solução para isso.
Atualização 2 : Encontrei uma solução alternativa. Copiei as células de B1:Bx
para outra região C1:Cx
primeiro e depois usei a fórmula acima, mas contra C1:Cx
. Agora, mesmo se B1:Bx
expande, a fórmula ainda é válida.
fonte
Respostas:
WOW, eu estava indo buscar uma solução exata, o Google Docs é tão frustrante. Cidade de loop de script.
Você pode fazer isso com a função de planilha FILTER, com sua arrayCondition_1 sendo uma fórmula de funções que fornece um valor verdadeiro para cada linha que não é enganada. Pude ver que a função MATCH não podia ser usada.
fonte
COUNTIF
conta o número de vezes que cada jogador na colunaA
aparece na colunaB
e retorna uma matriz das contagens.NOT
lança os números em valores booleanos (verdadeiro ou falso) e, em seguida, assume o inverso.FILTER
remove os jogadores que apareceram naB
lista de respostas da coluna.O truque aqui é que
NOT
lança as contagens para os booleanos. Se um jogador não responder, ele aparecerá 0 vezes na lista de respostas. Se eles responderem, aparecerão 1 ou mais vezes (talvez um jogador tentando alterar sua resposta enviando a pesquisa uma segunda vez). 0 lança paraFalse
e todos os outros números lançados paraTrue
. Portanto, os jogadores que responderam mapeiamTrue
e os que ainda não responderam mapeiamFalse
.NOT
então pega o inverso, dando a você uma máscara desses jogadores ainda a responder.Esta solução oferece suporte a uma lista crescente de envios que podem incluir linhas em branco ou envios duplicados. Para limitar ao intervalo específico descrito na pergunta, use:
=FILTER(A1:A4, NOT(COUNTIF(B:B,A1:A4)))
fonte
Aqui está uma planilha mostrando como isso pode ser feito facilmente:
Definir operações no Planilhas Google
União é
={setA; setB}
Diferença é
=filter(setA, iferror(MATCH(setA, setB, false)))
A interseção é
=filter(setA; MATCH(setA, setB, false))
Explicação
setA
esetB
pode ser nomeado intervalos ou você pode usar a notação de intervalo normal. Intervalos nomeados apenas tornam isso mais claro.A união é apenas uma nova faixa feita justapondo as duas faixas.
Intersecção (ao lado mais fácil) depende procurando índices de
setA
nosetB
onde sai, e filtrar Seta por isso.A diferença é semelhante, mas filtros
setA
para selecionar apenas membros em que a localização do índicesetB
não é encontrada.Crédito extra
A união com eliminação duplicada é apenas setA + (setB-setA) , portanto, pelos itens acima
fonte