我們在做教程時,經常用到大量個人基本信息,如果用實名和正确信息,會造成侵犯個人信息權。
為此,筆者經過篩選,用随機函數RAND随機生成姓名、學曆、性别、身份證、手機号等信息,避免了侵權的問題。
一、随機生成姓名
中國人的姓名多由2~3位構成(複姓可能為4位),首先,我們要把從網上抄來的2~3位姓名拆分為單字。如下圖:
圖1
姓:在F2單元格輸入函數:=LEFT(E2,1),表示截取姓名中的第一個字。
名1:在G2單元格輸入函數:
=IF(LEN(E2)=2,RIGHT(E2,1),MID(E2,2,1))
以上函數用IF函數進行判斷,先用LEN()判斷計算姓名字數,如果是兩個字,則用RIGHT(E2,1)顯示最右邊的名;如果是3個字,用MID(E2,2,1)從姓名單元格第二位取名當中的第一個字。
名2:在H2單元格輸入函數:
=IF(LEN(E2)=2,"",MID(E2,3,1))
以上函數用IF函數進行判斷,先用LEN()判斷計算姓名字數,如果是兩個字,則用""表示空;如果是3個字,用MID(E2,3,1)從姓名單元格第三位取姓名當中的第三個字,也可用RIGHT(E2,1)取最右邊的一個字。
用三列輔助列随機取數,分别對應姓氏和兩個名,函數很簡單,分别在三個單元格輸入:=RAND(),然後複制公式到所需行。
圖2
随機數和姓名處理清楚後,需要随機生成姓名并合并,操作方法如下圖:
圖3
在K3單元格輸入函數:
=IFERROR(INDEX(F$2:F$471,RANK(A2,A:A)),"")
此處用INDEX RANK函數組合,先用RANK(A2,A:A)計算A2的數值在A列中的排名,然後用INDEX(F$2:F$471,把F$2:F$471中該排名數字所在的行結果進行調用,即可得到随機姓。
IFERROR函數表示查找的内容為錯誤值時進行屏蔽。
兩個随機名的操作方法是一樣的,隻需要計算B列和C列中随機數的排名行即可。
L列函數:
=IFERROR(INDEX(G$2:G$471,RANK(B2,B:B)),"")
M列函數:
=IFERROR(INDEX(H$2:H$471,RANK(C2,C:C)),"")
在N2單元格輸入函數:=K2&L2&M2,把随機生成的姓和名連接起來,由此得到随機生成的姓名組合。
對照圖3看就一目了然,每按一次F9就随機生成一次。
二、随機生成學曆和性别
圖4
如上圖,在需要生成學曆的第一個單元格輸入函數:
=VLOOKUP(INT(RAND()*8) 1,{1,"博士";2,"碩士";3,"本科";4,"大專";5,"高中或中專";6,"初中";7,"小學";8,"文盲或半文盲"},2,)
公式解析:
(RAND()*8) 1表示随機生成1~8之間的數字,用INT取整數,取{1,"博士";2,"碩士";3,"本科"...}中數字對應的值。2表示如果随機數取整後不在1~8範圍,則取第二個,也就是VLOOKUP函數中的第二列。
随機生成性别的方法同上,函數為:
=VLOOKUP(INT(RAND()*2) 1,{1,"男";2,"女"},2,)
當然還有其他方法可以随機生成。如:
=CHOOSE(RANDBETWEEN(1,2),"男","女")
三、随機生成身份證号碼
圖5
這裡的出生日期和區域代碼要手動輸入,可以在網上搜索,區域代碼我前幾天講過,這裡為了演示,圖中數據是随意複制的數據。
在需要生成身份證的單元格輸入函數:
=U2&TEXT(T2,"yyyymmdd")&TEXT(RAND()*10^3,"0000")
TEXT(T2,"yyyymmdd")表示将日期轉換為如19920215.
TEXT(RAND()*10^3,"0000")表示取RAND()*10^3随機生成的4位數。
四、随機生成手機号
圖6
我們先随機生成網段如131 133 135等,再随機生成8位數,然後把網段和随機的8位數連接起來就得到随機手機号碼。
網段生成函數:
=CHOOSE(RANDBETWEEN(1,14),131,135,136,137,138,139,151,152,153,157,159,180,181,183)
RANDBETWEEN(1,14)表示随機生成1~14中的随意數,再用CHOOSE嵌套,當函數RANDBETWEEN(1,14)出現1的時候,函數就變為:CHOOSE(131,135,136......),最終結果就是131。
網段生成8位數:
=RANDBETWEEN(10000000,99999999)
表示随機生成10000000到99999999
怎麼樣,是不是很簡單,再也不要擔心侵權了!
當然圈内高手如雲,我的方法不值得一提,希望高手多多指教。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!