首页  ›  经典案例  ›  项目成本

建筑项目分包与产值看板

在建项目十几个,分包结算、产值确认、成本归集分散在多张表里,领导一问某项目现在什么情况就得现算。
共 4 步,涉及 FILTER、SUMIFS、GROUPBY、LET、动态数组

项目成本进阶FILTERSUMIFSGROUPBYLET动态数组

原始困境

在建项目十几个,分包结算、产值确认、成本归集分散在多张表里,领导一问某项目现在什么情况就得现算。

数据情况

合同表(项目、合同额、分包合同额)、产值表(项目、期间、确认产值)、成本表(项目、费用类型、金额)三张表分开维护。

解决步骤

1选定项目后带出该项目全部产值明细
=FILTER(产值表!B2:D5000, 产值表!B2:B5000=$B$1, "该项目暂无产值记录")
B1 是下拉选择的项目名。切换项目,明细整块跟着换,不用每次重新筛选再复制。
2累计产值与累计成本并排汇总
=SUMIFS(产值表!D:D, 产值表!B:B, $B$1)&" / "&TEXT(SUMIFS(成本表!C:C, 成本表!B:B, $B$1), "#,##0.00")
累计产值与累计成本放在一格直观对比。若数据上万行,建议把整列引用改成实际范围如 D2:D5000,性能更好。
3按费用类型拆分成本构成
=GROUPBY(FILTER(成本表!C2:C5000, 成本表!B2:B5000=$B$1), FILTER(成本表!D2:D5000, 成本表!B2:B5000=$B$1), SUM, 2, 1)
先 FILTER 出本项目数据,再 GROUPBY 按费用类型汇总。人工费、材料费、机械费、分包费各占多少一目了然。两条公式嵌套是动态数组的核心用法。
4算毛利率,判断项目健康度
=LET(产值, SUMIFS(产值表!D:D,产值表!B:B,$B$1), 成本, SUMIFS(成本表!C:C,成本表!B:B,$B$1), IF(产值=0,"未开工",TEXT((产值-成本)/产值,"0.0%")))
LET 把中间量命名,最后一步才算毛利率。避免一个公式里 SUMIFS 重复写四遍,日后调整口径也只需改一处。

效果

做成一个选项目、全部指标自动刷新的看板页。领导临时问项目情况,30 秒内能给出产值、成本、毛利率和成本构成。

易错点

FILTER 的条件列与返回列行数必须完全一致,否则报 #VALUE!。另外某项目确实无数据时,第三个参数 if_empty 不要省略,否则会报 #CALC!。

进阶优化

把项目名做成数据验证下拉,再给成本构成配一个绑定动态区域的饼图,就是一套轻量项目看板,无需 Power BI。

相关阅读

← 返回财税实务通首页,查看更多函数与政策