小夥伴們好啊,今天老祝和大家分享一個數據查詢的技巧。
如下圖所示,B列是一組手機号碼,需要判斷對應的運營商是移動、聯通還是電信。
咱們知道,根據手機号碼的前三位可以區分運營商,例如,移動号段是134-139、150-152、157-159、187、188和147,
聯通号段是130-132 155、156和186,
電信号段是133、153和189。
要解決本例問題,第一步是想辦法提取出手機号碼的前三位。
這裡咱們使用LEFT函數來完成,LEFT函數的作用是從字符串的第一個字符開始,提取指定個數的字符。
=LEFT(B2,3)
LEFT(B2,3),就是提取B3單元格中的前三個字符。
第二步,建立一個号段和運營商的對照表:
有了手機号碼的前三位,并且有了這個對照表,問題就好解決了。咱們可以使用VLOOKUP函數,以LEFT函數提取出的手機号碼前三位作為查詢值,在對照表中進行查詢就可以了,一起來試試:
C2單元格輸入公式:
=VLOOKUP(LEFT(B2,3),F:G,2,0)
結果怎麼樣呢:
竟然都返回了錯誤值。
公式看着沒有問題啊,出現錯誤值的原因究竟在哪裡呢?
其實,這裡面有兩個小問題:
第一個小問題:LEFT函數得到結果是文本結果“137”,并不是能直接運算的數值137。
這個小問題在文本類的函數中都有存在,比如TEXT函數、RIGHT函數、SUBSTITUTE函數等等,結果都是文本型的。
另一個小問題:咱們在對照表中使用的号段是數值型的,而VLOOKUP函數在查詢數據時是區分數據格式的,會把文本“137”和數值137看成不同的兩個内容。
兩個小問題,湊到一起就變成了大問題。
知道了問題的根源,咱們就可以對症下藥了,如何把文本型的數字變成數值型的呢?
隻要經過一次簡單的運算,文本型數字就可以變成數值型。運算的方式可以是乘以1、除以1、加0或是減0,也可以使用兩個減号--,美其名曰減負運算。
回到咱們的題目當中,來給公式做個小手術:
=VLOOKUP(1*LEFT(B2,3),F:G,2,0)
本例的題目看着很簡單,但是包含了好幾個容易忽略的知識點。光說不練假把式,你也試試吧。
圖文制作:祝洪忠
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!