如何在PowerBI中创建含按平方英尺加权平均列的租户属性透视表
PowerBI 纵向属性布局透视表加权平均列实现方案
前置数据准备
- 保留两份基础数据表:
- 原始业务表:包含全量原始字段(Building、Tenant、Type、Floor、Sq Ft、Rent、Term Length)
- 逆透视转换表:你已处理完成的Tenant、Attribute、Value三列结构
- 新建两个独立维度表(无需和其他表建立关联):
- 属性维度表:唯一值为所有需要展示的行属性:
Building、Type、Floor、Sq Ft、Rent、Term Length - 列类型维度表:仅包含两个唯一值:
租户明细、加权平均
- 属性维度表:唯一值为所有需要展示的行属性:
核心DAX度量编写
创建名为「矩阵展示值」的度量,代码如下:
矩阵展示值 = VAR 当前列类型 = SELECTEDVALUE('列类型维度表'[列类型]) VAR 当前行属性 = SELECTEDVALUE('属性维度表'[Attribute]) VAR 全选租户总平方英尺 = CALCULATE(SUM('原始业务表'[Sq Ft]), ALLSELECTED('原始业务表'[Tenant])) RETURN SWITCH( TRUE(), // 租户明细列逻辑:直接读取对应租户的属性值 当前列类型 = "租户明细", SELECTEDVALUE('逆透视转换表'[Value]), // 加权平均列逻辑:按属性类型计算对应值 当前列类型 = "加权平均", SWITCH( 当前行属性, "Sq Ft", SUM('原始业务表'[Sq Ft]), "Rent", DIVIDE(SUMX('原始业务表', '原始业务表'[Rent] * '原始业务表'[Sq Ft]), 全选租户总平方英尺), "Term Length", DIVIDE(SUMX('原始业务表', '原始业务表'[Term Length] * '原始业务表'[Sq Ft]), 全选租户总平方英尺), // 文本类属性无加权计算逻辑,返回占位符 "-" ), BLANK() )
矩阵视觉对象配置
- 行区域:拖入
属性维度表[Attribute],可手动调整属性的展示顺序,关闭阶梯布局实现左对齐 - 列区域:先拖入
列类型维度表[列类型],再拖入Tenant字段到「租户明细」的子层级下 - 值区域:拖入刚才编写的「矩阵展示值」度量
- 格式优化:按需调整数值小数位数、列宽,可隐藏文本属性对应的加权平均单元格的占位符样式
注意事项
如果需要筛选特定建筑、楼层等维度,直接把对应筛选字段加入切片器,度量值会自动基于筛选后的租户范围计算加权平均,无需额外调整代码。
内容的提问来源于stack exchange,提问作者k3b
相关产品推荐
相关产品推荐

