案列重现
要是你获知一群人的生日年月日,可以又怎么知道他们的星座和生肖呢?
仔细想想,星座和生肖是基于生日年月日信息中的不同部分:
星座:取决于 月 和 日,并将每年分成不均匀的12份生肖:取决于 阴历年,并每12年重复一次既然如此,那我们就着重思考一下,如何才能用公式实现以上的两个表达。
解决方法
>>>求星座
看了这公式是不是有点犯晕?还是让火箭君来给你细细解释。
--TEXT(B2,"mdd")提取B2单元格中的月日信息,其中月的信息可以是1位或2位数字,而日的信息必须以2位数字显示,再通过减负运算(连续两个减号)将其转换为一个3位或4位的数字。
{101,"摩羯";120,"水瓶"; ... ;1222,"摩羯"}如上图所示,构建起了一个2*13的数组,分别对应该星座的起始月日和星座的名称。
LOOKUP(... , ...)通过LOOKUP函数,查询B2中的月日信息在数组中所对应的星座名称。其中,由于LOOKUP函数是顺序查询的,而摩羯座又是横跨了年头年尾两个月(12月22日~1月19日),因此在创建数组时,必须把摩羯座的信息分成两部分。
>>>求生肖
TEXT(B2,"[$-130000]e")将B2中公历转换为农历,并提取年份信息。"[$-130000]..."可以将公历转换成农历,同时还可以设置不同的表达形式,比如"[$-130000]e"为农历年份,"[$-130000]yyyy-mm-dd"为按农历年月日表示。
MOD(...-4,12)+1由于Excel中日期起始的1900年恰好为鼠年,而1900/12的余数为4,需要将年份信息减去4,再除以12取其余数。同时由于字符串的起始位为1。因此将余数加上1,就可以得到"鼠牛虎兔龙蛇马羊猴鸡狗猪"这串字符中的实际位置。
比如,
BTW,上文中介绍的肯定不是唯一的求星座和求生肖的方法。比如,你是不是会用求星座的方法来求生肖呢?
▲这是不是能治疗颈椎病?同时,也欢迎小伙伴在文末评论区留言,谈谈你对求星座和求生肖公式的新idea!
要是你苦恼于如何来寻找一些Dummy Data来进行操作学习,也欢迎点击相关文章中,火箭君给你带来的Dummy Data生成器!
喜欢就请关注我们的微信公众号:“效率火箭”(ID:xlrocket)。