如果在跨国公司或从事外贸行业,需要使用别的国家/地区地图在Power BI展示,推荐amcharts和mapsvg这两个地图资源。这两个资源也有我国的地图,但是不建议使用。后续会针对我国的省市区县着色地图进行专门讲解。
免责申明:本公众号涉及地图仅供学习与交流
视频中涉及的地图文件数据处理过程见下方,复制到Power Query的高级编辑器即可复用。
MapSVG资源的处理:
let
源 = Table.FromColumns({Lines.FromBinary(File.Contents("D:\wujunmin\SVG 地图\canada.svg"), null, null, 936)}),
筛选的行 = Table.SelectRows(源, each Text.Contains([Column1], "title=") or Text.Contains([Column1], "id=")),
按分隔符拆分列 = Table.SplitColumn(筛选的行, "Column1", Splitter.SplitTextByEachDelimiter({"="}, QuoteStyle.Csv, false), {"Column1.1", "Column1.2"}),
更改的类型 = Table.TransformColumnTypes(按分隔符拆分列,{{"Column1.1", type text}, {"Column1.2", type text}}),
替换的值 = Table.ReplaceValue(更改的类型,"/>","",Replacer.ReplaceText,{"Column1.2"}),
去除的文本 = Table.TransformColumns(替换的值,{{"Column1.1", Text.Trim, type text}, {"Column1.2", Text.Trim, type text}}),
清除的文本 = Table.TransformColumns(去除的文本,{{"Column1.1", Text.Clean, type text}, {"Column1.2", Text.Clean, type text}}),
已添加索引 = Table.AddIndexColumn(清除的文本, "索引", 1, 1, Int64.Type),
已添加自定义 = Table.AddColumn(已添加索引, "序号", each if Number.IsEven([索引]) then [索引]/2 else ([索引]+1)/2),
删除的列 = Table.RemoveColumns(已添加自定义,{"索引"}),
已透视列 = Table.Pivot(删除的列, List.Distinct(删除的列[Column1.1]), "Column1.1", "Column1.2")
in
已透视列
amcharts资源的处理:
let
源 = Table.FromColumns({Lines.FromBinary(File.Contents("D:\wujunmin\SVG 地图\usa.svg"), null, null, 936)}),
已提取分隔符之间的文本 = Table.TransformColumns(源, {{"Column1", each Text.BetweenDelimiters(_, "id=", "class=""land"""), type text}}),
筛选的行 = Table.SelectRows(已提取分隔符之间的文本, each ([Column1] <> "")),
按分隔符拆分列 = Table.SplitColumn(筛选的行, "Column1", Splitter.SplitTextByDelimiter("title=", QuoteStyle.Csv), {"ID", "名称"}),
更改的类型 = Table.TransformColumnTypes(按分隔符拆分列,{{"ID", type text}, {"名称", type text}})
in
更改的类型