美文网首页
有多无聊才能想出这个问题--返回两个日期间的所有日期

有多无聊才能想出这个问题--返回两个日期间的所有日期

作者: 九萌 | 来源:发表于2022-08-29 23:48 被阅读0次

    有没有这样的感觉,每一字都认识,但是组合起来却完全看不懂是啥意思?今天就遇到了,每个函数都会,但是嵌套起来却不知道它能干啥?这个问题纯粹就是为了要解决方案而编出的一个问题:返回两个日期间的所有日期(什么情况下才会有这个需求??)

    有项目开始时间和结束时间,需要在旁边单元格内返回两个日期间的所有日期,并用分割符连接(这里是用逗号连接)。

    例子

    返回两个日期间的天数是挺常见的,用日期直接相减就可以得出,或者用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"))

    这就是单个看都懂,合起来就不会的函数公式。挨个拆解下多用替换法,更容易理解。

    相关文章

      网友评论

          本文标题:有多无聊才能想出这个问题--返回两个日期间的所有日期

          本文链接:https://www.haomeiwen.com/subject/yjzknrtx.html