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)非常易于安装和使用:
- ALT-F11调出VBE窗口
- ALT-I ALT-M打开一个新的模块
- 粘贴东西,closuresVBE窗口
如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx
要删除UDF:
- 如上所示调出VBE窗口
- 清除代码
- 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必须启用这个工作!