Supongamos que tengo algunos nombres en las celdas B1:B3y una lista completa de todos los nombres A1:A4, ¿es posible que genere una lista de nombres en los A1:A4que no aparecen B1:B3?
Por ejemplo, las celdas A1:A4tienen "A", "B", "C", "D", si B1:B3contienen "A", "C", "D", entonces quiero obtener "B".
Miré a través de la lista de funciones pero no pude encontrar la manera de hacerlo.
Actualización : con la ayuda de Lance, la fórmula que se me ocurrió fue:
FILTER(A1:A4, A1:A4<>B1, A1:A4<>B2, A1:A4<>B3)
Esto da el resultado correcto, sin embargo, todavía tengo un problema. El problema es que mis células B1:Bxpueden expandirse. Estoy administrando un equipo deportivo y utilizo un formulario de Google Docs para que las personas lo envíen, seleccionan su nombre de una lista de selección y seleccionan un botón de opción "Sí" (puedo jugar) o "No" (estoy fuera). Lo que quiero lograr aquí es mostrar en mi hoja de cálculo a las personas que no han respondido. El objetivo es actualizar esta lista automáticamente después de cada nuevo envío. Desafortunadamente, cuando se completan nuevas filas en la hoja de cálculo, la fórmula se arruinaría. No estoy seguro de si hay una solución para esto.
Actualización 2 : encontré una solución alternativa. Copié las células de B1:Bxotra región C1:Cxprimero, luego usé la fórmula anterior pero en contra C1:Cx. Ahora incluso se B1:Bxexpande, la fórmula sigue siendo válida.
fuente

Respuestas:
WOW, iba a buscarte una solución exacta, Google Docs es muy frustrante. Script-loop City.
Puede hacer esto con la función de hoja de trabajo FILTER, con su arrayCondition_1 siendo una fórmula de funciones que proporciona un valor verdadero para cada línea que no está duplicada. Pude ver que la función MATCH no se podía usar.
fuente
COUNTIFcuenta el número de veces que cada jugador en la columnaAaparece en la columnaBy devuelve una matriz de los recuentos.NOTconvierte los números a valores booleanos (verdadero o falso) y luego toma el inverso.FILTERelimina a los jugadores que aparecieron en laBlista de respuestas de la columna.El truco aquí es que
NOTarroja los conteos a los booleanos. Si un jugador no ha respondido, aparecerá 0 veces en la lista de respuestas. Si han respondido, aparecerán 1 o más veces (tal vez un jugador que intenta cambiar su respuesta enviando la encuesta por segunda vez). 0 a elencosFalsey todos los demás números emitidos aTrue. Por lo tanto, los jugadores que han respondido al mapaTruey aquellos que aún no han respondido al mapaFalse.NOTluego toma el inverso, dándote una máscara de esos jugadores que aún no han respondido.Esta solución admite una lista creciente de envíos que pueden incluir filas en blanco o envíos duplicados. Para limitar el rango específico descrito en la pregunta, use:
=FILTER(A1:A4, NOT(COUNTIF(B:B,A1:A4)))fuente
Aquí hay una hoja de cálculo que muestra cómo se puede hacer esto fácilmente:
Establecer operaciones en hojas de cálculo de Google
La unión es
={setA; setB}La diferencia es
=filter(setA, iferror(MATCH(setA, setB, false)))La intersección es
=filter(setA; MATCH(setA, setB, false))Explicación
setAysetBse pueden denominar rangos o puede usar la notación de rango normal. Los rangos con nombre solo aclaran esto.Union es solo una nueva gama hecha al yuxtaponer ambas gamas.
Intersección (más fácil siguiente) depende en busca de indicios de
setAensetBdonde las salidas, y filtrando la cerda de eso.La diferencia es similar, pero se filtra
setApara seleccionar solo miembros donde no se encuentra el índicesetB.Crédito adicional
La unión con eliminación duplicada es solo setA + (setB-setA) , así que por lo anterior
fuente