5 months in role
1 year 11 months in role
5 years 1 month in role
2 years 8 months in role
1 year in role
3 years 9 months in role
您好,我正在尝试将上面的列表转换为小数日期。例如。我希望 [3年9个月的角色] 在另一个单元格中显示为 3.75 ,但我真的很难找出一个公式。到目前为止我已经
了=LEFT(A2,(FIND(" ",A2,1)-1))
但这显然只是抓住了空间之前的第一个值。这个公式需要考虑上面的变化(有时只显示月份等)。在此先感谢您的帮助。
答案 0 :(得分:0)
使用此数组公式:
=TRIM(MID(" 0 Year " & A1,MAX(IFERROR(FIND("}}}",SUBSTITUTE(" 0 year " & A1,"year","}}}",{1,2})),0))-3,2))+TRIM(MID(" " & A1 & " 0 month",MIN(IFERROR(FIND("}}}",SUBSTITUTE(" " & A1 & " 0 month","month","}}}",{1,2})),999))-3,2))/12
作为数组公式,需要在退出编辑模式时使用ctrl-Shift-Enter而不是Enter来确认。
答案 1 :(得分:0)
电源查询解决方案。假设Excel中的单个列名为(“Table1”),其列标题为“Text”。如果它有帮助!
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
Month = Table.AddColumn(Source, "Month", each if Text.Contains([Text], "month") = true then
try Text.Middle([Text], Text.PositionOf([Text], "month") -3, 2) otherwise
Text.Middle([Text], Text.PositionOf([Text], "month") -2, 2) else 0),
Year = Table.AddColumn(Month, "Year", each if Text.Contains([Text], "year") = true then
try Text.Middle([Text], Text.PositionOf([Text], "year") -3, 2) otherwise
Text.Middle([Text], Text.PositionOf([Text], "year") -2, 2) else 0),
ToNumber = Table.TransformColumnTypes(Year,{{"Month", Int64.Type}, {"Year", Int64.Type}}),
Calc = Table.AddColumn(ToNumber, "Calc", each [Year]+([Month]/12))
in
Calc
答案 2 :(得分:0)
首先将总年月数转换成月数。
例如:4年5个月= 53个月。
然后将总月份除以12得到小数点计算。
例如:53/12 = 4.41年。