
Markdown是一种轻量级标记语言,可以使用简单的符号定义文本格式。本文介绍在Power BI使用Markdown画表格。新建一个度量值:
MD.表格1 = "
|门店|销售额|业绩达成率|
|---|---|---|
|A店铺|100|25%|
|B店铺|200|30%|"度量值中使用"|"区分每个单元格,第一行为标题,第二行|---|用来区分标题行和内容行,剩下的为表格内容。
在第三方视觉对象库加载ReadMe:

Text Measure拖拽上方的度量值:

可以看到表格被正常渲染:

每列的对齐方式可以通过|---|加入冒号调整,比如|---:|表示右对齐。接下来将表格内容和Power BI模型绑定。新建度量值:
MD.表格2 = "
| 门店 | 销售额 | 业绩达成率 |
|---|---|---|"
& UNICHAR ( 10 )
& CONCATENATEX (
VALUES ( '门店'[门店] ),
"|" & [门店] & "|" & FORMAT ( [M.销售额], "#,#" ) & "|" & FORMAT ( [M.业绩达成率], "0%" ) & "|",
UNICHAR ( 10 ),
[M.销售额], DESC
)放入ReadMe得到:

添加总计行:
MD.表格3 =
VAR t = VALUES('门店'[门店])
RETURN
"
| 门店 | 销售额 | 同期销售额 |
|---|---|---|"
& UNICHAR ( 10 )
& CONCATENATEX (
t,
"|" & [门店] & "|" & FORMAT ( [M.销售额], "#,#" ) & "|" & FORMAT ( [M.同期销售额], "#,#" ) & "|",
UNICHAR ( 10 ),
[M.销售额], DESC
)
& UNICHAR ( 10 ) &
" |**总计**|**" & FORMAT ( [M.销售额], "#,#" ) & "**|**" & FORMAT ( [M.同期销售额], "#,#" ) & "**|"总计行的文本通过**包裹进行了加粗:

在总计行下方可以继续添加均值、中位值等行:

表格的标题也可以数据化:

度量值如下:
MD.表格5 =
VAR t = VALUES('门店'[门店])
RETURN
"
| 门店 | " & FORMAT(MAX('日期表'[Date]),"YYYY年M月") & "销售额 | 同期销售额 |
|---|---:|---|"
& UNICHAR ( 10 )
& CONCATENATEX (
t,
"|" & [门店] & "|" & FORMAT ( [M.销售额], "#,#" ) & "|" & FORMAT ( [M.同期销售额], "#,#" ) & "|",
UNICHAR ( 10 ),
[M.销售额], DESC
)
& UNICHAR ( 10 ) &
" |**总计**|**" & FORMAT ( [M.销售额], "#,#" ) & "**|**" & FORMAT ( [M.同期销售额], "#,#" ) & "**|"以上可以看到,表格中的所有元素都是DAX驱动,总计列不妨放到最前面:

前面介绍了HTML表格《Power BI HTML 表格的四大优势》,今天又分享了Markdown,同样是DAX画表,二者应用场景有何不同?
在内置表格矩阵无法实现目标功能的情况下,如果格式、交互需求比较简单,使用Markdown,其他全部使用HTML。Markdown的度量值比较简短,几乎没有学习成本,维护相对容易。