Excel公式将包含星期和天数的文本转换为date

假设1周= 5天,我希望所有事情都在几天内完成。 所以我有以下数据(也要忽略>和<符号):

1w 3d > 1w 4d > 1w 3.25d < 2w 3.25d > 1w 0.75d < 4.25d 0d 

想要答案看起来像:

 8, Calculated like so --> ((1 week * 5) + 3 days) 9 8.25 13.25 5.75 4.25 0 

提前谢谢你的帮助!

对于公式的方法:

 =IFERROR(TRIM(SUBSTITUTE(SUBSTITUTE(LEFT(A1,FIND("w",A1)-1),">",""),"<","")),0)*5 + TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(MID(A1,IFERROR(FIND("w",A1),0)+1,LEN(A1)),">",""),"<",""),"d","")) 

在这里输入图像说明


编辑

根据你的评论,这个公式应该处理这个问题。

 =IFERROR(TRIM(SUBSTITUTE(SUBSTITUTE(LEFT(A1,FIND("w",A1)-1),">",""),"<","")),0)*5 + IFERROR(--TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(MID(A1,IFERROR(FIND("w",A1),0)+1,LEN(A1)),">",""),"<",""),"d","")),0) 

考虑以下一行用户定义函数:

 Public Function xvert(sin As String) As Double While Not Left(sin, 1) Like "[0-9]" sin = Mid(sin, 2) Wend xvert = Evaluate(Replace(Replace(Replace(sin, " ", "+"), "d", ""), "w", "*5")) End Function 

在这里输入图像说明

UDF的工作原理是将数据转换成公式,然后评估公式。 所以:

3w 4.3d

被评估为:

= 3 * 5 + 4.3

用户定义的函数(UDF)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开一个新的模块
  3. 粘贴东西,closuresVBE窗口

如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除UDF:

  1. 如上所示调出VBE窗口
  2. 清除代码
  3. closuresVBE窗口

从Excel中使用UDF:

= myfunction的(A1)

要了解有关macros的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

有关UDF的具体信息,请参阅:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

macros必须启用这个工作!