Czy w Formularzach Google można nadać unikalną wartość każdemu wierszowi, który wstawia do arkusza kalkulacyjnego, a także znacznikowi czasu?
google-sheets
google-forms
Toby Allen
źródło
źródło
Odpowiedzi:
Możesz to zrobić, dodając wyzwalacz skryptu.
Załóżmy, że twój obecny formularz ma dwie kolumny
Timestamp
i odpowiedź na jedno pytanie. Więc obecnie masz kolumny A i B wypełniające się danymi. Załóżmy, że chcesz, aby kolumna C zawierała numer automatycznego przyrostu.Najpierw musisz przejść do
Tools
>Script Editor
W oknie edytora skryptów wprowadź następujący skrypt:
Zapisz skrypt, a następnie przejdź do
Triggers
menu i wybierzCurrent script's triggers
Wypełnij menu rozwijane w następujący sposób:
Kliknij
Save
Następnie zapisz i zamknij okno Google App Script.
Teraz, gdy formularz zostanie przesłany, wypełni numer wiersza w kolumnie C wraz z danymi przesłanymi za pośrednictwem formularza.
Jeśli chcesz zmienić kolumnę, w której zapisany jest numer wiersza, musisz zmienić ten wiersz skryptu:
sheet.getRange(row,3).setValue(row);
i zmień wartość 3 na odpowiedni numer indeksu kolumny.
źródło
Oprócz doskonałej odpowiedzi Barry'ego, jeśli chcesz móc usuwać wiersze i nadal mieć unikalny identyfikator, możesz mieć statyczną komórkę, która utrzymuje liczbę. Następnie możesz użyć tego numeru i zwiększać go przy każdym nowym wpisie do tabeli.
Modyfikacja polegałaby więc na tym, aby gdzieś w arkuszu kalkulacyjnym zachować liczbę („M1” w poniższym kodzie) i zmodyfikować kod, aby wyglądał następująco:
Ponownie zmień drugi ostatni wiersz, aby zmienić miejsce, w którym znajduje się Twój identyfikator.
źródło
Opierając się na obu poprzednich odpowiedziach (od Barry'ego i Danny'ego):
Zakładając, że kolumna ID to kolumna A. Wybierz komórkę „Następny identyfikator” i ustaw ją na następującą formułę (zakładając, że jest ona w „P1”):
Utwórz skrypt za pomocą edytora skryptów w menu „Narzędzia” i wklej:
Dodaj wyzwalacz skryptu za pomocą menu „Wyzwalacze” w edytorze skryptów:
źródło
W odpowiedzi na powyższe odpowiedzi - To rozwiązanie nie wymaga dodatkowej komórki arkusza kalkulacyjnego.
Możesz użyć wbudowanej obsługi zdarzeń do przesłania formularza, aby uzyskać unikalny identyfikator. Ponieważ arkusz kalkulacyjny jest tylko miejscem docelowym formularza, usunięcie wiersza nie powoduje usunięcia odpowiedzi. Pamiętając o tym...
EDYCJA: usunięto potrzebę posiadania identyfikatora i rozwiązano problemy z formatowaniem daty.
źródło
getUniqueID
Funkcja może być znacznie uproszczone poprzez proste odesłanie długość odpowiedzi do tej pory (to właśnie logika tej funkcji opisano powyżej robi w dość pokrętny sposób). Zasadniczo pojedyncza linia w funkcji:return getConnectedForm().getResponses().length;
Jest to pochodna innych odpowiedzi, ale może być przydatna dla przyszłych użytkowników.
Główną różnicą jest to, że zaktualizuje kolumnę 1 w aktywnym wierszu podczas edycji tego wiersza, ale tylko wtedy, gdy nie określono jeszcze wartości.
Powinieneś ustawić wyzwalacz, jak wspomniano w innych odpowiedziach na temat edycji.
źródło
Do „Czy to możliwe, w formularzu Google dać unikalną wartość dla każdego wiersza wstawia do arkusza kalkulacyjnego, a także datownik?” umożliwiając również usunięcie wiersza z formularza Formularz odpowiedzi przed dodaniem kolejnej odpowiedzi bez powielania wartości, powinno to działać:
źródło