卡片相关实用小技巧
1.如何快捷地将表格里的0批量替换成-
在表格里对数值字段设置条件格式,替换为文本,根据需要设置“保存并同步”,可以勾选其他卡片。
2. 如何突出显示两列对比情况,对比平均值情况
使用“设置条件格式”功能:Q
(1)两列值对比:设置条件格式-新建列规则-类型选“比较”(示例:目标销售额小于销售额时红色文字黄色背景)
(2)对比平均值:设置条件格式-新建列规则-类型选“比较”
注意:在规则编辑器中左侧默认选中的是进入条件格式设置的字段,可变更。
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)(条形图也一样)把「数值」字段拖入「颜色」中,选“颜色设置”;
(2)设置颜色的自定义阈值
9. 使用全局参数高亮显示所筛选数据
(1)根据需要准备一个单值或者多值的文本类型全局参数;
(2)新建卡片,新建字段引入参数进行判断,字段类型选择“布尔型”;
单选:[省份] = [DYNAMIC_PARAMS.多维度筛选]
多选:[省份] in ([DYNAMIC_PARAMS.多维度筛选])
(3)柱形图、条形图、地图等有颜色栏的图表类型:把上一步新建的字段「筛选」放入颜色栏,设置字段的颜色。
(4)表格类型:设置条件格式--行规则,为「筛选」等于true设置背景色。
(5)页面上添加「省份」筛选器,联动卡片里的全局参数。最终效果如下:
10. 如何设置卡片透明背景色
卡片设置-(右侧)卡片背景-设置对应的“A”为0即可:
拓展:颜色代码(原文出自:**CSS 的颜色代码 透明色是什么代码?)
常用颜色代码分4种,分别如下:
1. 常用颜色单词,比如green(绿色),yellow(黄色),red(红色),transparent(透明色)等;
2. 以#号开头的六个字符组成的颜色代码,比如:#FF0000(红色),#000000(黑色),#F9F900(黄色)等;
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. 如何去掉表格小计
普通表格的话,点击维度字段,选择不显示小计;分组表的话不能去掉小计。
12. 如何计算TOP10的总计,维度上显示10个无法计算总计
用高级计算-排名里面的TOP N功能代替限制维度显示数量;然后手动修改小计/总计的计算方式为“以聚合数据计算”。
13. 如何只看排名前20的数据?
方案1:将数值字段进行降序排序后,在维度里设置显示数量为20。
方案2:对数值栏字段使用 高级计算-排名,设置TOP N 为需要的数字。
14. 饼图如何实现仅展示TopN,之后归类到“其他”
饼图里对数值字段降序排列,打开编辑页面右侧--饼图设置--显示维度数,手动输入要保留的维度数,和“其他”的颜色。
15. 如何按时间升序但仅显示最近N天数据
当在「维度」里限制展示数量不能满足需求时,可以直接在「筛选」里按需求选出近N天数据,再搭配「排序」。
16. 如何设置排序图标
(1)在表格的编辑页面勾选显示行序号;
(2)选择相应显示的图标,目前仅支持选项中的图标。
17. 如何实现筛选日期联动前N天的数据
(1)新建一个日期类型的全局参数,新建一个参数筛选器
(2)卡片里新建一个布尔类型字段,使用DATEDIFF函数来筛选判断是否为筛选日期前x天的数据,把字段放到筛选条件里(如果要排序,可以把日期字段放到排序的维度)
18. 表格中如何按对比字段优先排顺序
直接拖动对比度量名和对比字段,如图可把【日期】字段拖到度量名前面,可实现按照【日期】排好顺序,再在对应日期下面显示相应字段:
19. 不显示市级地图
在地图显示设置-地图显示范围,根据需求选择轮廓:
-
全国轮廓--维度:省份
-
省级轮廓--维度:市
-
市级轮廓--维度:区县
20. 热力地图、符合地图不显示地图
需查看经纬度的放置顺序,应该先放纬度(latitude),再放经度(longitude)
21. 如何设置地图颜色
(1)打开卡片编辑页面-左侧编辑框,选「颜色」栏中具体的字段,「颜色设置」
(2)可以根据自己的需要,设置对应的颜色。梯度最多只能设置为10,如果出现快捷阈值设置后颜色都一致,可能是数据中空值较多
(3)右侧的“地图显示设置”中可以设置对应的地图底色. 边框颜色. 悬停背景色等
22. 如何调整表格的列宽,过长如何换行展示
- 列宽:表格模式,可以实现手动拖拽,调整列宽,如果想要控制表格列宽可以在右侧填写;
- 表头换行:(由于受底层框架限制,目前不支持表头字段回车换行功能)如需要表头换行的,目前新版本BI可以拖动列宽来自动换行,也可以在维度字段上设置“别名”,在要换行的地方加上换行符来指定换行位置。
23. 表格分页显示,但第一页和第二页看到的列数不同
列宽默认是自动的,会根据数据的长度变化,如果想要两页看到列完全一样,那么可以设置下固定列宽(默认会自动换行)。
24. 如何固定列表头
列表头是默认固定的,有对比度量或分组时也会被认为是表头被默认固定。
25. 如何通过联动展示明细清单
(1)新建一个表格卡片,创建一个新建字段(文本类型),用collect_set函数将明细整合为数组;拖入「数值」,聚合方式“无处理”。
-
-
如果要去重计数,公式替换为:size(collect_set([字段])over(partition by [分组列名])),类型为数值
-
如果不去重计数,公式替换为:size(collect_list([字段])over(partition by [分组列名])),类型为数值
-
(2)在原始卡片上,使用「联动」功能,关联刚刚新建的明细清单卡片即可。
26. 如何实现取筛选日期最后一天的数据
方案1
可以把日期选择器的开始和结束时间设成两个全局参数(需创建两个日期筛选器),然后会员数据这个字段根据结束时间的全局参数来计算。
-
建好两个日期类型的全局参数,“开始时间”和“结束时间”;
-
新建两个日期筛选器;
- 在卡片中引入“结束时间”的参数;
- 设置卡片和筛选器的联动。
方案2
原理同方案1,但只用一个日期筛选器。
-
建好两个日期类型的全局参数,“开始时间”和“结束时间”;
-
新建一个日期筛选器;
-
在卡片中引入两个时间参数,其中“开始时间”可以直接放在卡片字段里作为时间筛选器的联动联动,“结束时间”可以用来做个判断(格式选为布尔型);
- 设置筛选器与卡片联动。
27. 目标为负时如何计算完成率
(1)用子弹图代替仪表板图,以下图为例,广东的目标是-60,达成金额是-50,距离目标超过了10,在图中可以直观的看出来:
子弹图分为柱形子弹图和条形子弹图,可依据实际场景进行使用:
(2)子弹图虽能直观得看到目标和达成的距离,但是无法计算百分比,如果需要展示百分比,那么可以直接以表格的形式,按以下公式新建字段计算完成率:完成率=〔2-(实际完成金额/目标值)〕×100%
28. 如何设置双周、双月、半年等日期的周期
(1)日期字段下拉有预设周期(年、季度、月、周、星期、日|date类型字段到此| 时、分、秒|timestamp类型字段都有|)
(2)还需要常用到其他周期时,可以“新增分组”
29. 如何在卡片上展示筛选的时间区间
(1)新建两个“日期”类型的全局参数,作为开始时间和结束时间,默认值可根据实际场景填写;
(2)用建好的两个全局参数,新建两个参数筛选器卡片;
(3)在被联动的卡片上新建三个计算字段:
-
-
日期类型字段:“日期字段”case when [日期]>=[DYNAMIC_PARAMS.开始时间] and [日期]<=[DYNAMIC_PARAMS.结束时间1] then [日期] else null end
-
文本类型字段:“时间区间”concat(string([DYNAMIC_PARAMS.开始时间]),"-",string([DYNAMIC_PARAMS.结束时间1]))
-
数值类型字段:“销售总金额”case when [日期]>=[DYNAMIC_PARAMS.开始时间] and [日期]<=[DYNAMIC_PARAMS.结束时间1] then [销售金额] else null end
-
(4)效果图:
30. 为什么看不到卡片的查询SQL
确保管理员设置-系统管理-高级设置里打开“是否允许查看查询SQL或Spark脚本”的开关处于打开状态。
31. 高级计算里的同环比,“所选日期”的意思
所选日期 = 基准日期
所选日期为今天 ==> 今天和昨天比
所选日期为昨天 ==> 昨天和前天比
所选日期为前n天 ==> 前n天和前n-1天比
所选日期为今年 ==> 今年和去年比
所选日期为去年 ==> 去年和前年比
所选日期为前n年 ==> 前n年和前n-1年比
32. 新建字段斜杠的用法/ \
(1)右斜杠“\”:转义。在观远里,用“\”时,“\”会消失,效果:
(2)左斜杠“/”:会保留。效果:
(3)双右斜杠“\\”:会保留一条。效果:
33. 聚合字段的高级计算-占比逻辑
(1)聚合后的高级计算-占比(求和)逻辑:sum([销售金额])over(partition by [省份])
- 比如计算结果浙江省的=60,每一条对应的浙江省后面都是60,也就是560=300;江苏省的=66,就是466=264。所以浙江省的占比就是300/564=53.19%,江苏省的占比就是264/564=46.81%。
(2)聚合后的高级计算-占比(无处理)逻辑:无处理时系统会默认取最大值。
- 比如浙江省sum之后的无处理=60,江苏省=66,那么占比也为无处理的话,默认分子为各自的数值,分母为两个数值中的最大值66,此时浙江省的占比就是60/66=90.91%,江苏省的占比就是66/66=100%。
(3)想要实现浙江省的占比=60/(60+66),江苏省的占比=66/(60+66),将前面示例中“sum聚合(求和)”字段(或源数据字段)直接拖入「数值」中,高级计算-百分比-按列。
34. 用辅助线实现四象限图的方法
(1)制作好一个气泡图或者散点图,具体制作方法可参考:气泡图与散点图
(2)添加主数值轴(横轴)的辅助线:
(3)添加基数值轴(纵轴)的辅助线:
35. 如何实现同一个表格跳转不同页面
需求:1)用指定字段超链接跳转其他页面(观远自带的跳转是点击表格任意字段都会跳转,用户不希望这种交互效果);2)跳转目标页面的时候可以带入当前维度信息;3)不同维度信息跳转不同页面。
效果:
实现方法:
1) 需要建立两个目标页面的仪表盘,目标页面需要有可以传参数的筛选器; 复制目标页面的链接,以及筛选器的id;
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 [们店])
编辑公式时注意:这个字段的计算逻辑是 取门店、产品维度下订单数的最大值/门店维度下产品的个数(当只有一个维度时,需要有一个能区分每行不同订单数为不同值的字段即可) 再按门店维度求和