如何查询User Stories、Bugs及其子任务并生成TFS2017工时对比报表
搞定TFS 2017的工时对比报表:从查询到可视化全流程
嘿,我刚好之前帮团队做过类似的报表,给你梳理下具体步骤,在TFS 2017里完全能实现:
第一步:先搭对查询,把父项和子任务关联起来
你需要的是能展示User Story/Bug(父)+ 它们的子任务的层级数据,用TFS的「树状查询」最方便:
- 打开TFS Web端或者Visual Studio的Team Explorer,新建一个查询,选「树」类型
- 顶层筛选条件这么设:
- 工作项类型:选「User Story」或「Bug」(用“或”逻辑组)
- 状态:根据你要统计的范围选,比如只看已完成的就选「Closed」「Resolved」,想全量统计就留空
- 再加迭代路径、区域路径这些筛选,缩小范围到你关心的项目/迭代
- 子节点(父项的直接子任务)的筛选:
- 工作项类型:选「Task」(如果你的Bug也存在子Bug的场景,也可以加上「Bug」,但看你需求是子任务,所以主要选Task即可)
- 链接类型默认是「父子」,不用修改,这样就能把每个父项对应的子任务都拉取出来
要是你更喜欢用「工作项和直接链接」查询也可以:顶层查询User Story/Bug,链接类型选「子项」,链接的工作项类型设为Task,最终效果是一致的。
第二步:导出数据到Excel,整理成可计算的格式
查询结果出来后,直接导出到Excel就行:
- 在查询结果页面点击「导出」,选择Excel格式
- 导出后的Excel可能是层级折叠状态,先全选所有行,点击「取消组合」展开所有内容
- 确保每一行子任务都能关联到父项的信息——如果导出的表格里父项和子项是分开展示的,用Excel的VLOOKUP或者Power Query快速把父项的ID、标题匹配到子任务行里,方便后续分组统计
第三步:做对比报表,可视化预估vs实际工时
这一步用Excel的数据透视表+图表最快:
- 选中所有整理好的数据,插入「数据透视表」
- 行字段选择父项的标题或ID(这样每个父项会单独占一行)
- 值字段分别添加「Original Estimate(预估工时)」和「Completed Work(实际工时)」,都设置为「求和」类型
- 要是需要按迭代、状态等维度筛选,就把对应的字段拖到筛选器里
- 最后插入簇状柱状图,把预估和实际工时放在同一维度下对比,就是你想要的报表样式了
额外小技巧
- 要是只想统计已完成的子任务,在查询的子节点筛选条件里加个「状态=Closed/Completed」即可
- 如果你想用TFS自带的SSRS报表,得先配置TFS的分析服务,再用SSRS搭建报表,但这个步骤比较繁琐,快速出报表的话还是用Excel更省心
内容的提问来源于stack exchange,提问作者Bill Greer




