求助:使用DAX Studio中的DAX代码实现行转列(Transpose)功能
DAX 实现逆透视(行转列)操作的代码方案
假设你的原始数据表名为 RawData,结构如下(对应图1):
| 类别 | 数值1 | 数值2 | 数值3 |
|---|---|---|---|
| 类别A | 10 | 20 | 30 |
| 类别B | 15 | 25 | 35 |
要转换成图2的目标格式(将多列数值转为多行的指标名称+指标值结构),可以用DAX的 UNION 结合 SELECTCOLUMNS 实现,代码如下:
TransposedData = UNION( -- 处理"数值1"列 SELECTCOLUMNS( RawData, "类别", RawData[类别], "指标名称", "数值1", "指标值", RawData[数值1] ), -- 处理"数值2"列 SELECTCOLUMNS( RawData, "类别", RawData[类别], "指标名称", "数值2", "指标值", RawData[数值2] ), -- 处理"数值3"列 SELECTCOLUMNS( RawData, "类别", RawData[类别], "指标名称", "数值3", "指标值", RawData[数值3] ) )
代码说明
SELECTCOLUMNS:针对每一列数值,生成包含类别、固定指标名称、对应指标值的临时表。UNION:将多个临时表合并为一个完整的结果表,即目标格式结构。
如果你的原始数据有更多数值列,只需按照上述格式新增对应的SELECTCOLUMNS块即可。
内容的提问来源于stack exchange,提问作者Aya
相关产品推荐
相关产品推荐

