建表容易修改难
大家在Power BI里经常需要创建一些辅助表,最简单的方法就是用“Enter Data”来创建数据
但是假如你想修改enter data创建出来的table,那就很困难了(在下不是专门搞powerbi的,要是哪位高手有更好的方法,请指教)
如果你点击“Edit Query”,你会发现这个表实际上把数据保存成一个二进制文件(base64字符串)
例如
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("Tc67DsIwDAXQX6kyd+iDx4xgYakQHaMOFrWqSGliJab8PsYKiNHH90rXWnNLSJCAXQymNq2ZamvOMTyQuLrj5vAl3CmfiBK4DF6kVxlwiey0nAV3v1jcwFcjw4LCe+XxmQnDjLPIQeWSIpHex7+iQtuoXFfyuGLg776uKQM/D9ZoXwhks/elLTa9AQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Project Status" = _t, Order = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Project Status", type text}, {"Order", Int64.Type}})
in
#"Changed Type"
所以你得先解压这个字符串,修改数据,然后再encode。
如果你仔细看这段power query代码的时,你会发现PowerBI用了Compression.Deflate这个方式来解压。
Decode/Encode with Deflate
我一开始也不知道咋搞,又是问copilot又是问deepseek,后来发现网上有蛮多在线encode/decode deflate格式的工具,比如这个jgraph.github.io/drawio-tool…
界面非常简单,注意它默认是开启“URL Encode”的,你要把这个setting给关了,然后就直接把base64字符串给贴上去,点“Decode”进行解压,你会得到一个数组。
你改了数组之后,然后再点“Encode”,会生成一串新的base64字符串,然后你在powerbi里把它替换上去就好了。
是不是很简单!
最好用DATATABLE 函数创建辅助表
前面说了“Enter Data”是最简单的一种创建辅助表的方式,如果大家会一点DAX语法,最好还是用DATATABLE函数来创建。 比如
MyTable = DATATABLE(
"ID", INTEGER,
"Name", STRING,
"Age", INTEGER,
"Department", STRING,
{
{1, "Alice", 30, "Sales"},
{2, "Bob", 25, "Marketing"},
{3, "Charlie", 35, "IT"}
}
)
这样方便以后的修改,就不需要像我这样苦思冥想了
后来我又发现更简单的方法,www.youtube.com/watch?v=5nE… 可以直接双击“Source”进行修改。。。