Google Sheets - Validasi data dari rentang horizontal
Saya mencoba melakukan sesuatu yang tampaknya cukup lurus ke depan. Dalam D15aturan validasi sel ( ), saya ingin memilih, List from a rangedan menentukan rentang yang horizontal, bukan vertikal. Silakan lihat screenshot penjelasan diri berikut.
Namun, ini tidak berhasil. Drop-down hanya menampilkan data dari kolom pertama dari rentang yang diberikan. Lihat gambar di bawah.
Bagaimana saya bisa membuat ini bekerja? Saya berharap untuk melihat - Kucing, Tikus, Singa, dan Rusa di daftar tarik-turun.
PS: Mengatur item yang saya inginkan dalam daftar, secara vertikal, bukanlah suatu pilihan.
SOLUSI Pada prinsipnya mirip dengan jawaban yang diterima oleh @Marios, saya menemukan solusi untuk kasus penggunaan saya di sini . Sayangnya, AppScript tampaknya menjadi satu-satunya jawaban.
Jawaban
Solusi alternatif:
Bagaimana dengan solusi Skrip Google Apps berikut .
Kode berikut akan membuat validasi data di sel D15 dan nilai validasi data diberikan oleh rentang E15: H15 :
function setDataValidation() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getActiveSheet();
var cell = sh.getRange('D15'); // data validation cell
var range = sh.getRange('E15:H15'); // range of options
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build();
cell.setDataValidation(rule);
}
Instruksi:
- Klik pada Alat => Editor skrip :
- Salin dan Tempel cuplikan kode yang disebutkan di atas ke dalam editor skrip dan klik jalankan (tombol putar):
Ide lebih lanjut:
- Alih-alih menjalankan fungsi dari editor skrip, Anda dapat membuat tombol di UI lembar Google untuk menjalankan fungsi ini untuk Anda.
- Pendekatan lain adalah bagi pengguna untuk memilih kisaran daftar yang dia inginkan sebagai nilai untuk sel validasi data dan kemudian klik tombol untuk secara otomatis membuat sel validasi data untuknya.
- Anda juga dapat membuat pemicu untuk membuat sel validasi data saat ada yang diedit.
- Alih-alih membuat validasi data hanya untuk satu sel, Anda dapat melakukannya untuk berbagai sel, dll.
Referensi:
- Google Apps Script
- Kelas DataValidation
- Pemicu
Ini sepertinya bug di aplikasi web desktop:
- Jarak horizontal atau arah vertikal dari jarak bukanlah masalah
- Namun, ketika rentang horizontal digunakan, rentang validasi data tidak menerima satu rentang tertutup (
F3) dan satu rentang terbuka (3) (F3:3). Jika kedua ujungnya- open
3:3,: Validasi data berhasil - ditutup
F3:M3,: Validasi data berhasil - satu sisi terbuka dan satu sisi ditutup:
F3:3. Ini seharusnya benar-benar menghitung kolom terakhir dan memasukkan kisaran yang sesuai. Tapi, dialog input validasi data menghilangkan open end dan menyimpan input seperti ituF3. Ini menghasilkan hanya satu drop-down sel seperti yang ditunjukkan dalam pertanyaan Anda.
- open
- Jika Anda dapat mengabaikan dialog modal validasi data dan memaksa
F3:3masuk ke konfigurasi validasi data (misalnya melalui aplikasi seluler atau skrip resmi), validasi data disetel dengan benar. - Pertimbangkan untuk mengirim umpan balik ke Google bersama dengan posting ini menggunakan Help> Help sheets improvement.
Saya memahami bahwa Anda ingin menampilkan nilai-nilai tersebut secara horizontal sehingga menyusunnya secara vertikal di lembar itu bukanlah suatu pilihan, tetapi dapatkah Anda melakukannya di tempat lain?
Dalam situasi seperti ini, saya lebih suka memiliki setidaknya satu sheet lain di mana saya dapat mencantumkan nilai input – sebut saja sheet itu "INPUT". Di setiap kolom, saya dapat mencantumkan nilai secara manual atau menggunakan beberapa rumus untuk mengisinya secara manual (misalnya =TRANSPOSE('Dynamic Brands'!E15:15)). Sekarang saya dapat menggunakan rentang baru tersebut dalam validasi data.
Alternatifnya, Anda dapat membuat validasi data dengan data baris, tetapi tanpa fitur "Tampilkan daftar tarik-turun dalam sel" . Ubah kriteria Anda menjadi rumus kustom dan gunakan rumus ini=ISNUMBER(MATCH('Dynamic Brands'!D15, 'Dynamic Brands'!E15:15, 0))
Jika rentang kolom Anda tidak dinamis, pilih rentang akhir kolom Anda bersama dengan baris yaitu dengan contoh yang diberikan alih-alih memasukkan rentang sebagai E15:15rentang yang ditetapkan karena E15:H15itu akan mengisi semua rentang Anda di dropdown