观远 BI

卡片相关实用小技巧

创建于 2022-11-01 / 最近更新于 2023-12-21 / 7682
字体: [默认] [大] [更大]

1.如何快捷地将表格里的0批量替换成-

在表格里对数值字段设置条件格式,替换为文本,根据需要设置“保存并同步”,可以勾选其他卡片。

image.png

2. 如何突出显示两列对比情况,对比平均值情况

使用“设置条件格式”功能:
image.pngQ

(1)两列值对比:设置条件格式-新建列规则-类型选“比较”(示例:目标销售额小于销售额时红色文字黄色背景)

image.png


(2)对比平均值:设置条件格式-新建列规则-类型选“比较”

image.png

注意:在规则编辑器中左侧默认选中的是进入条件格式设置的字段,可变更。

3. 如何设置不同列/条不同颜色

  • 表格卡片:可以通过设置条件格式-列规则来实现。

  • 条形图/柱状图:可以根据维度字段,将该维度字段拖入颜色绘制栏。

4. 如何隐藏卡片里的字段

1)在数据集上用列权限来控制该列的隐藏;或者用ETL去掉该列后输入,再把这个ETL输出数据集数据应用到卡片上。

2)如果字段要用于卡片维度栏,但是不想被用户直接看到(例如身份证号),则可以设置条件格式-列规则,把字段内容替换为空格,给字段设置别名为空格,调整列宽,然后设置无边框,实现视觉上的隐形。

5. 如何去掉文本数据前N个0

【解决方案】

1)方案1:正则表达式去掉0

REGEXP_REPLACE([商品编号] ,"^(0+)", "")

2)方案2:用*1或者/1将0去掉并用string公式转换为文本格式。

string( int ([商品编号]/1 ))
或者
cast( int ([商品编号]/1 )as string)

说明:

1)这里用int是因为文本*0或者/0后直接用string转文本会带上一位小数位数,用int函数可以解决这个问题。

2)如果直接用*0或者/0,字段格式选择文本,这样会出现实际格式未转成功的问题,对后期的数据处理和创建卡片带来问题(目前还需用公式转化解决)

6. 如何取多个字段中的最大值或最小值?

【解决方案】在新建字段中可以使用least()和greatest()函数来实现,写法为least(A,B,C,...),greatest(A,B,C,...),可以放多个字段进行判,并对数值和日期都可使用。

7. 如何设置卡片导出数据的格式?

选择“表格模板设置”,上传设置好的表格模板,然后选择“导出表格数据”

8. 柱形图如何明显区分正负的颜色

(1)(条形图也一样)把「数值」字段拖入「颜色」中,选“颜色设置”;

image.png

(2)设置颜色的自定义阈值

image.png


9. 使用全局参数高亮显示所筛选数据

(1)根据需要准备一个单值或者多值的文本类型全局参数;

image.png

(2)新建卡片,新建字段引入参数进行判断,字段类型选择“布尔型”;

        单选:[省份] = [DYNAMIC_PARAMS.多维度筛选]

   多选:[省份] in ([DYNAMIC_PARAMS.多维度筛选])

image.png

(3)柱形图、条形图、地图等有颜色栏的图表类型:把上一步新建的字段「筛选」放入颜色栏,设置字段的颜色。

image.png

(4)表格类型:设置条件格式--行规则,为「筛选」等于true设置背景色。

image.png

(5)页面上添加「省份」筛选器,联动卡片里的全局参数。最终效果如下:

image.png

10. 如何设置卡片透明背景色

卡片设置-(右侧)卡片背景-设置对应的“A”为0即可:

image.png

拓展:颜色代码(原文出自:CSS 的颜色代码 透明色是什么代码?

常用颜色代码分4种,分别如下:

1. 常用颜色单词,比如green(绿色),yellow(黄色),red(红色),transparent(透明色)等;

2. 以#号开头的六个字符组成的颜色代码,比如:#FF0000(红色),#000000(黑色),#F9F900(黄色)等;image.png

3. 颜色rgb值,表达方式:rgb(参数1,参数2,参数3),三个参数分别表示r,g,b

1)R:红色值。正整数 | 百分数

2)G:绿色值。正整数 | 百分数

3)B:蓝色值。正整数 | 百分数

4. rgba(参数1,参数2,参数3,参数4),这种方式前三个参数与上面第3点种相同,第四个参数表示透明度,数值在0-1之间。0表示透明度为0(即透明色),1表示透明度为1(百分百)。

11. 如何去掉表格小计

普通表格的话,点击维度字段,选择不显示小计;分组表的话不能去掉小计。

image.png


12. 如何计算TOP10的总计,维度上显示10个无法计算总计

用高级计算-排名里面的TOP N功能代替限制维度显示数量;然后手动修改小计/总计的计算方式为“以聚合数据计算”。

图片.png图片.png

13. 如何只看排名前20的数据?

方案1:将数值字段进行降序排序后,在维度里设置显示数量为20。

image.png

方案2:对数值栏字段使用 高级计算-排名,设置TOP N 为需要的数字。

图片.png

14. 饼图如何实现仅展示TopN,之后归类到“其他”

饼图里对数值字段降序排列,打开编辑页面右侧--饼图设置--显示维度数,手动输入要保留的维度数,和“其他”的颜色。

image.png


15. 如何按时间升序但仅显示最近N天数据

当在「维度」里限制展示数量不能满足需求时,可以直接在「筛选」里按需求选出近N天数据,再搭配「排序」。

image.png

16. 如何设置排序图标

(1)在表格的编辑页面勾选显示行序号

image.png

(2)选择相应显示的图标,目前仅支持选项中的图标。

image.png

17. 如何实现筛选日期联动前N天的数据

(1)新建一个日期类型的全局参数,新建一个参数筛选器

(2)卡片里新建一个布尔类型字段,使用DATEDIFF函数来筛选判断是否为筛选日期前x天的数据,把字段放到筛选条件里(如果要排序,可以把日期字段放到排序的维度)

image.png


18. 表格中如何按对比字段优先排顺序

直接拖动对比度量名和对比字段,如图可把【日期】字段拖到度量名前面,可实现按照【日期】排好顺序,再在对应日期下面显示相应字段:

image.png

19. 不显示市级地图

在地图显示设置-地图显示范围,根据需求选择轮廓:

  • 全国轮廓--维度:省份

  • 省级轮廓--维度:市

  • 市级轮廓--维度:区县

image.png


20. 热力地图、符合地图不显示地图

需查看经纬度的放置顺序,应该先放纬度(latitude),再放经度(longitude)


21. 如何设置地图颜色

(1)打开卡片编辑页面-左侧编辑框,选「颜色」栏中具体的字段,「颜色设置」

image.png

(2)可以根据自己的需要,设置对应的颜色。梯度最多只能设置为10,如果出现快捷阈值设置后颜色都一致,可能是数据中空值较多

image.png

(3)右侧的“地图显示设置”中可以设置对应的地图底色. 边框颜色. 悬停背景色等

image.png


22. 如何调整表格的列宽,过长如何换行展示

  • 列宽:表格模式,可以实现手动拖拽,调整列宽,如果想要控制表格列宽可以在右侧填写;

image.png

  • 表头换行:(由于受底层框架限制,目前不支持表头字段回车换行功能)如需要表头换行的,目前新版本BI可以拖动列宽来自动换行,也可以在维度字段上设置“别名”,在要换行的地方加上换行符image.png来指定换行位置。

image.png


23. 表格分页显示,但第一页和第二页看到的列数不同

列宽默认是自动的,会根据数据的长度变化,如果想要两页看到列完全一样,那么可以设置下固定列宽(默认会自动换行)。

image.png


24. 如何固定列表头

列表头是默认固定的,有对比度量或分组时也会被认为是表头被默认固定。

image.png


25. 如何通过联动展示明细清单

(1)新建一个表格卡片,创建一个新建字段(文本类型),用collect_set函数将明细整合为数组;拖入「数值」,聚合方式“无处理”。

    1. 如果要去重计数,公式替换为:size(collect_set([字段])over(partition by [分组列名])),类型为数值

    2. 如果不去重计数,公式替换为:size(collect_list([字段])over(partition by [分组列名])),类型为数值

image.png

(2)在原始卡片上,使用「联动」功能,关联刚刚新建的明细清单卡片即可。

image.png



26. 如何实现取筛选日期最后一天的数据

方案1

可以把日期选择器的开始和结束时间设成两个全局参数(需创建两个日期筛选器),然后会员数据这个字段根据结束时间的全局参数来计算。

  1. 建好两个日期类型的全局参数,“开始时间”和“结束时间”;

  2. 新建两个日期筛选器;

image.png

  1. 在卡片中引入“结束时间”的参数;

image.png

  1. 设置卡片和筛选器的联动。

方案2

原理同方案1,但只用一个日期筛选器。

  1. 建好两个日期类型的全局参数,“开始时间”和“结束时间”;

  2. 新建一个日期筛选器;

  3. 在卡片中引入两个时间参数,其中“开始时间”可以直接放在卡片字段里作为时间筛选器的联动联动,“结束时间”可以用来做个判断(格式选为布尔型);

image.png


  1. 设置筛选器与卡片联动。

image.png


27. 目标为负时如何计算完成率

(1)用子弹图代替仪表板图,以下图为例,广东的目标是-60,达成金额是-50,距离目标超过了10,在图中可以直观的看出来:

image.png

子弹图分为柱形子弹图和条形子弹图,可依据实际场景进行使用:

image.png

(2)子弹图虽能直观得看到目标和达成的距离,但是无法计算百分比,如果需要展示百分比,那么可以直接以表格的形式,按以下公式新建字段计算完成率:完成率=〔2-(实际完成金额/目标值)〕×100%


28. 如何设置双周、双月、半年等日期的周期

(1)日期字段下拉有预设周期(年、季度、月、周、星期、日|date类型字段到此| 时、分、秒|timestamp类型字段都有|)

(2)还需要常用到其他周期时,可以“新增分组”

image.png



29. 如何在卡片上展示筛选的时间区间

(1)新建两个“日期”类型的全局参数,作为开始时间和结束时间,默认值可根据实际场景填写;

image.png

(2)用建好的两个全局参数,新建两个参数筛选器卡片;

image.png

(3)在被联动的卡片上新建三个计算字段:

    1. 日期类型字段:“日期字段”case when [日期]>=[DYNAMIC_PARAMS.开始时间] and [日期]<=[DYNAMIC_PARAMS.结束时间1] then [日期] else null end

    2. 文本类型字段:“时间区间”concat(string([DYNAMIC_PARAMS.开始时间]),"-",string([DYNAMIC_PARAMS.结束时间1]))

    3. 数值类型字段:“销售总金额”case when [日期]>=[DYNAMIC_PARAMS.开始时间] and [日期]<=[DYNAMIC_PARAMS.结束时间1] then [销售金额] else null end

(4)效果图:

image.png


30. 为什么看不到卡片的查询SQL 

确保管理员设置-系统管理-高级设置里打开“是否允许查看查询SQL或Spark脚本”的开关处于打开状态。image.png


31. 高级计算里的同环比,“所选日期”的意思

所选日期 = 基准日期

所选日期为今天 ==> 今天和昨天比

所选日期为昨天 ==> 昨天和前天比

所选日期为前n天 ==> 前n天和前n-1天比

所选日期为今年 ==> 今年和去年比

所选日期为去年 ==> 去年和前年比

所选日期为前n年 ==> 前n年和前n-1年比


