由于数据保密,就不上图了,不过文字也很容易说清楚

在公司的成交记录表里,有一列备注栏

这里面的数据包含:首次接触客户的日期,以及客户的性别年龄等【相信大神你想像的出是个什么情况】

但是出于某些原因领导要求提取其中首次接触客户的日期【听起来很简单的,对吗?闹心的重点来了!】

公司销售部的大神们下单的时候,日期标的格式五花八门,举几个例子【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. 其次日期栏,采用替换模式,将/.-替换成统一的,在使用条件格式转换成统一日期。


推荐阅读:
相关文章