在Excel XML中减去时间值
我试着减去两次,以小时为单位得到值 障碍:在Excel XML中减去时间值,xml,excel,Xml,Excel,我试着减去两次,以小时为单位得到值 障碍: 似乎我需要指定一个完整的日期,我不能简单地使用时间 在另一个示例中,如果我使用完整日期(即2014-08-22T08:30:00),在Excel中,我会在单元格中看到“41875.35”,而不是日期 以下是我当前的标记: <?xml version="1.0"?> <ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> <ss:
- 似乎我需要指定一个完整的日期,我不能简单地使用时间
- 在另一个示例中,如果我使用完整日期(即2014-08-22T08:30:00),在Excel中,我会在单元格中看到“41875.35”,而不是日期
<?xml version="1.0"?>
<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<ss:Worksheet ss:Name="Sheet1">
<ss:Table>
<ss:Row>
<ss:Cell>
<ss:Data ss:Type="DateTime">08:30:00</ss:Data>
</ss:Cell>
</ss:Row>
<ss:Row>
<ss:Cell>
<ss:Data ss:Type="DateTime">17:30:00</ss:Data>
</ss:Cell>
</ss:Row>
<ss:Row>
<ss:Cell ss:Formula="=INT((R[-1]C-R[-2]C)*24)"></ss:Cell>
</ss:Row>
</ss:Table>
</ss:Worksheet>
</ss:Workbook>
更新#1
最新剪辑:
<?xml version="1.0"?>
<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<ss:Worksheet ss:Name="Sheet1">
<ss:Table>
<ss:Row>
<ss:Cell>
<ss:Data ss:Type="String">08:30</ss:Data>
</ss:Cell>
</ss:Row>
<ss:Row>
<ss:Cell>
<ss:Data ss:Type="String">17:30</ss:Data>
</ss:Cell>
</ss:Row>
<ss:Row>
<ss:Cell ss:Formula="=round((timevalue(R[-1]C) - timevalue(R[-2]C)) *24, 1)"></ss:Cell>
</ss:Row>
</ss:Table>
</ss:Worksheet>
</ss:Workbook>
08:30
17:30
问题仍然存在,一旦在Excel中将08:30更改为08:15,公式将指示错误:#VALUE 最终解决方案:
ss:Formula="=ROUND( ((R[-1]C-R[-2]C) * 24) - 0.5, 3)
您使用的是XML,所以您的时间值不是数字。你应该把它们当作字符串。Excel将把它们解析为正确的值。@jbarker2160它适用于Excel中的初始加载。在此之后,对时间的任何手动修改都将导致公式不更新,并在时间上附加“:00”,从而改变其对齐方式。有什么想法吗?你真的应该使用TIMEVALUE函数。这是过程中的一个额外步骤,但Excel在处理时间值方面真的很差劲。@jbarker2160我使用了timevalue(),它似乎仍然有效。但是,更改任何值(即:08:30到08:15)都将创建一个错误值!问题似乎在于你是如何改变价值观的,但如果不知道你是如何做到的,我真的帮不了你。
ss:Formula="=ROUND( ((R[-1]C-R[-2]C) * 24) - 0.5, 3)