繁体   English   中英

MS Word 2010:表中的时间增量

[英]MS Word 2010: time increment in table

我有一个 Word 文档,里面有一个很大的时间表,n 行,每一行都与一天中的一项活动有关。 我在表格的一列中为每个活动分配了持续时间 D(以分钟为单位)和活动开始时间 T,其中 T(N+1) = T(N)+D(N):

Name      | Time  | Duration
Activity1 | 09:00 | 5
Activity2 | 09:05 | 10
Activity3 | 09:15 | ...

我希望时间列是一系列公式,这样如果我更改开始时间或持续时间,添加或删除一行,它们就会正确更新整个表格。

目前,我每次都将列表导出到 excel 进行计算,我不想嵌入工作表,因为压力不从文档创建者那里更改表格。

有没有办法在word中做到这一点?

在我对行插入的评论中,您可以使用以下域代码来执行此操作。

假设时间在 B 列中,初始时间在 B2 中,而持续时间只是 C 列中的分钟类型数。

然后在 B2 中,您有以下字段。 要设置初始时间,用户必须显示字段并修改 { SET s } 字段中的时间。 或者您可以改用 ASK 字段。

{ SET s "09:15" }{ SET m { ={ref s \@HH }*60+{ref s \@mm } } }{ SEQ r \r2 \h }{ SET t1 "mod(int((m+SUM(C{ SEQ r \c }:C" }{ SET t2 "))/60),24)*100+mod(m+SUM(C{ SEQ r \c }:C" }{ SET t3 "),60)" }{ref  s }

在 B3 及以下,您将需要以下字段:

{ SET c "{ t1 }{ SEQ r \c }{ t2 }{ SEQ r \c }{ t3 }"  }{ SEQ r \h }{ ={ c } \#00:00 }

时间计算建立在 c 中,例如在 B5 中,它将是,

mod(int(initial_time_in_minutes+SUM(C2:C5))/60),24)*100+mod(initial_time_in_minutes+SUM(C2:C5),60)

所有 {} 都是特殊的字段代码大括号对,您可以使用 ctrl-F9 在 Windows Word 中输入它们,用户必须选择列并按 F9 才能重新执行字段。 如果您愿意,您可以消除这些字段中的许多空格。 您可能需要避免使用看起来像单元格地址(“t1”等)的书签名称。

我最终确定了一个类似于上面 bibadia 的解决方案,没有引用列:

表格前的字段是:

设置表格的开始时间

{ set th {9}  }

设置表的开始分钟

{ set tm {15} }

然后在每次单元格中粘贴以下字段:

打印时间

{ ref th \# 00 }:{ ref tm \# 00 }

获取从列向右的增量并添加到分钟

{ set tm { = SUM(RIGHT, { ref tm }) } }

从 tm 中去除任何小时数并添加到小时数(这不像 bibadia 那样计算 24 次翻转)

{ set th { = SUM ({ ref th }, int({ ref tm }/60)) } }

获取剩余分钟数

{ set tm { = mod({ref tm, 60}) }}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM