power bi

客户并不总是刁蛮任性的:一次以客户需求为导向的Power BI实

2019-04-16  本文已影响174人  天殇龙行

前言

        在我们的印象中,谈到客户总是会首先想到“五彩斑斓的黑”,这是平面设计师永远的痛,因为主观审美大行其道,根本无处说理。作为一名数据设计师却有所不同,不但有很多道理可讲,而且接触到的往往是一些有基础甚至水平相当只是擅长不同的客户。客户提出的很多需求都是符合用户习惯的,稻盛和夫在《活法》中写道“作业现场有神灵”,客户未来想要怎么使用你的BI产品,他是比你更有发言权的。

客户需求

        本次的客户是一位洗车店老板,他想要做一份BI来全面分析自己的运营数据,了解自己的业务和客户,而且沟通下来并不很在意页面美化。我总结为:这种自己用的,花不花哨倒是其次,用得舒服才重要。虽然为了实现他的某些需求,需要创造某些“非常规”操作,有时一整天都很头痛,但是每每换位思考,自己如果是客户,也会想要实现这些功能,便都能释然进而全力以赴了。

        下面我介绍他的4个比较典型的需求及实现方法。


1、同屏对比

需求:在一个屏幕内可以对比2个时间段内同一个销量指标的差异。

         直接把销量拖2次到图表区是不行的,因为它们会受到同一个日期切片器的控制。所以设计的关键是斩断同一个指标本身的联系。设计方法也不难,就是将原来的表格复制一份,分别使用表1 和表2的销量指标,BI就会认为它是2个指标,从而能够通过分开的日期切片器来控制了。

日期切片器可以分开控制同一个指标

2、同期对比

需求:在显示今天的销量的同时,可以同时对比前一天和上周同期的销量。

        可以看作上一个需求的升级版,用上一个同屏对比的方法可以实现,但是在客户选定今天的日期后,需要到另外一个日期切片器人工选定今天的前一天。这就降低了用户体验,所以设计的关键是如何用一个日期控制3个指标。能这样描述出关键也就能想到设计思路了,现在的一个日期只对应一个值,我让一个日期把3个值都对应出来那么问题也就解决了。

        解决方式有2个。方式1是直接在原来的销量表中增加2列数据,一列对应前一天的销量,一列对应上周同期的销量。方式2是把原来的销量表再复制2份。乍看起来第一种方式比较简单粗暴,但是如何建立[今天的日期]与[前一天销量]的关系呢?还是需要建立一个类似方式2的对照表然后用Related函数来引用,所以,本次直接采用方式2。

        我们首先把“今天的”销量表复制2份。在“前一天的销量表”中通过今天的日期-1生成前一天,在“上周同期的销量表”中-7生成上周同期。然后建立一个统一的日期表,今天,前一天,上周同期都跟这张日期表建立关系,就OK了。

前一天和上周同期的关系建立

        并不OK!通过观察实际的销量图发现,如果4-2为今天,那么前一天返回的销量并不是4-1的,而是4-3的。“为什么我的前一天不是我的前一天,而我的后一天却是我的前一天呢?”这个关系说起来很绕,直接看下面这个图示吧。所以,不是今天的日期-1和-7,而是+1和+7。

“为什么我的前一天不是我的前一天,而我的后一天却是我的前一天呢?” “前一天”的公式

3、多表日期

需求:把销量和会员指标放在同屏看根据日期的走势,要能控制时间宽度,可以到天,也可以到月。

        因为销量和会员数据存放在不同的源数据表中,现在需要用同一个日期切片器进行控制。这个方法相信大家都耳熟能详,在同期对比中也提过,就是建立一个统一的日期表来进行控制。这本身没什么好说的,但是“生活就像巧克力”,当我把销售表和日期表建立关系的时候很正常,但是当我把会员表和日期表建立关系的时候,日期表不再是日期了!

        如果是普通的切片器,不是日期也就算了,照样可以用2个滑块拉一段时间。但是要想控制时间宽度,必须有日期的层次结构,所以这是不能退让的。

        日期表中的数据类型是连续日期,会员表中的数据类型也是连续日期,关联了就不是日期了,然后BI可怜兮兮地问我“你怎么证明你妈是你妈?”

       “我怎么证明?我证明你*&!”请原谅我内心的草泥马万马奔腾,我在这个“怎么证明日期是日期”的话题上反复了很多次,终究不得其法,甚至有时候编BI编得好好的,数据更新了就又完蛋了。为了保证日后更新的稳健性(老子做不出来了),我决定说服我的客户,让他分别用两个表自己的日期切片器来进行控制。

切片器不是联动的

         在交稿的前一刻,我想到了最近看过的一篇帖子——《灵活使用Power BI的同步切片器》。于是我抱着病急乱投医的方式最后试了一次,将销量表和会员表的日期切片器归为一组,然后隐藏掉会员表的日期切片器,这样看起来还是一个总的日期切片器在控制,而且回避了建立数模的日期关联问题。

切片器是联动的且第二个切片器被隐藏

4、输入检索

需求:通过输入手机号或车牌号来查询某位会员的各项属性及消费记录。

        这个功能一看就是一个切片器,但是设计的关键是需要能够输入。这已经不是一个考验数据思维的需求了,这是一个考验视觉对象储量的需求。为了尽快找到解决方案,我向公司的大神求助。

向公司大神求助

        大神起初并不赞成我的需求,后来看我可怜,给了我一个视觉对象{Facet Key}。这个视觉对象满足了我对消费记录统计汇总的需求,比如对于消费次数,总的消费金额,客单价的求和或者计数,唯一的缺点是它的显示参数只有1个,也就是说消费次数,总的消费金额,客单价每一个都需要一个视觉对象,相应地查询同一个电话号码需要3次输入。

Facet Key

        虽然不太理想,至少是有解决方案了,但是客户除了消费记录外,又提出需要各项属性的信息,facet key本身不是一个切片器,它是一个把输入查询集成于自身的柱状图,这也就决定了它的输出数据一定要是数字,而不能是像属性一样的文本,所以必须另想他法。

         后来又经过一些波折,我终于找到了一个可以输入的切片器{Text Filter},对于视觉对象这事儿,我也深感:“有时候,用BI完成需求全靠撞大运。”所以,自己平时一定要多积累视觉对象可实现功能的对象库,同时,如果有机会可以找到某些经验丰富的设计师向他们请教绝对是事半功倍的。

Text Filter

感受

         每当客户新增一个自己经验之外的需求的时候,不要先急着抱怨,首先要换位思考一下客户的需求是否是合理的。如果是合理的,就要想方设法去实现,实在做不到的,也可以就自己的探索过程跟客户沟通商量。站在客户的角度去思考需求,客户也会感受到你的努力,从而达成一种良性的互动。客户的需求可以让自己跳出经验的舒适区,更好地从实际使用的角度去探索数据的呈现方式,从而拓展自己Power BI能力的边际。

客户评价

        如有Power BI设计需求可以给我发简信。“服务行业客户体验最为重要,提升您的体验是我分内之事,这个您不用客气。”

上一篇 下一篇

猜你喜欢

热点阅读