日期 + 14 天。日期由正则表达式生成

日期 + 14 天。日期由正则表达式生成

我有一张电子表格,其中第一列如下

Column 1
-------------------------
Foo 1234 (22.09.21)
Baaaar 5678 (20.10.21)

第二列仅包含日期,由以下函数根据第一列生成=REGEX()

=REGEX($A2,"^.+\(([[:digit:]|\.]+)\)$","$1")
Column 2
-------------------------
22.09.21
20.10.21

我需要第三列,它应该包含生成的值date_in_column_2 + 14_days

我尝试过的是=B2+14在 C2 中,但是如果 B2 中的日期是由正则表达式生成的而不是手动输入的,则=B2+14在 C2 中会出现错误。

我该如何修复它?谢谢。

另外,还有一个问题。我知道这违反了问答规则,我可以将其作为单独的问题提出,但如果这真的很容易,能否演示如何date_in_column_2 + 14_days仅针对工作日(即不包括周六和周日)进行计算?

答案1

您需要先将正则表达式的字符串结果转换为(数字)日期值,然后才能对该值进行计算。

LibreOffice 提供DATEVALUE()函数来转换日期字符串,因此您需要将 B 列中的公式嵌入到该函数中:

=DATEVALUE(REGEX($A2,"^.+(([[:digit:]|.]+))$","$1"))

为了将结果显示为日期而不是数字值,您需要适当格式化第 2 列(日期格式)。

为了增加 14 个工作日,LibreOffice 提供了工作日()函数。因此,将其放入 C 列,以“B2”作为第一个参数,以“14”作为第二个参数:

=工作日(B2,14, )

结果:

在此处输入图片描述

顺便说一句,我必须调整你的正则表达式才能让它为我工作(LO 7.0,德语本地化,分号作为参数分隔符) 如下:

=REGEX($A2;".*(([[:digit:]|.]+))";"$1")

因此,我结合使用 DATEVALUE()

=DATEVALUE(REGEX($A2;".*(([[:digit:]|.]+))";"$1"))

相关内容