Pengesahan Data Excel menggunakan ungkapan biasa (Regex)

  • Berkongsi Ini
Michael Brown

Tutorial menunjukkan cara melakukan pengesahan data dalam Excel menggunakan ungkapan biasa dengan bantuan fungsi RegexMatch tersuai.

Mengenai mengehadkan input pengguna dalam lembaran kerja Excel, Pengesahan Data adalah amat diperlukan. Mahu membenarkan nombor atau tarikh sahaja dalam sel tertentu? Atau hadkan nilai teks kepada panjang tertentu? Atau mungkin tidak membenarkan masa di luar julat tertentu? Tiada masalah, semua ini boleh dilakukan dengan mudah dengan pratetap atau kriteria pengesahan tersuai. Tetapi bagaimana jika saya mahu membenarkan hanya alamat e-mel atau rentetan yang sah yang sepadan dengan corak tertentu? Malangnya, itu tidak mungkin. Regex yang anda katakan? Hmm… itu mungkin berkesan!

    Cara melakukan Pengesahan Data Excel dengan Regex

    Malangnya, tiada ciri Excel terbina dalam menyokong regex dan Pengesahan Data tidak pengecualian. Untuk dapat mengesahkan input sel menggunakan ungkapan biasa, anda perlu mencipta fungsi Regex tersuai terlebih dahulu. Komplikasi lain ialah fungsi yang ditentukan pengguna VBA tidak boleh disampaikan kepada Pengesahan Data secara langsung - anda memerlukan pengantara dalam bentuk formula bernama.

    Memandangkan perkara di atas, mari kita gariskan secara ringkas langkah-langkah yang perlu diambil untuk mengesahkan data dalam Excel menggunakan regex:

    1. Buat fungsi Regex tersuai yang menyemak sama ada nilai input sepadan dengan ungkapan biasa.
    2. Tentukan nama untuk formula Regex anda.
    3. Konfigurasikan peraturan Pengesahan Data berdasarkan formula yang dinamakan.
    4. Salintetapan pengesahan kepada seberapa banyak sel yang anda mahukan.

    Bunyi seperti rancangan? Mari cuba laksanakannya dalam amalan!

    Pengesahan data Excel menggunakan ungkapan biasa tersuai

    Contoh ini menangani kes yang sangat biasa - cara membenarkan hanya nilai corak tertentu.

    Andaikan anda menyimpan beberapa kod SKU dalam lembaran kerja anda dan ingin memastikan bahawa hanya kod yang sepadan dengan corak tertentu yang masuk ke dalam senarai. Dengan syarat setiap SKU terdiri daripada 2 kumpulan aksara yang dipisahkan dengan tanda sempang, kumpulan pertama termasuk 3 huruf besar dan kumpulan kedua - 3 digit, anda boleh mengenal pasti nilai tersebut menggunakan regex di bawah.

    Pola : ^[A-Z]{3}-\d{3}$

    Sila ambil perhatian bahawa permulaan (^) dan akhir ($) rentetan berlabuh, jadi tiada aksara selain daripada dalam corak boleh dimasukkan dalam sel.

    1. Tambahkan fungsi Regex Match tersuai

    Mulakan dengan memasukkan fungsi RegExpMatch dalam buku kerja anda. Kod tersebut telah pun ditulis oleh guru Excel kami, jadi anda hanya perlu menyalinnya daripada halaman yang dipautkan di atas dan tampal dalam editor VBA anda.

    Berikut ialah sintaks fungsi untuk rujukan anda:

    RegExpMatch(text , corak, [match_case])

    Di mana:

    • Teks (diperlukan) - rentetan sumber (dalam konteks kami - sel yang disahkan).
    • Corak (diperlukan) - ungkapan biasa untuk dipadankan.
    • Match_case (pilihan) - jenis padanan. BENAR atau ditinggalkan - kes-sensitif; FALSE - tidak sensitif huruf besar dan kecil.

    Petua. Jika anda adalah pengguna Suite Ultimate kami, maka anda boleh melakukan Pengesahan Data Regex dalam Excel tanpa menambah sebarang kod VBA pada buku kerja anda. Hanya manfaatkan fungsi AblebitsRegexMatch tersuai yang disertakan dengan Alat Regex kami.

    2. Cipta formula bernama

    Dalam lembaran kerja sasaran anda, pilih sel A1 (tanpa mengira kandungannya dan tidak kira sel mana yang anda akan sahkan), tekan Ctrl + F3 untuk membuka Pengurus Nama dan tentukan nama untuk formula ini:

    =RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")

    Atau anda boleh memasukkan regex dalam beberapa sel (A2 dalam contoh ini) dan membekalkan $A$2 kepada hujah kedua:

    =RegExpMatch(Sheet1!A1, Sheet1!$A$2)

    Untuk formula berfungsi dengan betul, pastikan anda menggunakan rujukan relatif untuk argumen teks (A1) dan rujukan mutlak untuk corak ($A$2).

    Memandangkan formula kami bertujuan untuk mengesahkan nombor SKU, kami menamakannya dengan sewajarnya: Sahkan_SKU .

    Nota penting! Apabila mentakrifkan formula, sila semak semula bahawa argumen pertama merujuk kepada sel yang dipilih pada masa ini , jika tidak, formula tidak akan berfungsi. Sebagai contoh, jika sel A1 dipilih pada helaian, letakkan A1 dalam hujah pertama (mengikut cadangan kami); jika B2 dipilih, kemudian gunakan B2 untuk hujah pertama, dan seterusnya. Tidak kira rujukan tertentu yang anda gunakan selagi ia sepadan dengan sel yang dipilih pada masa ini.

    Untuk langkah demi langkaharahan, sila lihat Cara membuat formula bernama dalam Excel.

    3. Sediakan Pengesahan Data

    Pilih sel pertama untuk disemak (A5 dalam kes kami) dan buat peraturan pengesahan data tersuai berdasarkan formula yang dinamakan. Untuk ini, lakukan perkara berikut:

    1. Klik tab Data > Pengesahan Data .
    2. Dalam Benarkan senarai lungsur turun, pilih Tersuai .
    3. Masukkan formula di bawah dalam kotak yang sepadan.

      =Validate_SKU

    4. Nyahpilih pilihan Abaikan kosong , jika tidak peraturan anda tidak akan berfungsi.

    Secara pilihan, anda boleh menaip mesej ralat tersuai untuk dipaparkan apabila data tidak sah dimasukkan ke dalam sel.

    Jika anda rasa anda memerlukan langkah terperinci, berikut ialah: Cara menyediakan Pengesahan Data tersuai dalam Excel.

    4. Salin Pengesahan Data ke lebih banyak sel

    Untuk menyalin tetapan pengesahan ke lebih banyak sel, ini yang anda perlu lakukan:

    1. Pilih sel dengan pengesahan data dan tekan Ctrl + C untuk salinnya.
    2. Pilih sel lain yang ingin anda sahkan, klik kanan padanya, klik Tampal Khas dan pilih pilihan Pengesahan .
    3. Klik OK .

    Maklumat lanjut boleh didapati dalam Cara menyalin Pengesahan Data.

    Kini, setiap kali seseorang cuba memasukkan SKU yang tidak sah dalam mana-mana sel yang disahkan, perkara berikut mesej amaran akan muncul:

    Pengesahan e-mel dengan Regex

    Untuk melakukan pengesahan e-mel, anda mulakandengan menulis ungkapan biasa yang sepadan dengan alamat e-mel.

    Corak : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$

    Untuk penjelasan terperinci sintaks, sila lihat Regex untuk memadankan alamat e-mel yang sah.

    Dan sekarang, nyatakan kriteria pengesahan dengan melakukan langkah yang sudah biasa:

    1. Masukkan regex di atas dalam B2.
    2. Pilih sel A1 dan tentukan nama yang dipanggil Validate_Email yang merujuk kepada:

      =RegExpMatch(Sheet1!A1, Sheet1!$B$2)

    3. Untuk sel B5, gunakan Pengesahan Data tersuai menggunakan formula di bawah. Adalah penting bahawa pilihan Abaikan kosong harus dinyahpilih.

      =Validate_Email

      Selain itu, anda boleh mengkonfigurasi mesej ralat tersuai yang menggesa pengguna untuk memasukkan alamat e-mel yang sah.

    4. Salin peraturan ke sel di bawah.

    Jika alamat e-mel yang anda masukkan dalam sel yang disahkan tidak sepadan dengan corak regex, makluman berikut akan pop timbul:

    Mengesahkan kata laluan menggunakan ungkapan biasa

    Apabila menggunakan regex untuk pengesahan kata laluan, perkara pertama yang perlu diputuskan ialah apa ungkapan biasa anda perlu semak. Berikut ialah beberapa contoh yang mungkin menetapkan anda di landasan yang betul.

    Kata laluan mestilah sekurang-kurangnya 6 aksara dan hanya boleh mengandungi huruf (huruf besar atau kecil) dan digit:

    Corak : ^[A-Za-z0-9]{6,}$

    Kata laluan mestilah sekurang-kurangnya 6 aksara dan mengandungi sekurang-kurangnya satu huruf dansatu digit:

    Corak : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6 ,}$

    Kata laluan mestilah sekurang-kurangnya 6 aksara dan mengandungi sekurang-kurangnya satu huruf besar, satu huruf kecil dan satu digit:

    Corak : ^(?= .*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$

    Kata laluan mestilah min 6 aksara panjang dan termasuk sekurang-kurangnya satu huruf, satu digit dan satu aksara khas:

    Corak : ^(?=.*[A-Za-z])(?=.*\d )(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$

    Dengan corak yang ditetapkan, anda boleh meneruskan untuk menyediakan Pengesahan Data:

    1. Masukkan regex kata laluan anda dalam C2.
    2. Pilih sel A1 dan buat formula bernama yang dipanggil Validate_Password :

      =RegExpMatch(Sheet1!A1, Sheet1!$C$2)

    3. Untuk sel C5, buat peraturan pengesahan tersuai dengan formula di bawah. Ingat untuk menyahpilih kotak semak Abaikan kosong .

      =Validate_Password

    4. Salin peraturan ke seberapa banyak sel yang anda mahu.

    Kini, anda boleh menambah kata laluan baharu pada senarai dengan selamat. Jika rentetan input tidak sepadan dengan regex, makluman berikut akan mengingatkan anda jenis nilai yang diterima:

    Pengesahan Data Regex tidak berfungsi

    Jika Pengesahan Data Regex tidak berfungsi dalam Excel anda , kemungkinan besar ia disebabkan oleh salah satu sebab berikut.

    Fungsi RegExpMatch tiada

    Sebelum menggunakan Pengesahan Data, pastikan anda memasukkan kod fungsi RegExpMatch dalam buku kerja anda.

    biasa salahungkapan

    Untuk memastikan regex anda berfungsi seperti yang diharapkan, anda boleh memasukkan formula RegExpMatch dalam beberapa sel dan memeriksa hasilnya. Untuk mendapatkan maklumat lanjut, sila lihat padanan ungkapan Regular Excel dengan contoh.

    Untuk menganalisis dan nyahpepijat ungkapan biasa anda, anda boleh menggunakan perkhidmatan ujian regex dalam talian percuma seperti RegEx101 atau RegExr.

    Formula yang dinamakan salah

    Sebab biasa kegagalan pengesahan data ialah formula bernama Regex yang merujuk kepada sel yang salah. Dalam semua contoh, kami mengesyorkan untuk mentakrifkan formula yang merujuk kepada A1:

    =RegExpMatch(A1, regex)

    Ini hanya berfungsi jika sel A1 aktif apabila mentakrifkan nama dan rujukan relatif (tanpa tanda $) digunakan.

    Ideanya ialah rujukan relatif yang dinyatakan dalam formula (A1) akan berubah secara automatik berdasarkan kedudukan relatif sel yang disahkan. Dalam erti kata lain, sel A1 dipilih hanya untuk kemudahan dan konsistensi. Malah, anda boleh memilih sel B1 dan merujuk kepada B1, pilih sel C1 dan merujuk kepada C1, dan seterusnya. Perkara utama ialah sel yang dirujuk hendaklah sel aktif .

    Untuk menyemak sama ada formula yang anda namakan betul, pilih mana-mana sel dalam lembaran kerja anda, buka Namakan Pengurus, dan lihat sel yang dituju formula. Jika ia merujuk kepada sel yang sedang dipilih, formulanya betul. Jika tidak, anda harus menukar rujukan dalam hujah pertama.

    Dalam tangkapan skrindi bawah, sel A7 dipilih, bermakna formula bernama harus mempunyai A7 dalam hujah pertama. Argumen kedua ($A$2) merujuk kepada regex - rujukan ini sepatutnya kekal malar, jadi ia dikunci dengan tanda $.

    Abaikan pilihan kosong yang dipilih

    Apabila menyediakan peraturan Pengesahan Data tersuai, adalah penting untuk menyahpilih kotak semak Abaikan kosong . Jika tidak, peraturan tidak akan berfungsi kerana sebab berikut:

    Jika padanan tidak ditemui, fungsi RegExpMatch mengembalikan FALSE. Dengan pilihan Abaikan kosong dipilih, FALSE bersamaan dengan kosong dan diabaikan.

    Penyelesaian alternatif secara eksplisit menyatakan bahawa formula harus mengembalikan BENAR:

    =RegExpMatch(…)=TRUE

    Begitulah cara melakukan Pengesahan Data dalam Excel menggunakan ungkapan biasa. Saya mengucapkan terima kasih kerana membaca dan berharap dapat berjumpa anda di blog kami minggu hadapan!

    Latihan buku kerja untuk muat turun

    Contoh Pengesahan Data Regex (fail.xlsm)

    Michael Brown ialah peminat teknologi yang berdedikasi dengan semangat untuk memudahkan proses kompleks menggunakan alat perisian. Dengan lebih sedekad pengalaman dalam industri teknologi, beliau telah mengasah kemahirannya dalam Microsoft Excel dan Outlook, serta Helaian Google dan Dokumen. Blog Michael berdedikasi untuk berkongsi pengetahuan dan kepakarannya dengan orang lain, menyediakan petua dan tutorial yang mudah diikuti untuk meningkatkan produktiviti dan kecekapan. Sama ada anda seorang profesional berpengalaman atau pemula, blog Michael menawarkan pandangan berharga dan nasihat praktikal untuk memanfaatkan sepenuhnya alatan perisian penting ini.