Saya telah membuat Google spreadsheet (bertindak sebagai basis data) yang memiliki banyak kolom, nama menjadi salah satunya, dan saya ingin memastikan bidang nama selalu unik dan tidak ada baris yang dapat dibuat jika bidang nama sama dengan yang lain baris.
Pada dasarnya saya ingin membuat kunci utama untuk basis data. Adakah yang tahu cara melakukan ini di Google Spreadsheets?
Jika ini membantu, saya membuat formulir untuk pergi dengan Google Spreadsheet (database) yang akan memasukkan data ke lembar dan akan senang untuk memastikan pengguna tidak memasukkan nama yang sama dengan orang lain dalam daftar.
google-sheets
Rubén
sumber
sumber
Jawaban:
Jika Anda menempatkan ini sebagai Formula Khusus untuk aturan Validasi Data untuk Kolom A, Kolom A akan menolak semua duplikat.
sumber
A1
? Haruskah saya mengubahnyaA2
jika data saya mulai di baris kedua?Saya tidak punya solusi jika Anda bersikeras menggunakan formulir, tetapi sebaliknya saya punya solusi yang sangat sederhana: Katakanlah kolom uniknya adalah A. Kemudian Anda membuat aturan validasi data berikut pada A2 (catatan pertama setelah header) :
=COUNTIF($A$1:$A$999,A2)<=1
. Kemudian, Anda menyalin sel dan memilih seluruh kolom, klik kanan, perluas submenu tempel khusus , dan klik tempelkan validasi data saja . Itu dia!sumber
Anda meminta kebalikan dari validasi data dari daftar. Akibatnya, Anda ingin validasi data gagal, bukannya berhasil, jika nilainya ada dalam daftar. Ini tidak mungkin dengan validasi data, tetapi skrip dapat melakukannya.
Pertimbangkan skrip berikut. Skrip ini memantau semua pengeditan, dan memunculkan kotak pesan ketika nilai sel menduplikasi nilai sel lainnya di kolom yang sama.
Akan ada berbagai penyempurnaan praktis yang dibutuhkan. Misalnya, Anda dapat memilih untuk memantau hanya kolom tertentu, dan Anda dapat memilih untuk mengambil tindakan tambahan, seperti mengosongkan nilai sel. Anda mungkin perlu penanganan khusus untuk nilai kosong (hilang). Tapi ini memberi Anda teknik dasar yang akan memungkinkan Anda memvalidasi.
Memperbarui:
Untuk menguraikan jawaban asli saya pikir saya akan menambahkan beberapa validasi yang saya gunakan secara pribadi yang disebutkan dalam jawaban.
// Ini fungsi yang saya gunakan untuk memastikan bahwa hanya satu sel yang sedang diedit.
Untuk menggunakannya lewati saja validasi jika lebih dari satu sel diedit
Anda juga dapat melewati validasi jika barisnya bukan baris pertama:
Catatan: Saya tidak dapat mengingat dari atas kepala saya jika penghitungan baris dimulai pada 0 atau 1 sehingga kode ini mungkin memiliki bug
Kunci validasi onEdit adalah keluar sedini mungkin untuk menyelamatkan dari perhitungan yang tidak perlu. Keluar tercepat dari suatu fungsi adalah pernyataan pengembalian kosong.
sumber