当前位置:网站首页>零代码开发入门:快速上手DIY函数公式的5个步骤
零代码开发入门:快速上手DIY函数公式的5个步骤
2022-07-30 10:30:00 【保卫大狮兄】
编写公式并没有想象中的那么难:
你会做青椒炒肉丝和番茄炒鸡蛋这两道菜吗?不会做,也没关系,只要知道就可以!
现在,你就有了一套“一荤一素”的搭配方式,它就可以看成是一个公式,简单吧!
- 青椒炒肉丝(青椒,肉丝)
- 番茄炒鸡蛋 (番茄,鸡蛋)
- 一荤一素(青椒炒肉丝,番茄炒鸡蛋)
公式的本质就是:结合一个或多个已知的函数,通过运算的方式,得出所需要的结果。
那么,在日常使用简道云时,我们如何去推导一个公式呢?本篇借用一个场景一起来推导下:
“日期范围”根据填写日期算填写日期所属周的第一天(星期一)的日期及最后一天(星期日)的日期,填写日期已默认为当时,“日期范围”字段怎么写公式 ?
首先,进入简道云工作台,点击新增表单,进入表单设计页面,如图:
下面进入正式推导环节:
常用推导公式的 5 个步骤:
- 明确需求:需要有一个清晰的需求,最好写在纸上;
- 分析需求:将需求进行尽量多次拆解,看看都有哪些部分组成或有什么样的规律;
- 查找函数:围绕相关分析,找到相应的或较为接近的函数;
- 分步实现:结合前期的分析和查找到的函数,分步解决每一个部分;
- 整合结果:将分布实现的有效公式整合为一个公式。
如何通过5个步骤 推导公式:
01 明确需求:需要有一个清晰的需求,最好写在纸上
计算出指定日期所在周的开始日期与结束日期分别是什么,以及显示本周的日期范围。
02 分析需求:将需求进行尽量多次拆解,看看都有哪些部分组成或有什么样的规律
通过分析本次的问题可以得出以下内容:
- 一周有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 )
03 查找函数:围绕相关分析,找到相应的或较为接近的函数
结合本次问题及相关分析,可以大体猜测到用到的函数与日期和星期相关。
下面分别以“日期”与“星期”为关键词在 帮助文档中检索,找到感觉有用的函数:
TEXT(date, text_format) 将日期转换成特定格式的文本
DATE(year,month,day,hour,minute,second) 将年月日(时分秒)转换为日期对象。
04 分步实现:结合前期的分析和查找到的函数,分步解决每一个部分;
根据当前日期计算是星期几(当前星期)
- 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-当前星期))
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函数的朋友来说,会更容易上手,当遇上较为复杂的问题时,往往需要的是一次次的尝试,需要的是更多一点的耐心。
边栏推荐
- 【C和指针第七章】可变参数列表
- 4、yolov5-6.0 ERROR: AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘ 解决方案
- 【 HMS core 】 【 Analytics Kit] [FAQ] how to solve the payment amount in huawei pay analysis shows zero problem?
- JCL learning
- Redis Desktop Manager 2022.4.2 released
- (***Key points***) Flink common memory problems and tuning guide (1)
- [Deep Learning] (Problem Record)
- Linear Regression - Small Batch Stochastic Gradient Descent - Scrapy crawler website image crawling
- 鸿湖万联扬帆富设备开发板正式合入OpenHarmony主干
- Nacos configuration in the project of battle
猜你喜欢
Adaptive Control - Simulation Experiment 1 Designing Adaptive Laws Using Lyapunov's Stability Theory
PyQt5 - draw text on window
论文阅读:SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers
Understanding of deadlock
In the robot industry professionals, Mr Robot industry current situation?
第3章 信息收集
async.js入门
Unity 锁定相机第二弹
【HMS core】【FAQ】HMS Toolkit Typical Questions Collection 1
idea2021+Activiti [the most complete note one (basic use)]
随机推荐
[Deep Learning] (Problem Record)
- Linear Regression - Small Batch Stochastic Gradient Descent Alibaba Cloud OSS Object Storage
(BUG record) No module named PIL
Verilog之数码管译码
SST-Calib:结合语义和VO进行时空同步校准的lidar-visual外参标定方法(ITSC 2022)
4、yolov5-6.0 ERROR: AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘ 解决方案
系统设计精选 | 基于FPGA的CAN总线控制器的设计(附代码)
Shell system learning function
what is this method called
第3章 信息收集
Basemap和Seaborn
PyQt5 - draw text on window
OC-关于alloc和dealloc(还没开始写)
typescript入门之helloworld
[100 Solidity Skills] 1. Contract reentrancy attack
类和对象—6个默认成员函数
数据库事务,JDBC操作和数据类型
MFCC to audio, the effect should not be too funny >V
The method of parameter passing
Meikle Studio - see the actual combat notes of Hongmeng equipment development five - drive subsystem development