编写公式并没有想象中的那么难:
你会做青椒炒肉丝和番茄炒鸡蛋这两道菜吗?不会做,也没关系,只要知道就可以!
现在,你就有了一套“一荤一素”的搭配方式,它就可以看成是一个公式,简单吧!
青椒炒肉丝(青椒,肉丝)
番茄炒鸡蛋 (番茄,鸡蛋)
一荤一素(青椒炒肉丝,番茄炒鸡蛋)
公式的本质就是:
结合一个或多个已知的函数,通过运算的方式,得出所需要的结果。
在翻论坛问答时看到如下一个问题:
简道云:“日期范围”根据填写日期算填写日期所属周的第一天(星期一)的日期及最后一天(星期日)的日期,填写日期已默认为当时,“日期范围”字段怎么写公式 ?
那么,在日常使用简道云时,我们如何去推导一个公式呢,本篇借用这个问题,一起来推导下。
常用 推导公式的 5 个步骤:
1、明确需求:需要有一个清晰的需求,最好写在纸上;
2、分析需求:将需求进行尽量多次拆解,看看都有哪些部分组成或有什么样的规律;
3、查找函数:围绕相关分析,找到相应的或较为接近的函数;
4、分步实现:结合前期的分析和查找到的函数,分步解决每一个部分;
5、整合结果:将分布实现的有效公式整合为一个公式。
如何 通过5个步骤 推导公式:
1、明确需求:需要有一个清晰的需求,最好写在纸上;
计算出指定日期所在周的开始日期与结束日期分别是什么,以及显示本周的日期范围。
2、分析需求:将需求进行尽量多次拆解,看看都有哪些部分组成或有什么样的规律;
通过分析本次的问题可以得出以下内容:
一周有7天,以1至7代替,指定日期是其中的某一个数字
当指定日期为星期三时,以3代替,那么:
1=3-2
7=3+4
当指定日期为星期四时,以4代替,那么:
1=4-3
7=4+3
假如指定日期的星期为 X , 那么结合以上规律可以得出以公式:
1= X - ( X - 1 )
7= X + ( 7 - X )
3、查找函数:围绕相关分析,找到相应的或较为接近的函数;
结合本次问题及相关分析,可以大体猜测到用到的函数与日期和星期相关
下面分别以“日期”与“星期”为关键词在 帮助文档 中检索,找到感觉有用的函数
TEXT(date, text_format) 将日期转换成特定格式的文本
DATE(year,month,day,hour,minute,second) 将年月日(时分秒)转换为日期对象。
4、分步实现:结合前期的分析和查找到的函数,分步解决每一个部分;
根据当前日期计算是星期几(当前星期)
TEXT(DATE(当前日期),"E")
观测结果会发现,当为周日时,会显示为“0”,这时候可以通过 IF( ) 函数进行一下优化
IF(TEXT(DATE(当前日期),"E")=="0","7",TEXT(DATE(当前日期),"E"))
因为需要的是后期用到的是数字而非文本,可以通过 VALUE( ) 函数再进行一下优化
VALUE(IF(TEXT(DATE(当前日期),"E")=="0","7",TEXT(DATE(当前日期),"E")))
结合DATE( )函数,分别计算出开始日期与结束日期
在这个问题中会发现,主要变化的是“日”,“年”和“月”都保持不变,需要分别用到 YEAR( ) 、MONTH( ) 、DAY( ) 三个函数提取当前日期的年、月、日,然后通过DATE( )函数生成新的日期。
结合 1= X - ( X - 1 ),7= X + ( 7 - X ) 这两个计算方式,可以得出以下公式:
本周开始日期:DATE(YEAR(当前日期),MONTH(当前日期),DAY(当前日期)-(当前星期-1))
本周结束日期:DATE(YEAR(当前日期),MONTH(当前日期),DAY(当前日期)+(7-当前星期))
5、整合结果:将分布实现的有效公式整合为一个公式。
通过 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函数的朋友来说,会更容易上手,当遇上较为复杂的问题时,往往需要的是一次次的尝试,需要的是更多一点的耐心。
更多内容:
更多沟通交流可添加微信(zmlnow)
添加时请备注:简道云
都看到这里了
如果您觉得有用
赞一个呗
赏一个呗
偶会更有动力哈 |