如何抽取字类型字段中的日期信息,并将它转换成另一个日期类型字段?
Ragic 的每一个字段,都有一个对应的“字段种类”,用来决定数据呈现的型态以及它可以驱动的行为,例如数字字段会以数值的形式呈现,可以做加减运算;电邮字段里没有填到 @ 符号时系统会提醒你,且此字段可以集成寄 email 功能;地址字段可以集成地图、“自动生成”字段可以产制出流水号等等。
今天这篇教学短文要讲的“日期”字段也有很多方便的功能,排程记事(搭配行事历报表或与外部行事历同步功能)、设置提醒、估时数、算时数(利用日期运算相关公式)都需要搭配它才能发挥。
举例来说,我的订单有两个日期字段:“订购日期”和“预计出货日期”,由于我总是将“预计出货日期”排在“订购日期”后七天,我就可以根据上述功能,套用公式,让系统可以自动根据我填入的订购日期,直接显示出七天后的预计出货日期;同步行事历,让我的 Google 行事历上在出货日当天标注有此笔订单要出;设置提醒,让系统在出货日前一天自动要寄信通知我备货。
假设今天在这张订单表单上“订购日期”和“预计出货日期”不是日期字段(例如是“自由输入”字段),那么以上一连串自动化流程就都不能运作了:公式算不出来、提醒无法送出、也不能同步行事历。
当“日期信息”存在“非日期字段”时,可以怎么转换?
一般情况下,我们只要把字段种类设对,好好输入日期,一切就可以顺利运转了。不过有些时候我们的日期信息不是自己手动输入的,而是要从其他地方抽取、拿过来的,这时就可能出现:表单上有“订购日期”的信息,但它没有被存在“日期字段”,而是存在自由输入等其他类型字段,导致不能直接用它们来驱动各项流程。
如果你遇到这种情况,且还是需要日期字段的各种功能,其实不需要在另一个日期字段重新一一手动输入信息喔!只要搭配 Ragic 的“字符串抽取”“组合字符串”“字符串转日期”相关公式,就可以自动化的把你要的日期信息从别的字段取出,正确放入日期字段里了。以下就来举例说明:
①“单据编码”里包含想要使用的日期信息
假设我的订单统一是从另一个系统汇入的,该系统没有用一个字段特别记录“订购日期”,但“订单编号”一直都是利用“SO-订购日期-流水号”的编码原则编出来的,因此订单编号里面其实含有订购日期信息,我希望利用这个信息,让 Ragic 表单上自行生成对应的“订购日期”字段值,进而可以利用公式算出预计出货日期或发送提醒。
抽取部分字符串并组合:MID 公式、“+”公式
那么首先,我可以先新增一个字段,利用 Ragic“抽取字符串”、“组合字符串”的公式,把“订单编号”流水号里面属于订购日期的信息抽取出来,让它以 yyyy/MM/dd 这样的格式呈现出来。
Ragic“抽取字符串”的公式包括有:LEFT(指定要抽取最左边的几个字符)、RIGHT(指定要抽取最右边的几个字符)、MID(用来指定抽取中间的几个字符,透过指定字符开始的位置+要取几个字来达成)
而“组合字符串”很简单,只要参照字段是字符串(例如自由输入),就可以用 + 号串起来。
因此如果订购编号是像“SO-20200716-001”这样的形式,适合用的就是 MID 公式,假设订购编号为 C2 字段,新增一个字段套用这样的公式:MID(C2,3,4)+'/'+MID(C2,7,2)+'/'+MID(C2,9,2) 即可在新字段得到 2020/07/16 这样的字段值。
但是,由于字符串处理的公式仅能用于字符串型态的字段(例如自由输入),这个新字段没办法直接设成日期字段(否则公式无法运作),因此我们还需要一个把“字符串转换为日期字段”的方法。
将字符串转换为日期字段:DATEVALUE 公式
假设前面说的新字段(抽取订购日期字符串字段)为 F2, 我只要在已经设成日期字段的“订购日期”字段,套上将字符串转换为日期字段的公式,就可以满足我们的需求了。要注意的是这个公式不能像在 Ragic 把自由输入转数字字段、或把其他任何类型的字段转为自由输入字段一样,直接套等于公式参照要转换的字段值并改字段类型。要将字符串转为有效的日期字段,必须使用“DATEVALUE ”公式,写为:DATEVALUE (F2,'yyyy/MM/dd'):
② 要转换“日期”“时间”与“日期时间”字段格式
举例来说:假设今天我订单上面的字段是“排定出货时间”,是一个 yyyy/MM/dd HH:mm 包含详细的日期+时间信息的字段像这样:
我也希望将这个时间(或时段)信息同步到 Google 日历上,不只是显示为“全天”:
此时因为 Google 日历需要的是“日期”和“时间”拆开成两个字段的格式,原本“排定出货时间”的格式也需要转换。此时我一样可以利用“字符串抽取”搭配“字符串转日期”的功能,新增一些套用公式的字段,把格式弄成符合需求的样子:
同步行事历时,选择上图 F3 “出货日期”、F4“排定出货开始时间”、F5“排定出货结束时间”(假设要设一个时段且为一小时)当作同步时需要的字段即可。有需要的话这些字段可以设为隐藏,不影响订单排版。
以上就是“字符串/日期字段转换”情境的解说,有任何相关的疑问或情境,欢迎来信 support@ragic.com 让我们知道 :D