Daftar Isi
Tutorial ini menunjukkan cara melakukan validasi data di Excel menggunakan ekspresi reguler dengan bantuan fungsi RegexMatch kustom.
Ketika datang untuk membatasi input pengguna di lembar kerja Excel, Validasi Data sangat diperlukan. Ingin mengizinkan hanya angka atau tanggal dalam sel tertentu? Atau membatasi nilai teks dengan panjang tertentu? Atau mungkin melarang waktu di luar rentang tertentu? Tidak masalah, semua ini dapat dengan mudah dilakukan dengan kriteria validasi yang telah ditetapkan atau kustom.pola tertentu? Sayangnya, itu tidak mungkin. Regex menurut Anda? Hmm... itu mungkin berhasil!
Cara melakukan Validasi Data Excel dengan Regex
Sayangnya, tidak ada fitur Excel bawaan yang mendukung regex, tidak terkecuali Validasi Data. Untuk dapat memvalidasi input sel menggunakan ekspresi reguler, Anda perlu membuat fungsi Regex kustom terlebih dahulu. Komplikasi lainnya adalah bahwa fungsi yang ditentukan pengguna VBA tidak dapat disajikan ke Validasi Data secara langsung - Anda memerlukan mediator dalam bentuk rumus bernama.
Mempertimbangkan hal di atas, mari kita uraikan secara singkat langkah-langkah yang harus diambil untuk memvalidasi data di Excel menggunakan regex:
- Buat fungsi Regex kustom yang memeriksa apakah nilai input cocok dengan ekspresi reguler.
- Tentukan nama untuk rumus Regex Anda.
- Konfigurasikan aturan Validasi Data berdasarkan rumus bernama.
- Salin pengaturan validasi ke sel sebanyak yang Anda inginkan.
Kedengarannya seperti sebuah rencana? Mari kita coba menerapkannya dalam praktik!
Validasi data Excel menggunakan ekspresi reguler kustom
Contoh ini membahas kasus yang sangat umum - bagaimana cara mengizinkan hanya nilai-nilai dari pola tertentu.
Misalkan Anda menyimpan beberapa kode SKU di lembar kerja Anda dan ingin memastikan bahwa hanya kode yang cocok dengan pola yang diberikan yang masuk ke dalam daftar. Asalkan setiap SKU terdiri dari 2 kelompok karakter yang dipisahkan dengan tanda hubung, kelompok pertama termasuk 3 huruf kapital dan kelompok kedua - 3 digit, Anda dapat mengidentifikasi nilai tersebut menggunakan regex di bawah ini.
Pola : ^[A-Z]{3}-\d{3}$
Harap perhatikan bahwa awal (^) dan akhir ($) dari string berlabuh, jadi tidak ada karakter selain dalam pola yang dapat dimasukkan dalam sel.
1. Tambahkan fungsi Regex Match kustom
Mulailah dengan memasukkan fungsi RegExpMatch di buku kerja Anda. Kode sudah ditulis oleh ahli Excel kami, jadi Anda hanya perlu menyalinnya dari halaman yang ditautkan di atas dan menempelkannya di editor VBA Anda.
Berikut ini sintaks fungsi untuk referensi Anda:
RegExpMatch(teks, pola, [match_case])Di mana:
- Teks (wajib) - string sumber (dalam konteks kita - sel yang divalidasi).
- Pola (wajib) - ekspresi reguler untuk dicocokkan.
- Match_case (opsional) - tipe pencocokan. TRUE atau dihilangkan - case-sensitive; FALSE - case-insensitive.
Tip. Jika Anda adalah pengguna Ultimate Suite kami, maka Anda dapat melakukan Validasi Data Regex di Excel tanpa menambahkan kode VBA apa pun ke buku kerja Anda. Cukup manfaatkan fungsi AblebitsRegexMatch khusus yang disertakan dengan Alat Regex kami.
2. Buat rumus bernama
Di lembar kerja target Anda, pilih sel A1 (terlepas dari isinya dan tidak peduli sel mana yang sebenarnya akan Anda validasi), tekan Ctrl + F3 untuk membuka Manajer Nama, dan tentukan nama untuk rumus ini:
=RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")
Atau Anda dapat memasukkan regex di beberapa sel (A2 dalam contoh ini) dan menyediakan $ A $ 2 ke argumen kedua:
=RegExpMatch(Sheet1!A1, Sheet1!$A$2)
Agar rumus berfungsi dengan benar, pastikan untuk menggunakan referensi relatif untuk teks argumen (A1) dan referensi absolut untuk pola ($A$2).
Mengingat bahwa rumus kami bertujuan untuk memvalidasi nomor SKU, kami menamainya sesuai dengan itu: Validasi_SKU .
Catatan penting! Ketika mendefinisikan formula, harap periksa kembali bahwa argumen pertama mengacu pada sel yang saat ini dipilih Misalnya, jika sel A1 dipilih pada lembar, letakkan A1 di argumen pertama (sesuai rekomendasi kami); jika B2 dipilih, gunakan B2 untuk argumen pertama, dan seterusnya. Tidak masalah referensi khusus mana yang Anda gunakan selama itu cocok dengan sel yang saat ini dipilih.
Untuk petunjuk langkah demi langkah, silakan lihat Cara membuat rumus bernama di Excel.
3. Siapkan Validasi Data
Pilih sel pertama yang akan dicentang (A5 dalam kasus kami) dan buat aturan validasi data kustom berdasarkan rumus bernama. Untuk ini, lakukan hal berikut:
- Klik Data tab> Validasi Data .
- Dalam Izinkan daftar drop-down, pilih Adat .
- Masukkan rumus di bawah ini dalam kotak yang sesuai.
=Validate_SKU
- Batalkan pilihan Abaikan kosong jika tidak, aturan Anda tidak akan berfungsi.
Secara opsional, Anda dapat mengetik pesan kesalahan kustom untuk ditampilkan ketika data tidak valid dimasukkan dalam sel.
Jika Anda merasa membutuhkan langkah-langkah mendetail, ini dia: Cara mengatur Validasi Data kustom di Excel.
4. Salin Validasi Data ke lebih banyak sel
Untuk menyalin pengaturan validasi ke lebih banyak sel, inilah yang perlu Anda lakukan:
- Pilih sel dengan validasi data dan tekan Ctrl + C untuk menyalinnya.
- Pilih sel lain yang ingin Anda validasi, klik kanan, klik Tempel Khusus , dan pilih Validasi pilihan.
- Klik OK .
Informasi selengkapnya bisa ditemukan di How to copy Data Validation.
Sekarang, setiap kali seseorang mencoba memasukkan SKU yang tidak valid di salah satu sel yang divalidasi, pesan peringatan berikut akan muncul:
Validasi email dengan Regex
Untuk melakukan validasi email, Anda mulai dengan menulis ekspresi reguler yang cocok dengan alamat email.
Pola : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za-z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$
Untuk penjelasan rinci tentang sintaks, silakan lihat Regex untuk mencocokkan alamat email yang valid.
Dan sekarang, tentukan kriteria validasi dengan melakukan langkah-langkah yang sudah dikenal:
- Masukkan regex di atas di B2.
- Pilih sel A1 dan tentukan nama yang disebut Validasi_Email yang mengacu pada:
=RegExpMatch(Sheet1!A1, Sheet1!$B$2)
- Untuk sel B5, terapkan Validasi Data kustom menggunakan rumus di bawah ini. Sangat penting bahwa Abaikan kosong harus tidak dipilih.
=Validate_Email
Selain itu, Anda bisa mengonfigurasi pesan kesalahan kustom yang meminta pengguna untuk memasukkan alamat email yang valid.
- Salin aturan ke sel di bawah ini.
Jika alamat email yang Anda masukkan dalam sel yang divalidasi tidak cocok dengan pola regex, peringatan berikut akan muncul:
Memvalidasi kata sandi menggunakan ekspresi reguler
Ketika menggunakan regex untuk validasi kata sandi, hal pertama yang harus diputuskan adalah apa yang harus diperiksa oleh ekspresi reguler Anda. Berikut ini beberapa contoh yang mungkin akan membuat Anda berada di jalur yang benar.
Kata sandi minimal harus terdiri atas 6 karakter dan hanya boleh berisi huruf (huruf besar atau huruf kecil) dan angka:
Pola : ^[A-Za-z0-9]{6,}$
Kata sandi harus minimal 6 karakter dan mencakup setidaknya satu huruf dan satu digit:
Pola : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,}$
Kata sandi harus memiliki panjang minimal 6 karakter dan mencakup setidaknya satu huruf besar, satu huruf kecil, dan satu digit:
Pola : ^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$
Kata sandi harus memiliki panjang minimal 6 karakter dan mencakup setidaknya satu huruf, satu digit, dan satu karakter khusus:
Pola : ^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$
Dengan pola yang sudah ditetapkan, Anda bisa melanjutkan ke pengaturan Validasi Data:
- Masukkan regex kata sandi Anda di C2.
- Pilih sel A1 dan buat rumus bernama yang disebut Validate_Password :
=RegExpMatch(Sheet1!A1, Sheet1!$C$2)
- Untuk sel C5, buat aturan validasi kustom dengan rumus di bawah ini. Ingatlah untuk membatalkan pilihan Abaikan kosong kotak centang.
=Validate_Password
- Salin aturan ke sebanyak mungkin sel yang Anda inginkan.
Sekarang, Anda dapat dengan aman menambahkan kata sandi baru ke dalam daftar. Jika string input tidak cocok dengan regex, peringatan berikut ini akan mengingatkan Anda jenis nilai apa yang diterima:
Validasi Data Regex tidak berfungsi
Jika Validasi Data Regex tidak berfungsi di Excel Anda, kemungkinan besar itu karena salah satu alasan berikut.
Fungsi RegExpMatch tidak ada
Sebelum menerapkan Validasi Data, pastikan untuk memasukkan kode fungsi RegExpMatch di buku kerja Anda.
Ekspresi reguler yang salah
Untuk memastikan regex Anda berfungsi seperti yang diharapkan, Anda dapat memasukkan rumus RegExpMatch di beberapa sel dan memeriksa hasilnya. Untuk informasi lebih lanjut, silakan lihat Pencocokan ekspresi reguler Excel dengan contoh.
Untuk menganalisis dan men-debug ekspresi reguler Anda, Anda dapat menggunakan layanan pengujian regex online gratis seperti RegEx101 atau RegExr.
Rumus bernama salah
Alasan yang sangat umum dari kegagalan validasi data adalah rumus bernama Regex yang merujuk ke sel yang salah. Dalam semua contoh, kami merekomendasikan untuk mendefinisikan rumus yang merujuk ke A1:
=RegExpMatch(A1, regex)
Ini hanya berfungsi jika sel A1 aktif ketika mendefinisikan sebuah nama dan sebuah referensi relatif (tanpa tanda $) digunakan.
Idenya adalah bahwa referensi relatif yang ditentukan dalam rumus (A1) akan secara otomatis berubah berdasarkan posisi relatif sel yang divalidasi. Dengan kata lain, sel A1 dipilih hanya untuk kenyamanan dan konsistensi. Bahkan, Anda dapat memilih sel B1 dan merujuk ke B1, memilih sel C1 dan merujuk ke C1, dan sebagainya. sel yang direferensikan harus menjadi sel aktif .
Untuk memeriksa apakah rumus bernama Anda sudah benar, pilih sel mana pun di lembar kerja Anda, buka Manajer Nama, dan lihat sel mana yang dituju oleh rumus tersebut. Jika mengacu pada sel yang saat ini dipilih, berarti rumusnya sudah benar. Jika tidak, Anda harus mengubah referensi di argumen pertama.
Pada tangkapan layar di bawah ini, sel A7 dipilih, yang berarti rumus bernama harus memiliki A7 di argumen pertama. Argumen kedua ($ A $ 2) mengacu pada regex - referensi ini seharusnya tetap konstan, jadi dikunci dengan tanda $.
Abaikan opsi kosong yang dipilih
Apabila menyiapkan aturan Validasi Data kustom, penting untuk membatalkan pilihan Abaikan kosong Jika tidak, aturan tidak akan berfungsi karena alasan berikut ini:
Jika kecocokan tidak ditemukan, fungsi RegExpMatch mengembalikan FALSE. Dengan Abaikan kosong dipilih, FALSE sama dengan kosong dan diabaikan.
Solusi alternatifnya adalah secara eksplisit menyatakan bahwa rumus harus mengembalikan TRUE:
=RegExpMatch(...)=TRUE
Itulah cara melakukan Validasi Data di Excel menggunakan ekspresi reguler. Saya berterima kasih telah membaca dan berharap dapat melihat Anda di blog kami minggu depan!
Buku kerja latihan untuk diunduh
Contoh Validasi Data Regex (file .xlsm)