32. 新建字段斜杠的用法/ \

(1)右斜杠“\”:转义。在观远里,用“\”时,“\”会消失,效果:

image.png


(2)左斜杠“/”:会保留。效果:

image.png

(3)双右斜杠“\\”:会保留一条。效果:

image.png


33. 聚合字段的高级计算-占比逻辑

image.png

(1)聚合后的高级计算-占比(求和)逻辑:sum([销售金额])over(partition by [省份])

    • 比如计算结果浙江省的=60,每一条对应的浙江省后面都是60,也就是5*60=300;江苏省的=66,就是4*66=264。所以浙江省的占比就是300/564=53.19%,江苏省的占比就是264/564=46.81%。

image.png

(2)聚合后的高级计算-占比(无处理)逻辑:无处理时系统会默认取最大值。

    • 比如浙江省sum之后的无处理=60,江苏省=66,那么占比也为无处理的话,默认分子为各自的数值,分母为两个数值中的最大值66,此时浙江省的占比就是60/66=90.91%,江苏省的占比就是66/66=100%。

image.png

(3)想要实现浙江省的占比=60/(60+66),江苏省的占比=66/(60+66),将前面示例中“sum聚合(求和)”字段(或源数据字段)直接拖入「数值」中,高级计算-百分比-按列。

image.png



34. 用辅助线实现四象限图的方法

(1)制作好一个气泡图或者散点图,具体制作方法可参考:气泡图与散点图

(2)添加主数值轴(横轴)的辅助线:
image.png

(3)添加基数值轴(纵轴)的辅助线:

image.png


35. 如何实现同一个表格跳转不同页面

需求:1)用指定字段超链接跳转其他页面(观远自带的跳转是点击表格任意字段都会跳转,用户不希望这种交互效果);2)跳转目标页面的时候可以带入当前维度信息;3)不同维度信息跳转不同页面。

效果:

image.png


实现方法:

1) 需要建立两个目标页面的仪表盘,目标页面需要有可以传参数的筛选器; 复制目标页面的链接,以及筛选器的id;

image.png

2) 在要设置跳转的表格卡片里新建文本类型字段,拼接出目标页面带筛选条件的url;然后拖入维度栏,设置【显示为超链接】。

case 
when [省份]='山西省' then concat('https://app.guandata.com/page/b6a88413f23fc4b188cc1416?b54c1d25fb86d40748b7d89c=',[城市],'&w2775bf304ebd412c8b9dd35=',[日期2]) 
when [省份]='辽宁省' then concat('https://app.guandata.com/page/uf668e9ecc3fa4af6bdbaf81?ne6ce9f8526494ac4afd0983=',[城市],'&g1f6f5afd283b434585e25bd=',[日期2]) end

36. 如何去重求和

需求:相同维度值(们店、产品)下的数值(订单数)是一样的,想要维度下各个数值只计算一次求和。如果直接用sum,会按不同维度下的行数翻倍,如果用sum(distinct)只能是聚合度量,无法用partition by直接转为窗口函数

实现方式:类似于count(distinct)
思路:
数值字段需提前根据需要的维度聚合:[订单数]=sum([原始订单量])over(partition by [们店],[产品])
去重求和开窗步骤:
1.获取到每个分组里的值[取值]=max([订单数])over(partition by [们店],[产品])
2.去重求和[个数]=size(collect_set([产品])over(partition by [们店]))
3.去重后求和[去重求和开窗]=sum([取值]/[个数])over(partition by [们店])
=sum(max([订单数])over(partition by [们店],[产品])/size(collect_set([产品])over(partition by [们店])))over(partition by [们店])

image.png

编辑公式时注意:这个字段的计算逻辑是 取门店、产品维度下订单数的最大值/门店维度下产品的个数(当只有一个维度时,需要有一个能区分每行不同订单数为不同值的字段即可) 再按门店维度求和


54 人点赞过