Jak wykonać prostą operację ustawiania w arkuszu kalkulacyjnym Dokumentów Google?

10

Załóżmy, że mam kilka nazw w komórkach B1:B3i pełną listę wszystkich nazw w A1:A4, czy mogę wygenerować listę nazw, w A1:A4których się nie pojawia B1:B3?

Np. Komórki A1:A4mają „A”, „B”, „C”, „D”, jeśli B1:B3zawierają „A”, „C”, „D”, to chcę uzyskać „B”.

Przejrzałem listę funkcji, ale nie mogłem wymyślić, jak to zrobić.

Aktualizacja : Z pomocą Lance opracowałem formułę:

FILTER(A1:A4, A1:A4<>B1, A1:A4<>B2, A1:A4<>B3)

To daje właściwy wynik, jednak wciąż mam problem. Problem polega na tym, że moje komórki B1:Bxmogą się rozwijać. Zarządzam drużyną sportową i korzystam z formularza Dokumentów Google, aby ludzie mogli je przesłać, wybierają oni swoje nazwisko z listy wyboru i wybierają przycisk opcji „Tak” (mogę grać) lub „Nie” (nie ma mnie). Chcę w tym miejscu wyświetlić w arkuszu kalkulacyjnym osoby, które nie odpowiedziały. Celem jest automatyczna aktualizacja tej listy po każdym nowym przesłaniu. Niestety, gdy nowe arkusze zostaną wypełnione w arkuszu kalkulacyjnym, formuła zostanie zepsuta. Nie jestem pewien, czy istnieje na to rozwiązanie.

Aktualizacja 2 : Znalazłem obejście. Najpierw skopiowałem komórki z B1:Bxinnego regionu C1:Cx, a potem użyłem powyższej formuły, ale przeciw C1:Cx. Teraz nawet się B1:Bxrozwija, formuła jest nadal aktualna.

grokus
źródło
Rozwiązaniem problemu rozszerzającego się jest użycie nazwanego zakresu. Prawdopodobnie zajmie to trochę pracy, aby uzyskać odpowiedni filtr.
Lance Roberts
@Lance, znalazłem obejście i ponownie zaktualizowałem swój post. Dzięki.
grokus
1
Świetne pytanie, znalazłem je sam, szukając tej odpowiedzi. Twoje obejście jest całkiem dobre, ale myślę, że w końcu dostałem dokładnie to, czego szukałeś. Sprawdź moją odpowiedź poniżej.
Anthony DiSanti

Odpowiedzi:

5

WOW, chciałem znaleźć ci dokładne rozwiązanie, Dokumenty Google są tak frustrujące. Miasto z pętlą skryptową.

Możesz to zrobić za pomocą funkcji arkusza FILTER, a tablicaCondition_1 jest formułą funkcji, która daje prawdziwą wartość dla każdego wiersza, który nie jest kopiowany. Widziałem, że nie można użyć funkcji MATCH.

Lance Roberts
źródło
1
Odkryłem, że korzystanie z Chrome jest znacznie lepsze w przypadku Dokumentów Google.
grokus
Dzisiejszy dzień jest dla mnie szalony, ale jeśli pamiętam, zrobię sobie przerwę w tym tygodniu (jeśli do tego czasu nie znalazłem odpowiedzi).
Lance Roberts,
jest OK, mogłem użyć FILTER, aby uzyskać pożądane wyniki. Dzięki.
grokus
@grokus, świetnie, powinieneś opublikować formułę użytą dla odniesienia do przyszłych czytelników.
Lance Roberts
Zaktualizowałem swój oryginalny post.
grokus
4
=FILTER(A:A, NOT(COUNTIF(B:B, A:A)))

COUNTIFzlicza liczbę wyświetleń każdego gracza Aw kolumnie Bi zwraca tablicę zliczeń.

NOT rzutuje liczby na wartości boolowskie (prawda lub fałsz), a następnie przyjmuje odwrotność.

FILTER usuwa graczy, którzy pojawili się w B liście odpowiedzi kolumnie.

Sztuczka polega na tym, NOTże oblicza liczbę na booleany. Jeśli gracz nie odpowiedział, pojawi się 0 razy na liście odpowiedzi. Jeśli odpowiedzieli, pojawią się 1 lub więcej razy (być może gracz próbuje zmienić odpowiedź, przesyłając ankietę po raz drugi). 0 rzutów na Falsei wszystkie inne liczby rzutów na True. Tak więc gracze, którzy odpowiedzieli na mapę Truei ci, którzy jeszcze nie odpowiedzieli na mapę False. NOTnastępnie odwraca, dając maskę tych graczy, którzy jeszcze nie zareagowali.

To rozwiązanie obsługuje rosnącą listę zgłoszeń, które mogą zawierać puste wiersze lub duplikaty zgłoszeń. Aby ograniczyć się do określonego zakresu opisanego w pytaniu, użyj:=FILTER(A1:A4, NOT(COUNTIF(B:B,A1:A4)))

Anthony DiSanti
źródło
geniusz 20charlimit
Fadeway
0

Oto arkusz kalkulacyjny pokazujący, jak można to łatwo zrobić:

Ustaw operacje w Arkuszach Google

Unia jest ={setA; setB}

Różnica jest taka =filter(setA, iferror(MATCH(setA, setB, false)))

Skrzyżowanie jest =filter(setA; MATCH(setA, setB, false))

Wyjaśnienie setA i setBmożna je nazwać zakresami lub można użyć normalnego zapisu zakresu. Nazwane zakresy właśnie to wyjaśniają.

Union to po prostu nowy asortyment stworzony przez zestawienie obu zakresów.

Przecięcie (następne najłatwiejsze) zależy od szukania indeksów setAwsetB którym wychodzą, i filtrowania przez to zestawu A.

Różnica jest podobna, ale filtry setAwybierają tylko członków, w których znajduje się indekssetB .

Dodatkowy kredyt

Zjednoczenie ze zduplikowaną eliminacją to po prostu setA + (setB-setA) , a więc powyżej

={setA;filter(setB, iserror(MATCH(setB,setA,false)))}
marc meyer
źródło