从Excel向Power BI导入矩阵型数据及分析需求求助
数据导入与数据类型修正
你的数据集是宽表结构,直接导入会导致数据类型识别混乱,第一步必须在Power Query编辑器里调整结构:
- 导入数据后进入Power Query编辑器
- 选中
Type和Study Name两列,右键选择逆透视其他列,把UK/USA/Brazil这三列转成属性(即国家)和值两列 - 此时数据结构变为:Type | Study Name | Country | Value
- 拆分数据并修正类型:
- 新建自定义列
Number Value,公式:if [Type] = "Number" then [Value] else null,将该列数据类型设为整数 - 新建自定义列
Date Value,公式:if [Type] = "Date" then [Value] else null,数据类型设为日期(注意你的日期格式是DD/MM/YY,若Power BI识别错误,可在转换选项里手动指定格式) - 新建自定义列
Date2 Value,公式:if [Type] = "Date 2" then [Value] else null,数据类型同样设为日期
- 新建自定义列
- 删除原来的
Value列,加载数据到Power BI模型
任务1:计算占比低于总数3%的国家数量
用DAX分三步实现:
- 先创建度量值计算单研究的总数:
Study Total = CALCULATE(SUM('你的表名'[Number Value]), ALLEXCEPT('你的表名', '你的表名'[Study Name])) - 再创建度量值计算国家占比:
Country Percentage = DIVIDE(SUM('你的表名'[Number Value]), [Study Total], 0) - 最后创建度量值统计符合条件的国家数量:
把这个度量值放在卡片图,搭配Countries <3% Count = COUNTROWS(FILTER(VALUES('你的表名'[Country]), [Country Percentage] < 0.03))Study Name切片器就能查看不同研究的结果
任务2:计算两个日期值之间的月份间隔
创建DAX度量值适配筛选需求:
Month Difference = DATEDIFF(MAX('你的表名'[Date Value]), MAX('你的表名'[Date2 Value]), MONTH)
将该度量值放入表格,搭配Study Name和Country列,就能看到每个研究+国家组合的月份间隔
任务3:同一页面展示三项研究数据并支持筛选
页面布局方案:
- 顶部放置
Study Name多选切片器、Country切片器 - 左侧放置任务1的卡片图(显示占比<3%的国家数)和任务2的卡片图(显示月份间隔)
- 中间放置簇状柱形图:X轴选
Country,Y轴选Number Value,图例选Study Name,直观展示三项研究的数值对比 - 底部放置矩阵表:行选
Study Name,列选Country,值分别放入Number Value、Date Value、Date2 Value、Month Difference,方便查看全量细节
所有可视化组件会自动响应切片器筛选,切换条件时数据实时更新
内容的提问来源于stack exchange,提问作者stayschemin
相关产品推荐
相关产品推荐

