作為產品經理,時常需要查看數據,來評估產品的表現。對於一些數據設施不完善的公司,可能還需要通過開發同學拉日誌取數的方式把一些業務數據給到產品同學。這時,就需要產品經理自行對數據進行整理。
說到數據整理,一般情況下,我們說的是數據的標準化和匯總,比如拆分,格式整理,匯總整合等等。其中,數據拆分是一種很常見的操作,比如一些業務數據中,可能把多個屬性整合在一個欄位中,然後用分隔符區分開,這樣存儲簡單,使用也方便。
去年,遇到一個問題酒類的品牌數據中英文混合,需要把兩者分離開,做成標準的中文品牌和外文品牌欄位。
數據格式及想要實現的目標結果如下所示:
中外文品牌是我們拿到的原始數據。
對於拆分,日常見的也不少,但是此類數據,卻是頭一次遇到。
以往的數據中,需要拆分的數據之間大多有如「-」或者「|」或者「\」分隔符或者是空格進行連接,那麼直接通過數據分列功能即可實現,非常簡單。對於長度非常規整的,按寬度也可以進行分裂,也是通過數據分列功能即可。
那是不是就沒有辦法了呢?當然也不是。
此處,我們需要先了解兩個Excel中的函數,LEN和LENB。
LEN函數的功能是返回文本串的字符數。Len()可以得到字符串的長度。LENB函數將字符串當作一組字節而不是一組字符,可以返回文本串的字節數。如果需要返回字符總數而非字節總數,可使用LEN函數。
在Unicode編碼中,一個中文漢字是2個字節,英文則是1個字節。
因此,通過上述的LEN和LENB函數,可以計算出中文漢字的個數,只要拿到了個數,那麼便可以通過LEFT和RIGHT函數,取出相應字符串的中文和英文部分。
可以看到,LENB-LEN的值就是中文字符數。很神奇吧,第一次看到的時候,驚呆了!
那麼接下來,我們便可以通過LEFT函數,從左取相應字符數,得到中文品牌名。
同樣,如果需要取外文品牌名稱,我們可以使用RIGHT函數,從右側開始取相應的英文字符數,得到外文品牌名稱。
上述的整個數據整理,涉及LEN函數、LENB函數、LEFT函數、RIGHT函數,通過四個函數便可以實現中文與其他字符的數據分離。
當然以上方式並不是沒有弊端,如果整個值裡邊有數字等被記為一個字符的,可能會有問題,比如3泉3 Spring,此時通過此方式拆分就不準了,這點需要注意。
雖然略有不足,不過已經是個可以進行批處理數據的方法了,剩下的一些特殊數據可以人工再檢查一遍,手動進行修正。
類似這樣的案例,也在提醒我們,面對工作中的一些磨人任務,不要急於處理,冷靜下來,觀察規律,善用搜索工具,一定事半功倍。