iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
自我挑戰組

經營資訊社群之雜談系列 第 10

宇宙秩序: 成員加入驗證(五)

  • 分享至 

  • xImage
  •  

不知道大家看到昨天的幾個公式有沒有辦法想到如何達成「自動驗證申請人所填的電子信箱是否與所輸入的驗證密碼相符」呢?
而昨天的答案是這個:=AND(EQ(J2,Q2), AND(EQ(MID(I2,4,2),"47"),OR(EQ(MID(I2,FIND("@",I2)+1,4),"ntnu"),EQ(MID(I2,FIND("@",I2)+7,4),"ntnu"))))
其中
J2=表單B所輸的驗證密碼
Q2=電子信箱對應密碼(參見第 8 篇文章)、
I2=表單B所填的電子信箱
看起來很長對吧!為了讓大家都看得懂,我將把公式分解成小部分來說。
首先是最外層的AND(),左邊的EQ(J2,Q2)是檢查表單B所輸的驗證密碼是否等於電子信箱的對應密碼。剩下右邊的一大串AND(EQ(MID(I2,4,2),"47"),OR(EQ(MID(I2,FIND("@",I2)+1,4),"ntnu"),EQ(MID(I2,FIND("@",I2)+7,4),"ntnu")))是確認I2是否為師大資工系學生所持有的電子信箱。
對於這一大串,又可以將AND()拆成兩部分,左邊的EQ(MID(I2,4,2),"47")是確認電子信箱前面的學號的系所代碼是否為資工系。

師大的學號編碼方式
A: 學制、B: 入學年、C: 系所代碼、D: 班別、E: 座號、F: 學院代碼
則學號的編碼為 ABBCCDEEF。

看上方編碼方式可得知系所代碼在第 4 及 5 位,因此若要確認系所代碼是否為47需要利用MID(I2,4,2),從第 4 位擷取 2 個字,便可以利用EQ()判斷是否為47了。

剩下右邊的一大串OR(EQ(MID(I2,FIND("@",I2)+1,4),"ntnu"),EQ(MID(I2,FIND("@",I2)+7,4),"ntnu"))是確認是否為師大的學校信箱。

明天再繼續說 XD


上一篇
宇宙秩序: 成員加入驗證(四)
下一篇
宇宙秩序: 成員加入驗證(六)
系列文
經營資訊社群之雜談12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

2
bogay
iT邦新手 3 級 ‧ 2022-09-25 21:00:36

如果使用 REGEXMATCH 會不會比較簡單?
https://support.google.com/docs/answer/3098292?hl=en

會,所以我又寫了一篇 XD

我要留言

立即登入留言