Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel XML中减去时间值_Xml_Excel - Fatal编程技术网

在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)