如何从字串中拆出日期

例题描述

这里有一份用 Excel 文件记录的事件备忘录,原始信息如下图所示:

..

现在需要将信息里面的日期都分离出来,并且用分号隔开后放到后面一列,方便以后统计。就像如下这种效果:

..

实现步骤

1.      运行集算器

可去润乾官网下载职场版,同时下载一个免费授权就够了,首次运行时会提示加载。

2.   用 Excel 打开需要计算的文件,比如上例。

3.   选中区域 A1:A4,然后按 Ctrl+C 复制文本。

4.   打开集算器编辑界面,新建 DFX 文件,然后选中格子 A1,并用鼠标再次单击 A1,使得光标落入文本编辑框时,按 Ctrl+V 粘贴数据到 A1,如下图所示:

..

5.      继续完成后续的代码,示例如下:

..

6.      然后运行代码,执行完成后,点中 A5 格子,从右侧可以看到最终的结果:

..

7.      然后单击上图箭头所示图标,将结果复制到剪贴板。

8.      回到 Excel 文件编辑界面,选中 B1 格子,粘贴后便可得到期望结果。注意此时的返回结果已经是多行文本,且需要跟 A 列一一对应,所以此时的步骤跟第 4 步相反,恰恰不能将光标落入 B1 后才粘贴。

 

下面列出代码,并逐行解释一下代码的含义:


A

B

1

……(从 Excel 粘贴的数据 )


2

=A1.split@n(" ")


3

=A2.(~.   (date(~,"dd.MM.yy")))


4

=A3.(~.select(ifdate(~)))


5

=A4.concat@n(";")


A2   将 A1 中的文本先按行拆成序列,再用空格将每一行拆分为单词序列

A3   将序列中的文本串能够按指定格式转换为日期类型的数据转为日期型。

A4   选出日期型数据,从而分离出日期和其他串。

A5   再将所有选出的日期,用分号隔开并按行连接为串。

 

不过要注意 A5 中将日期型数据转换为串的时候,将按照选项中设置的日期类型格式来转换日期串,需要返回不同日期串时,需要修改为相应的日期格式,具体设置如下图:

..

上述代码讲述了如何将 Excel 中的数据复制到集算器中来处理,以及处理完成后,如何通过界面操作将返回值再复制到 Excel 中。

这样操作很直观,也方便调试结果。不过如果代码无误,又要经常做这种处理时,可以利用 clipboard 函数把代码写成这样:

..

在 Excel 复制后,切换到集算器直接执行,同时完成复制,再切换回 Excel 做粘贴即可


【附件】 data.zip