您現在的位置是:首頁 > 單機遊戲首頁單機遊戲
Excel系統匯出資料無法匹配怎麼辦?
- 2022-01-01
有符號無符號不匹配什麼意思
工作中我常常需要從系統中匯出資料,比如說我匯出了店鋪銷售,但是當我用Vlookup查詢某一個店鋪的銷售時,總是顯示錯誤值(#N/A)。很奇怪,查詢與被查詢的店鋪名稱完全一樣,為什麼匹配會出現錯誤呢?
原因其實是系統匯出的資料有時會帶有非列印字元或空格(肉眼不可見),導致匹配出錯。比如下面的例子:
首先我們看一下單元格中的文字個數,公式計算和自己數出來相差1。這就是我們看不到的那個1。
那麼我們怎麼才能清除那個看不見的字元呢?
第一種方法:分列法
一直點選下一步到最終完成即可。如果不可以,那就採用第二種方法。
第二種:函式法
這裡要介紹的函式是CLEAN和TRIM。
CLEAN 函式用於刪除文字中 7 位 ASCII 碼的前 32 個非列印字元(值為 0 到 31)。
TRIM可以
除去
字串
開頭和末尾的空格,
ASCII為32。
通常我會將兩個函式一起使用,這樣既可清除空格,也可清除非列印字元。當然也可以單獨使用。
那麼我們怎麼知道文字是否含有非列印字元呢?
CODE函式可以告訴你。
CODE函式用於返回文字字串中第一個字元的數字程式碼。如下所示:
CODE
計算為9表示文字最前有水平製表符。因為水平製表符的ASCII碼為9。
CODE如果小於等於33就可以判斷文字首字元為非列印字元或者空格。
做到這裡我很好奇,如果非列印字元或者空格在文字中間或者尾部又怎麼發現呢(當然一般不會在中間)?所以我編了一段程式碼。使用效果如下:
程式碼原理:
程式碼逐個單元格逐個字元檢視
ASCII,如果大於等於0且小於33即判斷為
含非列印字元或空格。
Sub asc編碼()For Each rg In SelectionFor i = 1 To Len(rg)n = Mid(rg, i, 1)num = asc(n)If num < 33 And num >= 0 Thenrg。Offset(0, 1) = “含非列印字元或空格”GoTo 100End IfNext100:NextMsgBox “結束”End Sub