Power BI中如何将返回日期的度量值作为矩阵列展示?
Power BI将日期度量值转为矩阵列的实现方法
核心思路
矩阵的列区域仅支持表字段(而非度量值),所以需要先把4个日期度量值的结果转化为可用于列维度的字段,再配合动态度量值匹配对应数值。
具体步骤
创建日期维度表
用DAX生成包含4个日期度量值结果的计算表,作为矩阵的列维度源:日期列维度 = UNION( ROW("日期", [度量值1]), ROW("日期", [度量值2]), ROW("日期", [度量值3]), ROW("日期", [度量值4]) )注:如果日期度量值是随行上下文动态变化的(比如每行对应不同日期),这个静态表不适用,需要看后面的特殊情况处理。
配置矩阵列区域
将新建的「日期列维度」中的「日期」字段拖入矩阵的列区域,替换原列内容(如果有的话)。创建动态数值度量值
编写一个度量值,根据当前列选中的日期,返回对应行的数值结果:动态匹配数值 = VAR 当前列日期 = SELECTEDVALUE('日期列维度'[日期]) RETURN SWITCH( TRUE(), 当前列日期 = [度量值1], [对应数值1], 当前列日期 = [度量值2], [对应数值2], 当前列日期 = [度量值3], [对应数值3], 当前列日期 = [度量值4], [对应数值4], BLANK() )这里的「对应数值1-4」就是你原本放在矩阵值区域的、和每个日期对应的数值度量值。
替换值区域内容
把矩阵值区域原来的度量值全部移除,拖入刚创建的「动态匹配数值」度量值。调整列排序(可选)
在列区域的「日期」字段上右键,选择「排序」→「手动排序」,按需调整4个日期的展示顺序。
特殊情况处理(日期随行动态变化)
如果你的4个日期度量值是根据每行的上下文动态计算的(比如每行的日期结果都不同),静态日期维度表会失效,此时需要重构数据结构:
- 用DAX生成包含行标识、日期、数值的虚拟表,比如:
动态日期数值表 = ADDCOLUMNS( SUMMARIZE('你的源表', '你的源表'[行区域字段]), "日期1", [度量值1], "数值1", [对应数值1], "日期2", [度量值2], "数值2", [对应数值2], "日期3", [度量值3], "数值3", [对应数值3], "日期4", [度量值4], "数值4", [对应数值4] ) - 然后将这个虚拟表导入Power Query,用「逆透视列」把分散的日期和数值合并为统一的日期列和数值列,再将处理后的表作为矩阵数据源,重新配置行、列、值区域。
内容的提问来源于stack exchange,提问作者user18729535
相关产品推荐
相关产品推荐

