Utworzyłem arkusz kalkulacyjny Google (działający jako baza danych), który ma wiele kolumn, z których nazwa jest jedną z nich, i chciałam się upewnić, że pole nazwy jest zawsze unikalne i nie można utworzyć wiersza, jeśli pole nazwy jest takie samo jak inne rząd.
Zasadniczo chcę utworzyć klucz podstawowy dla bazy danych. Czy ktoś wie, jak to zrobić w Arkuszach Google?
Jeśli to pomoże, utworzyłem formularz, który można użyć z Arkuszem kalkulacyjnym Google (bazą danych), który wprowadzi dane do arkusza i chciałbym upewnić się, że użytkownik nie wprowadzi już tej samej nazwy, co ktoś inny na liście.
google-sheets
Ruben
źródło
źródło
Odpowiedzi:
Jeśli wstawisz to jako formułę niestandardową dla reguły sprawdzania poprawności danych dla kolumny A, kolumna A odrzuci wszystkie duplikaty.
źródło
A1
skrót? Czy powinienem to zmienić,A2
jeśli moje dane zaczynają się od drugiego rzędu?Nie mam rozwiązania, jeśli nalegasz na użycie formularza, ale poza tym mam bardzo proste rozwiązanie: powiedzmy, że unikalna kolumna to A. Następnie tworzysz następującą regułę sprawdzania poprawności danych na A2 (pierwszy rekord po nagłówku) :
=COUNTIF($A$1:$A$999,A2)<=1
. Następnie skopiuj komórkę i zaznacz całą kolumnę, kliknij prawym przyciskiem myszy, rozwiń podmenu wklej specjalne i kliknij Tylko wklej sprawdzanie poprawności danych . To jest to!źródło
Pytasz o przeciwieństwo sprawdzania poprawności danych z listy. W efekcie chcesz, aby sprawdzanie poprawności danych zakończyło się niepowodzeniem, a nie powodzeniem, jeśli wartość jest na liście. Nie jest to możliwe w przypadku sprawdzania poprawności danych, ale skrypt może to zrobić.
Rozważ następujący skrypt. Ten skrypt monitoruje wszystkie zmiany i wyświetla okno komunikatu, gdy wartość komórki powiela dowolną inną wartość komórki w tej samej kolumnie.
Potrzebne będą różne udoskonalenia praktyczne. Na przykład możesz zdecydować się na monitorowanie tylko niektórych kolumn i możesz podjąć dodatkowe działania, takie jak wykasowanie wartości komórki. Może być potrzebna specjalna obsługa pustych (brakujących) wartości. Ale to daje podstawową technikę, która pozwoli ci potwierdzić.
Aktualizacja:
Aby rozwinąć pierwotną odpowiedź, pomyślałem, że dodam kilka poprawek, których osobiście używam, które zostały wymienione w odpowiedzi.
// Oto funkcja, której używam, aby zapewnić, że edytowana jest tylko jedna komórka.
Aby go użyć, po prostu pomiń sprawdzanie poprawności, jeśli edytowanych jest więcej niż jedna komórka
Możesz także pominąć sprawdzanie poprawności, jeśli wiersz nie jest pierwszym wierszem:
Uwaga: nie pamiętam z góry głowy, jeśli liczenie wierszy zaczyna się od 0 lub 1, więc ten kod może zawierać błąd
Kluczem do sprawdzania poprawności onEdit jest jak najwcześniejsze wyjście, aby zaoszczędzić na niepotrzebnych obliczeniach. Najszybszym wyjściem z funkcji jest pusta instrukcja return.
źródło