PowerBI HtmlContent生成表格
假设有销量表:
1.PowerBI 导入 Html Content对象,并拖入报表
2.新建度量值:
度量值 =
VAR colCount = DISTINCTCOUNT('销量'[产品])
VAR ColumnHeaders = "<tr><th style='border:1px solid black; padding:5px; text-align:center;' colspan="&colCount&">销量统计</th></tr>"
VAR ColumnList = CONCATENATEX(//遍历'销量'[产品],并组装<td>DISTINCT(SELECTCOLUMNS('销量', "col", '销量'[产品])),"<td style='border:1px solid black; padding:5px; text-align:center;'>" & [col] & "</td>","")
VAR DataRow = CONCATENATEX(//遍历'销量'[产品]DISTINCT(SELECTCOLUMNS('销量', "col", '销量'[产品])),VAR CurrentValue = [col]VAR FilteredData = FILTER('销量', '销量'[产品] = CurrentValue)//根据每个产品的值,去取对应的销量值VAR SumValue = SUMX(FilteredData, '销量'[销量])RETURN"<td style='border:1px solid black; padding:5px; text-align:center;'>" & SumValue &"</td>","")RETURN"<table style='border:1px solid Grey; border-collapse:collapse; width:640px'>" & "<tr>" & ColumnHeaders & "</tr>" & "<tr>" & ColumnList & "</tr>" &"<tr>" & DataRow & "</tr>" & "</table>"
解释一下,关键在于CONCATENATEX函数,它可以遍历 销量表的[产品]字段的值,并把它拼接成table的column header。
计算每个产品对应的销量,也是用CONCATENATEX函数去遍历[产品]
3. 把度量值拖入Html Content的Value字段:
4. 效果:
优点是可以实现一些表格和矩阵无法实现的复杂界面,缺点是不能与其他视觉对象进行交互