拆分并提取相同的函数

时间:2016-11-29 09:57:18

标签: excel google-sheets

我在谷歌电子表格上工作,我只需要保持状态(见下文),例如“被拒绝,提供,新...”以及具体状态的日期。在2个不同的列中。

我可以使用多个公式来完成,例如splitleft,但这是很多手工工作(下面的所有文字都在一个单元格中)。

有人会知道如何通过单一公式自动化这个吗?

示例:

column             
New (status in column 1)       YYYY (date in column 2)
Interview                      YYYY
Rejected                       YYYY

“拒绝日期:2016年11月11日上午6:23:33并修改:YYYY ||日期优惠:2016年6月2日上午5:36:04并修改:YYYY ||访谈日期:2016/4/14 2:30:57并修改:YYYY ||新日期:2016年4月14日上午2:24:58并修改:YYYY ||将被聘用日期:6 / 7/2016 11:03:58 AM和修改者:YYYYY ||待定合同批准日期:2016年6月6日上午4:56:55并修改:YYYY ||采访日期:2016年5月10日12 :上午40:30和修改者:YYYY ||采访日期:2016年4月27日上午8:57:31并修改:YYYY“

谢谢

2 个答案:

答案 0 :(得分:1)

对于仅为您提供所需结果的两列,请使用以下内容:

假设您的数据位于第J列且第1行是标题行,请将此公式放在要显示状态的列的第2行中。它将包括第一个冒号(:)的所有文本:

=ARRAYFORMULA(IF(ISTEXT( J2:J),  IFERROR( REGEXEXTRACT(J2:J,"[^:]*")), ))

在您想要显示YYYY的列中,这将获取从最后一个冒号到结尾的所有内容:

=ARRAYFORMULA(IF(ISTEXT( J2:J),  IFERROR( REGEXEXTRACT(J2:J,"([^: ]*)$")), ))

ARRAYFORMULA()允许公式在列上工作,而不会将公式复制到每个单元格。

IFERROR()如果找不到匹配项,请勿让我们显示错误。

REGEXTRACT()返回与正则表达式匹配的字符串部分。有很多通过搜索使用这些的例子,this GitHub is Google's reference on their use

答案 1 :(得分:0)

文档和背景

我建议你看一下操作Google文档文档中的字符串的函数:

REGEXEXTRACT从字符串

中提取regular expressions

FIND获取字符串中单词的位置

MID获取字符串

的一部分

LEN获取字符串的长度

这些功能类似于Excel的功能。

我还会将链接添加到regular expressions supported by Google docs,以便您可以深入了解案例。

<强>实施

我们的想法是在电子表格中的公式旁边放一个列,其中包含您要查找的关键字。因此,所需的工作表将如下所示:

enter image description here

我们接下来要做的是在B列中查找所需的关键字,并在关键字输入后和下一个number/number/number之前提取下一个字符串and

<强>解决方案

因此,单元格C1的期望公式如下所示:

=REGEXEXTRACT(MID($A$1;FIND(B1;$A$1);FIND("and";$A$1;FIND(B1;$A$1) + LEN(B1)));"[0-9]+\/[0-9]+\/[0-9]+")

请注意,您可以将公式拖到下面的单元格中,该函数将在单元格A1中查找关键字。