拿到一份資料庫查詢匯出的Excel檔,想加工卻碰了釘子。如下圖,明明是數字,用SUM(A1:A4)加總卻得到0。

全是幻覺,嚇不倒我滴!一切皆因儲存格格式被設成文字。

已知原因,但經驗不足,後續處理不怎麼順利。先試著將儲存格格式改為數值,加上千位號並調小數位數,但因欄位已被認定成文字,不動如山。換一招,複製整欄再用選擇性貼上,試了不同選項,文字就是文字,怎麼都無法變回數字。
【小筆記】一般手動輸入時若想將數字強迫存為文字(最常見情境是電話號碼,遇到通用格式前方的零會被移除),做法是在數字前方加上單引號(')。如果文字內容來自複製,要避免被解讀成數字走味,則可先將儲存格格式指定成文字再貼上即可。
所幸,Excel夠貼心!當數字被視為文字儲存,儲存格左上角會出現綠色三角,同時有選單提供處理選項,其中有項「轉換成數字」,執行後Excel就會將欄位解讀成數字。另外,「轉換成數字」也支援批次處理,可以選取範圍後一次轉換。

同事分享了另一種做法,使用「資料剖析」也能快速將整批文字轉成數字,雖然步驟較多,但能對不同欄位指定不同轉換原則,還有很多花式應用,威力強大,特別適合複雜情境。

轉換為數字後,就能順利加總了。

爬文還找到其他解法,但都不如「轉換成數字」及「資料剖析」簡便,補充於後:
- 使用選擇性貼上配合乘法運算(跟JavaScript String轉Number有異曲同工之妙 XD)
EXCEL 移除 ' 符號 並讓「格式為文字」的數字,一次轉換成數字格式的方法 @ Ted's Blog -- 痞客邦 PIXNET -- - 另外建一欄位用=VALUE(A1)做轉換