(个人总结更新)常用公式介绍:
1、获取上一个月的日期:
=format(date(year(),month()-1,day()),"yyyy-MM-dd")
2、获取今天前30天的日期:
=format(datedelta(now(),-30),'yyyy-MM-dd')
3、获取当前年份:
=year(now(),"yyyy-MM-dd")
=int(left(format(now(), "yyyy-MM-dd"),4))
4、获取当前月份:
=month(now(),"yyyy-MM-dd")
=int(mid(format(now(), "yyyy-MM-dd"),6,2))
5、获取时间精确到毫秒(可用于设置UUID、主键等):
=format(now(), "yyyyMMddHHmmssSSS")
6、下拉框中公式获取指定范围的年份组:
近10年年份,升序: =range(year()-10,year())
近10年年份,降序: =range(year(),year()-10,-1)
7、下拉框选值后,单元格根据数据库查询结果,实时更换显示值:
=sql(“DATABASE”,”SQL语句”,ROW,COL)
8、公式引用非父格数据时,引用到的数据是数组类型,需要用ARRAY()进行处理,不同应用场景会有不同应用,如用于比较前期和后期数据的对比。
在我的博客中有相关的应用场景的介绍,用于比较数据更新前后的对比,用于区分颜色,比较前后值的变化大小(+***)或(-***)。
如:=ABS($$$- INDEXOFARRAY('sheet1'!C2, ( A2- 1)*COUNT('sheet1'!C1) + INARRAY(C1, 'sheet1'!C1)))>0.01
比较两份数据的前后差异(用于数据调整前后对比)
https://blog.youkuaiyun.com/wang1qqqq/article/details/89035073
9、获取页码:
当前页码:=$$page_number
总页码:=$$totalPage_number
10、数据截取
获取数据长度:=len(str)
从左侧开始取指定长度的数据:=left(str,lenght) —— =left("2019-06-21",4) 结果:2019
从右侧开始取指定长度的数据:=right(str,lenght) —— =right("2019-06-21",2) 结果:21
从指定位置开始取指定长度的数据:=mid(str,start,lenght) —— =mid("2019-06-21",6,2) 结果:06
12、将秒的数据转换为时分秒的格式
=string(int(time/3600))+"h"+int(time%3600/60)+"min"+int(time%3600%60)+"s"
—— time:18154 结果:5h2min34s
—— 如果数据是字符型,则对应将后缀秒“s”去掉,只留下时间数字就可以计算
13、查找文本是否包含某字符,以及字符位置
=find(str,text,start) —— 从指定start位置,查找str在text中的位置
如:
=find("b","a,b,cd,e") —— 结果:3
=find("b","a,b,cd,e",2) —— 结果:3
可用结果是否大于零来判断是否包含字符,即 if(find(str,text,start)>0,"包含字符","不包含字符")