您現在的位置是:首頁 > 單機遊戲首頁單機遊戲

Excel系統匯出資料無法匹配怎麼辦?

簡介使用效果如下:程式碼原理:程式碼逐個單元格逐個字元檢視ASCII,如果大於等於0且小於33即判斷為含非列印字元或空格

有符號無符號不匹配什麼意思

Excel系統匯出資料無法匹配怎麼辦?

工作中我常常需要從系統中匯出資料,比如說我匯出了店鋪銷售,但是當我用Vlookup查詢某一個店鋪的銷售時,總是顯示錯誤值(#N/A)。很奇怪,查詢與被查詢的店鋪名稱完全一樣,為什麼匹配會出現錯誤呢?

原因其實是系統匯出的資料有時會帶有非列印字元或空格(肉眼不可見),導致匹配出錯。比如下面的例子:

首先我們看一下單元格中的文字個數,公式計算和自己數出來相差1。這就是我們看不到的那個1。

Excel系統匯出資料無法匹配怎麼辦?

那麼我們怎麼才能清除那個看不見的字元呢?

第一種方法:分列法

Excel系統匯出資料無法匹配怎麼辦?

一直點選下一步到最終完成即可。如果不可以,那就採用第二種方法。

第二種:函式法

這裡要介紹的函式是CLEAN和TRIM。

CLEAN 函式用於刪除文字中 7 位 ASCII 碼的前 32 個非列印字元(值為 0 到 31)。

TRIM可以

除去

字串

開頭和末尾的空格,

ASCII為32。

通常我會將兩個函式一起使用,這樣既可清除空格,也可清除非列印字元。當然也可以單獨使用。

Excel系統匯出資料無法匹配怎麼辦?

Excel系統匯出資料無法匹配怎麼辦?

那麼我們怎麼知道文字是否含有非列印字元呢?

CODE函式可以告訴你。

CODE函式用於返回文字字串中第一個字元的數字程式碼。如下所示:

Excel系統匯出資料無法匹配怎麼辦?

CODE

計算為9表示文字最前有水平製表符。因為水平製表符的ASCII碼為9。

CODE如果小於等於33就可以判斷文字首字元為非列印字元或者空格。

做到這裡我很好奇,如果非列印字元或者空格在文字中間或者尾部又怎麼發現呢(當然一般不會在中間)?所以我編了一段程式碼。使用效果如下:

Excel系統匯出資料無法匹配怎麼辦?

Excel系統匯出資料無法匹配怎麼辦?

程式碼原理:

程式碼逐個單元格逐個字元檢視

ASCII,如果大於等於0且小於33即判斷為

含非列印字元或空格。

Excel系統匯出資料無法匹配怎麼辦?

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

Excel系統匯出資料無法匹配怎麼辦?

Top