由於數據保密,就不上圖了,不過文字也很容易說清楚

在公司的成交記錄表裡,有一列備註欄

這裡面的數據包含:首次接觸客戶的日期,以及客戶的性別年齡等【相信大神你想像的出是個什麼情況】

但是出於某些原因領導要求提取其中首次接觸客戶的日期【聽起來很簡單的,對嗎?鬧心的重點來了!】

公司銷售部的大神們下單的時候,日期標的格式五花八門,舉幾個例子【4/01】【4/1】【4.1】【4.01】【4-1】如果你覺得以上都可以理解,還有這種【4¥1】~手動黑人問號臉

於是想了個辦法,智能填充!

結果發現。【年齡】的數字會影響到智能填充識別出的數字!如果單數少,我也就手敲了,關鍵多的時候一天一千多單真心玩不起

而且還有很多奇葩的問題,比如今天是4月5號,如果看到日期標註為4.11,那就一定是去年的客戶,也需要區分開【沒錯,這群xxx根本不標記年份!】

探索的過程中其實還遇到過很多障礙,一時想不起來就不一一列舉了,總之……

幫我完美的解決問題,請您喝奶茶

大神們!可以救救我嗎?


你這個問題也不是不能解決,畢竟我遇到比你這種還惡劣的情況。首先,你這個只是提取日期問題,那麼,你這個日期無論怎麼複雜,都不會出現十種以上的混亂格式,無外乎分隔符不統一,年月前後顛倒之類的。建議你可以這麼操作,把數據導入到power query裡面,逐步提取,先提取大部分格式日期,接下來再提取部分特殊日期,最後提取小眾的如「4¥1」這類日期。最後把所有提取的日期合併到一列上即可。至於,年度的提取,這個你肯定有辦法的。


數據清理是一個不怎麼高大上但是也很折磨人的事情

Excel自然是不適合做這個事情的,用python可以搶救一下。正則表達式是跑不了的,數據提取以後,還需要做邏輯分析

當然了,如果最開始的時候遵循清潔數據的原則現在就不會這麼難受了。但是數據的錄入便捷性與數據的清潔度之間你總要選一個。


估計不是喝奶茶可以解決的。不規範的數據源誰看到了都腦殼疼!大神也會頭疼!我會瘋


這杯奶茶不好喝。表格里的內容難道連順序(比如都是日期、性別、年齡)都不一致?如果真是這樣,那最起碼前三千是一種樣子,後三千是一種樣子吧?如果6千個單元格都不一樣,那最好的辦法是請一位秘書。


只要順序統一,其實非常簡單,補一個年份,解析日期即可。

R語言版:

library(tidyverse)
library(lubridate)

df = tibble(
x = c("4/01", "4/1", "4.1", "4.01", "4-1")
)

df %&>%
mutate(x = paste0("2020-", x), day = ymd(x))


我覺得你先用find函數和left函數把男女之前的日期整體提出來,然後看能不能按連續數字提取出兩列純數字,再用聯立成X月X日。後面的日期判斷就是一個IF的事

只提取數字,如果是4位和2位的數字,可以直接分成月和日。對3位數字的,自己調整吧,這樣應該能簡化一部分操作了


如果日期、性別等數據之間有分隔符,可以直接用分列。


對日期排序,這樣格式相近的數據能聚集到一起,容易處理些。


A:以上建議先保留一份原稿,或另起一個表格。

1.首先採用分列模式,將日期,性別,年齡分出三個新列;

2. 其次日期欄,採用替換模式,將/.-替換成統一的,在使用條件格式轉換成統一日期。


推薦閱讀:
相关文章