zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Power BI x EasyShu:Top商品门店分布地图可视化

2023-02-18 16:23:54 时间

每款商品对业绩的贡献不是平均的,对Top产品进行单品可视化分析有助于抓住重点。本文尝试在Power BI中结合EasyShu(由微信公众号Excel催化剂李伟坚老师和EasyShu联合打造)的地图编辑功能,完成对商品的地图可视化。

例如下图反映了一款产品在各个门店是否有备货,如果有备货会在门店位置显示产品图片,并且门店标记为绿色;如果无备货标记为红色。此处的作用是可以看到下单最多的Top产品是否全方位覆盖门店。

本文涉及地图仅供个人学习使用

不同产品可以动态切换:

可以带有数据标签,直接显示库存多少:

可以显示Top产品的销售排名、库存排名:

实现该效果的核心原理是DAX嵌入SVG图形,下面进行详细说明。

  1. 准备地图

在高德、百度等地图截图需要的地图区域(本例为西安市部分区域),将地图导入PPT,在PPT中对图片透明度进行一定处理。这是因为该地图为背景,不宜显示过于清楚而产生干扰。

调整完成后,如果是版本较高的PPT,直接另存为可缩放的矢量图形,即SVG格式。如果PPT版本较低,则使用格式转化网站或者inkscape这个开源软件将jpg、png等格式转换为SVG格式。

这样SVG地图的底稿就准备好了。

2.获取商场坐标信息


SVG是矢量图形,左上角的横坐标纵坐标XY是0,0,不同于经纬度坐标系,此处我们需要在该SVG图片中获取每个商场特有的坐标。获取方式是使用Excel插件EasyShu。

EasyShu的增强设置选项卡下,选择SVG与Shape形状处理-采集SVG文件内部坐标点信息。

按照提示将上一步准备的SVG图片导入Excel,双击任意需要的位置,Excel会自动生成该位置的坐标,手动为坐标起个名称。再次双击生成下一个坐标,以此类推直到全部完成。

我首次在Excel见到这样的功能,非常强大。这也是本例最为关键的一个环节,如果不能快速获取每个门店的坐标,将会导致后续工作非常繁琐。EasyShu的详细文档可以参考这个网址:

https://www.yuque.com/easyshu/helpdocument/

3. Power BI导入数据


将生成的商场坐标数据、产品资料、销售库存数据等导入Power BI,并建立关系:

坐标的原始数据XY是合并的,注意在Power Query中进行分列:

产品资料需要有产品图片,产品图片可以是存放在图床上的网址,也可以是本地文件(转换为BASE64,转换方式参考黄兄的这篇文章:一键解决PowerBI本地图片显示问题)。

SVG地图背景也需要导入Power BI,但不是导入外部数据的方式,而是度量值的方式。用记事本打开图片,看到以下代码,把代码中的所有双引号替换为单引号。如果代码中有下图红框的width、height字样,进行删除,因为后期可能在Power BI有拖拽调整地图大小的需求。删除后图表才可以发生联动变化。

调整完成后复制该代码,Power BI中新建一个度量值,粘贴该代码,代码可能有上千行,无需理解代码的含义。

4. 地图可视化


调用原始地图度量值,生成新的可视化度量值,如下:

image标签的作用:当某商场某商品库存量大于0并且商品进行了单选,在商场的位置(前期已使用EasyShu获取)显示该产品图片。

text标签的作用:当库存大于0时,商场名字显示绿色,否则显示红色。

CONCATENATEX函数将以上image和text串联起来,接着使用SUBSTITUTE查找替换将CONCATENATEX串联的内容写入原始地图的SVG代码。

把新建好的度量值放入HTML Content这个视觉对象,地图即可显示,大小按需拖拽。

这个度量值是一种通用模式,在此基础上可以进一步加工,比方文章最开始提到的加上数据标签,加上排名,或者是条形图、饼图等等。

门店涉及到人、货、场的诸多指标,本例仅仅列举了门店地图可视化在商品管理领域的销售、库存展示,后期还会有更深入的应用讲解。