三个报表共用一个数据集就好了,只需要配置一次,方法:在PBID里数据源换成Power BI 数据集。
1、尽量不要改列名,保持数据源规范 2、如果实在要改,应避免添加对列名引用的步骤,通常报错是由于系统自动添加了更改类型的步骤导致的,可以用 Table.ColumnNames 动态获取列名,替换系统自动生成的固定列名
Table.ColumnNames
@洞里乾坤 没有开通邮箱,只能登Power BI
楼上全部已发
@zhuchu 既加上数字的月份,又加上文本的月份,然后用 '按列排序' 功能对文本按照数字排序就好了。
这个是系统自动生成的,无法修改,所以还只能添加新列。 至于层次结构,再新建一个也不是什么难事,即使不用层次结构,直接分别拖入年月日也能下钻。
根据报错提示来看就是多对一关系中的一端重复了,去重保证唯一不重复就没问题了。 至于你说的合并查询,那是在ETL阶段的操作,你的报错是在建模阶段,不是一码事。
优化代码
首先AM前面的引号有问题导致语法错,另外第四参数里的 function Text.Replace,y表示第二参数中的待替换文本,类型应该是text,而你把它改成了list,所以又会报数据类型的错。Table.ReplaceValue不支持批量替换,可在右上角搜索List.Accumulate搭配使用实现批量替换。
Text.Replace
Table.ReplaceValue
List.Accumulate
先不谈能不能抓到数据,一眼看上去语法问题就太多了啊,content及之后的步骤都有问题
content
很明显是维度表里有重复,因为你建立一对多关系的时候是唯一的,数据更新之后不唯一了,所以报这个错。 你要考虑的应该是重复值是哪来的,应该如何去重。
用 sumx 算总计,占比用度量值不要用计算列算,你得把数据源贴出来看看
sumx
divide(sum([销售额],calculate(sum([销售额]),dateadd([date],-1,day)))-1
在Excel.Workbook外面套Table.PromoteHeaders(Table.Skip())
Excel.Workbook
Table.PromoteHeaders(Table.Skip())
@ 莫语 直接app.powerbi.com登录