您能否告诉我是否可以保留来自一个PowerBI(桌面版)的报告,只是更改数据源以相同的方式显示相同的数据(报告),但是来自两个不同的来源。这基本上意味着我将拥有一个"模板"我可以连接到任何数据源的PowerBI(当然具有相同的数据)。
或者只是在每个新数据源的新报告上重新创建小部件的唯一方法是这样做吗?
谢谢, ģ
答案 0 :(得分:2)
您可以使用一种模式来使这项工作相当顺利。当您转到Power BI Desktop中的查询视图时,右键单击查询时会出现一个'引用'选项。这样做是创建一个新查询,其中初始状态是引用查询的结果。这非常强大!
那么你可以做的就是让你的第一个查询类似于: 让 Source = OData.Feed(" feedname") 在源
然后使用该查询构建所有其他查询。这将让您快速更改源,而不会打扰您的任何其他逻辑。
你可以根据需要将它带到更加疯狂的范围。例如,有一段时间我会从我正在使用的服务之一接收电子邮件中的导出.CSV文件。要更新'我的报告,我需要更改我的报告以从新文件中提取数据(痛苦)。所以我做的是我做了一组查询,1)列出给定文件夹中的文件,2)选择最新文件,3)从最新文件加载数据。只要文件的架构没有改变,一切都很好!
第一次查询:
let
FilesList = Folder.Files("C:\Users\username\Report Data"),
c1 = Table.TransformColumnTypes(FilesList ,{{"Date created", type datetime}}),
c2 = Table.SelectRows(c1, each Text.Contains([Extension], ".csv")),
c3 = Table.Sort(c2,{{"Date created", Order.Descending}}),
LatestCSVFileTable = Table.FirstN(c3,1),
AddedFileName = Table.AddColumn(LatestCSVFileTable , "File Path", each [Folder Path] & [Name]),
LatestCSVFileNameAsTable = Table.RemoveColumns(AddedFileName,{"Content", "Name", "Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path"}),
FileNameToLoad = Record.Field(Table.First(LatestCSVFileNameAsTable), "File Path"),
//If you're lucky, you can just use Csv.Document(File.Contents("C:\Examples\YourFileName.csv"),null,",",null,1252)
//I wasn't so I needed some more complicated logic
FileContents = File.Contents(FileNameToLoad),
Source = Table.FromColumns({Lines.FromBinary(FileContents ,null,null,1252)}),
in
Source
第二次查询
let
Source = #"First Query's Name"
// continue your logic here
in
Source
这种方法效果很好。我通常把第一个查询放在我调用的文件夹中#34; RAW"以及我调用的文件夹中的第二个查询"数据"所以我知道要编辑哪些以及单独留下哪些。