Excel技巧(2):拜託殺了那些看不見的空白吧!
看過儲存格內怎麼看明明都是數字沒錯,可是卻怎麼樣都沒有辦法用它來做任何運算吧?
就算使用很基本的公式(TRIM)、或者資料剖析的方式,始終沒有辦法有效的改正。
其實原因大多都是你的資料很有可能是從網頁上的表格複製下來,或者檔案根本就是網頁格式(Excel很聰明可以自動開啟,只是有些地方沒有處理)。
如何診斷:
使用公式 =LEN(儲存格) 來判斷,如果你眼睛明明看到的就1個3位數的數字,理當用LEN來數把3位數字當成文字的長度,應該也是3,可是結果卻是3以上的數字。
肇因:
儲存格除了看到的數字之外,也存在了其他「不是用鍵盤上空白鍵輸入的空白」....很像在繞口令,但文字中其實有很多沒有顯示、或者顯示跟空白相同,但是他卻不等於空白。
舉例來說:換行符號、Tab鍵(一般人非常難再儲存格中輸入TAB)、或HTML的空白 。這些都是導致該儲存格被Excel判定是文字,可是我們卻沒有辦法用取代空白的方式改變。
解法;
就算使用很基本的公式(TRIM)、或者資料剖析的方式,始終沒有辦法有效的改正。
其實原因大多都是你的資料很有可能是從網頁上的表格複製下來,或者檔案根本就是網頁格式(Excel很聰明可以自動開啟,只是有些地方沒有處理)。
如何診斷:
使用公式 =LEN(儲存格) 來判斷,如果你眼睛明明看到的就1個3位數的數字,理當用LEN來數把3位數字當成文字的長度,應該也是3,可是結果卻是3以上的數字。
肇因:
儲存格除了看到的數字之外,也存在了其他「不是用鍵盤上空白鍵輸入的空白」....很像在繞口令,但文字中其實有很多沒有顯示、或者顯示跟空白相同,但是他卻不等於空白。
舉例來說:換行符號、Tab鍵(一般人非常難再儲存格中輸入TAB)、或HTML的空白 。這些都是導致該儲存格被Excel判定是文字,可是我們卻沒有辦法用取代空白的方式改變。
解法;
- 如果只有幾筆資料的話,真的!自己另外在別格看著數字重新敲一次吧。這絕對是最有效率與簡單的方法(沒開玩笑,我真的是建議幾個數字而已,手敲吧~~)
- 用滑鼠或鍵盤點選編輯該儲存格,在數字的前後想辦法可否選取到那看不見的空白,想辦法複製1個,再用取代的功能,用Ctrl+V貼上那看不到的空白。(一般的HTML空白是可以這麼處裡的!)
- 使用巨集寫成Function 或者 Sub,然後用以下的程式碼處理它。我自己是把這個類似的功能寫成Sub,然後固定儲存在個人巨集,設定快速鍵來呼叫。(改天再來寫怎麼做出個人巨集
Sub Trim_Range(selRange As Range)
Dim i As Long, j As Long, cnt As Integer
cnt = 0
For i = 1 To selRange.Areas.Count
For j = 1 To selRange.Areas(i).Count
If IsEmpty(selRange.Areas(i).Item(j).Value) Then
cnt = cnt + 1
Else
If cnt > 0 Then cnt = 0
selRange.Areas(i).Item(j) = Trim(Replace(Replace(Replace(selRange.Areas(i).Item(j).Value, ChrW(160), ""), Chr(9), ""), Chr(10), ""))
End If
' 50是為了可選整個Row或Column,取巧地連續找到50個沒值就當其他也都是空的了
If cnt >= 50 Then Exit Sub
Next j
Next i
End Sub
留言
可以怎麼使用??
如果你沒有試過,建議可以先練習操作基本的座標 Cells(i, j)。
因為這裡是比較抽象的 i 指的是被選取的Area總數,j 指的是個別Area內的項目個數。會這麼寫是因為可以選擇多個區塊(ex: 同時選取兩部分的儲存格A1~B3, D1~F3)。
每篇都說什麼TRIM SUBTITUTE函數,真的就刪不掉!!
原來就複製空格再取代掉就好!!!
謝謝你!!!