有没有这样的感觉,每一字都认识,但是组合起来却完全看不懂是啥意思?今天就遇到了,每个函数都会,但是嵌套起来却不知道它能干啥?这个问题纯粹就是为了要解决方案而编出的一个问题:返回两个日期间的所有日期(什么情况下才会有这个需求??)
有项目开始时间和结束时间,需要在旁边单元格内返回两个日期间的所有日期,并用分割符连接(这里是用逗号连接)。
例子返回两个日期间的天数是挺常见的,用日期直接相减就可以得出,或者用days()函数、DateDiff()函数也能做到,不过这不是本题的要求。
一起看下解题思路,需要用分割符把所有日期连接,首先考虑外层是个textjoin函数。
textjoin函数接下来是显示格式 “8/29”或“8-29”,这个可以用text函数实现。
格式 显示日期是如何实现增加的呢?可以用开始日期+1,+2,+3的方式表示出顺延的日期。
日期顺延关键问题来了,+1、+2、+3又是怎么来的,这个可以生成序列来搞定,序列的起止值就是两个日期间的天数。
生成序列可以用SEQUENCE函数=SEQUENCE(行数,列数,开始数,增量),可以大概看出返回的是一个数组,而不是单一的数值(一行一列就没什么意义,两行一列或一行两列就都是数组了)
序列函数最后把所有的函数嵌套组合起来就好了
完整公式嵌套公式写法:
D2单元格=TEXTJOIN(",",1,TEXT(B2+SEQUENCE(DAYS(C2,B2)+1,1,0,1),"m/d"))
这就是单个看都懂,合起来就不会的函数公式。挨个拆解下多用替换法,更容易理解。
网友评论