BO Webi技术问题:按订单分组算平均周转时间遇#MULTIVALUE错误
解决订单分组后计算平均周转时间的#MULTIVALUE错误
问题描述
尝试将检验订单按类别分组并计算每组的平均周转时间,但表格中出现#MULTIVALUE错误,需要解决方法。
主查询

用到的公式
检验订单分组公式
=If [Primary Orderable Item Mnemonic] InList ("Complete Blood Count w/Diff Auto";"Complete Blood Count w/o Diff";"Prothrombin Time w/INR";"PTT";"APTT";"Partial Thromboplastin Time") Then "Hematology" ElseIf [Primary Orderable Item Mnemonic] InList ("CMP";"Comprehensive Metabolic Profile";"BNP";"Creatinine") Then "Chemistry" Else "Other"
订单到完成时间差(分钟)公式
=TimeBetween([Order Date & Time];[Completed Date & Time];MinutePeriod)
订单到完成时间(MM)公式
=If [Time Diff (Order to Completed)] >= 0 And Not(IsNull([Order Date & Time])) Then [Time Diff (Order to Completed)]
目标需求
想要生成如下汇总表,展示每组的平均周转时间:
使用的平均计算公式:
=Average([Order to Completed (MM)])
解决建议
- 清理维度字段:汇总表中只保留检验订单分组这一个维度,移除所有未聚合的明细字段(如订单ID、具体检验项目名称等),避免同一分组下返回多个离散值。
- 校验时间记录唯一性:确认每个订单对应的[Order Date & Time]和[Completed Date & Time]是一对一关联,不存在单个订单多条时间记录的情况,否则会导致时间差计算返回多值。
- 调整平均计算逻辑:若[Order to Completed (MM)]为维度属性,改用聚合嵌套公式,如
=Average(Max([Order to Completed (MM)])),先对每个订单取唯一时间值再计算分组平均。 - 优化时间过滤公式:在[订单到完成时间(MM)]的公式中加入聚合函数,确保单个订单只返回一个值,例如:
=If [Time Diff (Order to Completed)] >= 0 And Not(IsNull([Order Date & Time])) Then Max([Time Diff (Order to Completed)])
内容的提问来源于stack exchange,提问作者jsisock79
相关产品推荐
相关产品推荐

