Angenommen, ich habe einige Namen in Zellen B1:B3
und eine vollständige Liste aller Namen in A1:A4
. Kann ich eine Liste mit Namen erstellen A1:A4
, die nicht in enthalten sind B1:B3
?
ZB haben Zellen A1:A4
"A", "B", "C", "D", wenn B1:B3
sie "A", "C", "D" enthalten, dann möchte ich "B" erhalten.
Ich habe die Funktionsliste durchgesehen , konnte aber nicht herausfinden, wie es geht.
Update : Mit Lance Hilfe der Formel I herauskam , war:
FILTER(A1:A4, A1:A4<>B1, A1:A4<>B2, A1:A4<>B3)
Dies ergibt das richtige Ergebnis, ich habe jedoch immer noch ein Problem. Das Problem ist, dass sich meine Zellen B1:Bx
ausdehnen können. Ich leite ein Sportteam und verwende ein Google Text & Tabellen-Formular, damit die Leute es einreichen können. Sie wählen ihren Namen aus einer Auswahlliste aus und wählen ein Optionsfeld "Ja" (ich kann spielen) oder "Nein" (ich bin raus). Was ich hier erreichen möchte, ist, in meiner Tabelle diejenigen Personen anzuzeigen, die nicht geantwortet haben. Ziel ist es, diese Liste nach jeder neuen Einreichung automatisch zu aktualisieren. Wenn neue Zeilen in die Tabelle eingefügt werden, wird die Formel leider durcheinander gebracht. Ich bin mir nicht sicher, ob es dafür eine Lösung gibt.
Update 2 : Ich habe eine Lösung gefunden. Ich habe die Zellen zuerst B1:Bx
in eine andere Region kopiert C1:Cx
und dann die obige Formel verwendet, aber dagegen C1:Cx
. Jetzt sogar B1:Bx
erweitert, ist die Formel noch gültig.
quelle
Antworten:
WOW, ich wollte Ihnen eine genaue Lösung geben, Google Text & Tabellen ist so frustrierend. Script-Loop-Stadt.
Sie können dies mit der Arbeitsblattfunktion FILTER tun, wobei Ihre arrayCondition_1 eine Funktionsformel ist, die für jede Zeile, die nicht betrogen wird, einen wahren Wert angibt. Ich konnte sehen, dass die MATCH-Funktion nicht verwendet werden konnte.
quelle
COUNTIF
Zählt, wie oft jeder Spieler in der Spalte in der SpalteA
angezeigt wird,B
und gibt ein Array der Zählungen zurück.NOT
wandelt die Zahlen in boolesche Werte (wahr oder falsch) um und nimmt dann die Umkehrung.FILTER
Entfernt die Spieler, die in derB
Spaltenantwortliste angezeigt wurden.Der Trick dabei ist, dass
NOT
die Zählungen in Boolesche Werte umgewandelt werden. Wenn ein Spieler nicht geantwortet hat, wird er 0 Mal in der Liste der Antworten angezeigt. Wenn sie geantwortet haben, werden sie mindestens einmal angezeigt (möglicherweise versucht ein Spieler, seine Antwort zu ändern, indem er die Umfrage ein zweites Mal einreicht). 0 wirft aufFalse
und alle anderen Zahlen aufTrue
. Also Spieler, die auf die Karte geantwortet habenTrue
und auf die noch nicht geantwortet habenFalse
.NOT
nimmt dann die Umkehrung und gibt Ihnen eine Maske der Spieler, die noch nicht geantwortet haben.Diese Lösung unterstützt eine wachsende Liste von Einsendungen, die leere Zeilen oder doppelte Einsendungen enthalten können. Um auf den in der Frage beschriebenen spezifischen Bereich zu beschränken, verwenden Sie:
=FILTER(A1:A4, NOT(COUNTIF(B:B,A1:A4)))
quelle
Hier ist eine Tabelle, die zeigt, wie dies einfach gemacht werden kann:
Festlegen von Vorgängen in Google Sheets
Union ist
={setA; setB}
Der Unterschied ist
=filter(setA, iferror(MATCH(setA, setB, false)))
Schnittpunkt ist
=filter(setA; MATCH(setA, setB, false))
Erläuterung
setA
undsetB
kann als Bereiche bezeichnet werden, oder Sie können die normale Bereichsnotation verwenden. Benannte Bereiche machen dies nur klarer.Union ist nur eine neue Produktreihe, bei der beide Produktreihen nebeneinander stehen.
Der Schnittpunkt (am einfachsten) hängt davon ab , ob nach Indizes gesucht wird,
setA
ansetB
denen sie beendet werden, und setA danach gefiltert wird.Der Unterschied ist ähnlich, aber Filter
setA
, um nur Mitglieder auszuwählen, bei denen der IndexsetB
nicht gefunden wird.Zusätzliches Guthaben
Die Vereinigung mit doppelter Eliminierung ist nur setA + (setB-setA) , also wie oben
quelle