编写公式并没有想象中的那么难:
你会做青椒炒肉丝和番茄炒鸡蛋这两道菜吗?不会做,也没关系,只要知道就可以!
现在,你就有了一套“一荤一素”的搭配方式,它就可以看成是一个公式,简单吧!
那么,在日常使用简道云时,我们如何去推导一个公式呢?本篇借用一个场景一起来推导下:
“日期范围”根据填写日期算填写日期所属周的第一天(星期一)的日期及最后一天(星期日)的日期,填写日期已默认为当时,“日期范围”字段怎么写公式 ?
首先,进入简道云工作台,点击新增表单,进入表单设计页面,如图:
下面进入正式推导环节:
计算出指定日期所在周的开始日期与结束日期分别是什么,以及显示本周的日期范围。
通过分析本次的问题可以得出以下内容:
当指定日期为星期三时,以3代替,那么:
当指定日期为星期四时,以4代替,那么:
假如指定日期的星期为 X , 那么结合以上规律可以得出以公式:
结合本次问题及相关分析,可以大体猜测到用到的函数与日期和星期相关。
下面分别以“日期”与“星期”为关键词在 帮助文档 中检索,找到感觉有用的函数:
TEXT(date, text_format) 将日期转换成特定格式的文本
DATE(year,month,day,hour,minute,second) 将年月日(时分秒)转换为日期对象。
04 分步实现:结合前期的分析和查找到的函数,分步解决每一个部分;
根据当前日期计算是星期几(当前星期)
观测结果会发现,当为周日时,会显示为“0”,这时候可以通过 IF( ) 函数进行一下优化:
因为需要的是后期用到的是数字而非文本,可以通过 VALUE( ) 函数再进行一下优化
结合DATE( )函数,分别计算出开始日期与结束日期
在这个问题中会发现,主要变化的是“日”,“年”和“月”都保持不变,需要分别用到 YEAR( ) 、MONTH( ) 、DAY( ) 三个函数提取当前日期的年、月、日,然后通过DATE( )函数生成新的日期。
结合 1= X - ( X - 1 ),7= X + ( 7 - X ) 这两个计算方式,可以得出以下公式:
05 整合结果:将分布实现的有效公式整合为一个公式
通过 CONCATENATE( ) 函数,组合分步实现的各公式,并实现预期效果
CONCATENATE(TEXT(DATE(DATE(YEAR(当前日期),MONTH(当前日期),DAY(当前日期)-(VALUE(IF(TEXT(DATE(当前日期),"E")=="0","7",TEXT(DATE(当前日期),"E")))-1))),"yyyy-MM-dd")," ~ ",TEXT(DATE(DATE(YEAR(当前日期),MONTH(当前日期),DAY(当前日期)+(7-VALUE(IF(TEXT(DATE(当前日期),"E")=="0","7",TEXT(DATE(当前日期),"E")))))),"yyyy-MM-dd"))
以上只是常规情况下的按部就班的线性推导方式,当对简道云中的函数有一定了解后,多发散思维,多实践尝试,或许会遇到更为精简、高效的实现方式。
多看看帮助文档中函数部分的内容,编写公式,其实并没有想象中的那么难,特别是对于比较熟悉EXCEL函数的朋友来说,会更容易上手,当遇上较为复杂的问题时,往往需要的是一次次的尝试,需要的是更多一点的耐心。