请上传宽度大于 1200px,高度大于 164px 的封面图片
    调整图片尺寸与位置
    滚轮可以放大缩小图片尺寸,按住图片拖动可调整位置,多余的会自动被裁剪掉
取消
瓶子xf(uid:227670)
BI工程师,公众号《BI研究所》 职业资格认证:FCP-FineBI | FCA-FineBI | FCA-简道云 | FCA-业务分析理论 | FCP-报表开发工程师
接单范围增加:建模,手绘地图,3D模型
接单范围增加:建模,手绘地图,3D模型 原接单范围: 接单团队已实现包括且不限于powerbi、vba、api等自动化内容,详见如下文章:接单群团队已实现的开发内容 【范围】BI接单群目前已有142人,专注解决BI横向、纵向相关的各类技术问题,包括但不限于各类BI工具、Excel、python、mysql、oracle、sqlserver等数据库、数据仓库、RPA、VBA、自动化,Power Platform、Microsoft Power Automate、Power apps、宜搭、简道云、SPC,建模,手绘地图,3D模型等技术服务。 【BI】BI包括但不限于永洪bi、quickbi、PowerBI、FineBI、Finereport、简道云等工具 。 【服务】包括但不限于:线上项目、项目外包、培训项目、数据分析、BI开发、BI咨询等方面,或解决单个问题,一对一教学等服务。 【成单情况】23年到25年,接单群推荐线上项目已成交总价从50元到20万元不等,推荐单量上千单,成单比例也很高。 【招人】接单群持续招人。 欢迎添加瓶子微信咨询,微信号wdfyqx
《关联分析实战:教你用1个模型,让销售额暴增80%!电商/零售人必看!》
Power BI财销一体分析——关联分析实践 欢迎来到Powerbi小课堂,前几期课程我们深入学习了各种财务、销售实用案例,本期我将带领大家整合分散知识点,逐步构建一个全面的分析模型,涵盖封面、登录页、导航页、CEO驾驶舱等模块,以及趋势、产品、畅销品等多维度分析,同时融入度量值嵌套、计算组、动态指标、TOPN分析等高阶技巧。今天我将为大家带来最全面实用的关联分析应用实践,通过挖掘消费者购买数据中商品关联规律的数据挖掘技术,主要用于零售和电商领域。其核心目标是发现顾客经常一起购买的商品组合,从而优化营销策略,接下来,让我们直接进入今天的实用技巧分享环节。如果您在实践过程中遇到任何问题,欢迎留言交流。请关注我们的公众号《BI研究所》,以获取更多案例更新和学习资源。 想要一份这样的可视化看板吗?想学吗?我教你呀! 案例背景: 我司作为专业运动自行车跨国销售企业,业务范围涵盖自行车、组件、配件及运动服装。当前,我们正致力于开发财销一体化分析系统,旨在通过技术手段实现财务与销售的紧密结合,促进数据共享与流程优化,进而提升决策效率与运营效率,优化资源配置,强化风险控制,为企业的可持续发展注入动力。 设计思路: 通过成本、销量、利润及销售维度精准掌控财务状况,从产品、客户及地域三个层面深入分析企业运营趋势, 准备基础数据 数据清洗 建立关系视图 个性美化设计 数据建模(度量值) 制作可视化报告 首先我们要理解关联分析是什么,关联分析是通过分析交易数据,找出形如“如果买了A,很可能也会买B”的规律,通常用于快速定位产品不同组合的市场接受程度。以下为关键参数的简要介绍: 常用指标: 支持度(Support):表示商品组合在总销售记录中出现的频率。支持度越高,说明该商品组合被顾客同时购买的可能性越大, 置信度(Confidence)则反映了在购买商品A的条件下,顾客购买商品B的概率。置信度越高,意味着购买商品A的顾客同时购买商品B的可能性越大。 提升度(Lift)衡量的是商品A和商品B同时被购买的频率与它们各自独立被购买频率乘积的比值。当提升度大于1时,表明商品A和商品B之间存在正向关联;小于1时,则表明它们之间可能存在负向关联或相互独立。 典型应用场景 商品陈列优化:将关联性强的商品摆放在相邻位置(如啤酒和尿布经典案例)。 促销组合:设计捆绑销售或交叉推荐(如买手机推荐配件)。 库存管理:根据关联商品需求预测补货。 个性化推荐:电商平台的“买了还买”或“搭配购”功能。 常用算法 Apriori算法:通过逐层搜索频繁项集生成关联规则(需设定最小支持度/置信度)。 FP-Growth算法:利用频繁模式树(FP-Tree)提高效率,适合大数据集。 在建模之前,我们要先了解下此分析方法的难点,首先是关系搭建,我们需要建立两个关于产品的维度表,再确定一条关系可用的前提下,使另一条关系存在,但不可用,以及购买A产品的同时,也购买了B产品的运算怎样实现,当A产品与B产品相同时,怎样将其排除在运算之外。 ★建立关系视图(此步骤很关键,关系到后续运算是否可以正常呈现) 公式: 购物篮辅助表 = SUMMARIZECOLUMNS('产品表','产品表','产品表') 购物篮切片表 = '购物篮辅助表' 公式逻辑解析: SUMMARIZECOLUMNS 是 DAX 中用于 按指定列分组并生成汇总表 的函数。它会根据你提供的列进行分组,并返回一个不重复的组合列表,在建立一个表函数,直接引用购物篮辅助表,那么从公式名称也不难看出,这两张表,一个是用于切片器,一个用于数据呈现。 如下图所示搭建关系,注意关系的虚实关联: ★数据建模:关联分析(又称购物篮分析) 公式: 重复的产品排除 = IF( SELECTEDVALUE( '购物篮切片表') = SELECTEDVALUE( '购物篮辅助表') , TRUE() , FALSE() ) 公式逻辑解析: 这个公式用于 判断两个表中的子类别是否相同,并返回 TRUE(相同)或 FALSE(不同)。 通常用于 筛选或标记数据,例如: 在购物篮分析中,避免重复计算相同子类别的商品。 在可视化或计算中,仅保留符合条件的记录。 公式: bayA类产品的客户数 = VAR BAYA = CALCULATETABLE(     VALUES( '销售' ) ,     USERELATIONSHIP('购物篮切片表' , '销售') ,     ALL( '购物篮辅助表' ) // 排除另一个产品切片器的作用 ) RETURN IF( , BLANK() , COUNTROWS(BAYA ) ) bayA类产品的销售额 = VAR BAYA = CALCULATE(    ,     USERELATIONSHIP( '购物篮切片表', '销售') ,     ALL( '购物篮辅助表' ) // 排除另一个产品切片器的作用 ) RETURN IF( , BLANK() , BAYA) 公式逻辑解析:以bayA类产品的客户数为例 该公式用于计算 购买“bayA类产品”的唯一客户数,并满足以下条件: 如果  为 TRUE()(即当前产品子类别重复),则返回 BLANK()(不显示数值)。 否则,返回购买该产品的客户数量。 变量1:CALCULATETABLE:创建一个临时表,应用指定的筛选条件。 VALUES('销售'):返回“销售”表中 不重复的客户列表(即购买过产品的客户)。 USERELATIONSHIP('购物篮切片表', '销售'):临时激活 购物篮切片表 和 销售 之间的 非活动关系(需在数据模型中预先定义但未启用),用于筛选当前产品对应的销售记录。 ALL('购物篮辅助表'):忽略 购物篮辅助表 上的任何筛选器(例如,避免其他切片器影响计算结果) 返回结果: :如果为 TRUE()(表示当前产品子类别重复),则返回 BLANK()(不显示数值)。 COUNTROWS(BAYA):否则,计算 BAYA 临时表中的行数(即购买该产品的唯一客户数)。 重要知识点 通过 USERELATIONSHIP 临时使用 购物篮切片表 → 销售 的关系(而非默认关系),确保筛选基于用户选择的“产品”。 忽略无关筛选器 ALL('购物篮辅助表') 用于排除其他切片器(如基于 购物篮辅助表 的筛选)对计算的干扰。 重复产品排除逻辑 如果  为真(例如,同一子类别的产品被重复计算),则隐藏结果,避免数据冗余。 公式: bayB类产品的客户数 = IF(     ,     BLANK(),     CALCULATE(         DISTINCTCOUNT('销售'),         KEEPFILTERS('产品表') // 关键修正:保持产品表的筛选上下文     ) ) bayB类产品的销售额 = IF(     ,     BLANK(),     CALCULATE(        ,         KEEPFILTERS('产品表') // 关键修正:保持产品表的筛选上下文     ) ) 公式逻辑解析:以bayB类产品的客户数为例 IF(, BLANK(), ...) 这是一个条件判断,如果为真,则返回BLANK()(空值) 否则执行CALCULATE部分的计算 CALCULATE(DISTINCTCOUNT('销售'), KEEPFILTERS('产品表')) CALCULATE:修改筛选上下文的核心函数 DISTINCTCOUNT('销售'):计算"销售"表中"客户关键字"列的唯一值数量(即不重复的客户数) KEEPFILTERS('产品表'):这是一个关键修正,它确保在计算时保持对"产品表"的现有筛选上下文 公式: 关联销售额 = VAR SelectedProduct = SELECTEDVALUE('购物篮切片表') VAR OrdersWithA =     CALCULATETABLE(         VALUES('销售'),         USERELATIONSHIP('购物篮切片表', '销售'),         ALL('购物篮辅助表')     ) RETURN IF(     ,     BLANK(),     CALCULATE(         SUM('销售'),         TREATAS(VALUES('购物篮辅助表'), '销售'),         OrdersWithA     ) ) 公式逻辑解析: 变量1:VAR SelectedProduct = SELECTEDVALUE('购物篮切片表') 获取当前筛选上下文中'购物篮切片表'的选定值 如果有多值则返回空 变量2:VAR OrdersWithA = CALCULATETABLE(...) 定义一个包含特定客户关键字的表 CALCULATETABLE(VALUES('销售'),...):获取'销售'表中不重复的客户关键字 USERELATIONSHIP('购物篮切片表', '销售'):临时激活这两个表之间的产品关系 ALL('购物篮辅助表'):移除对'购物篮辅助表'的所有筛选 返回结果: IF(, BLANK(), CALCULATE(...)) 如果为真,返回空值 否则执行CALCULATE计算 CALCULATE(SUM('销售'), TREATAS(...), OrdersWithA) SUM('销售'):计算销售额的总和 TREATAS(VALUES('购物篮辅助表'), '销售'): 将'购物篮辅助表'的值视为'销售'的筛选条件 动态创建两个列之间的关系 OrdersWithA:应用之前定义的客户筛选条件 重点高阶公式: USERELATIONSHIP:临时激活非活动关系,这里建立了'购物篮切片表'和'销售'表之间的产品关系 TREATAS:动态创建筛选条件,将一列的值视为另一列的筛选器 CALCULATETABLE:在修改的筛选上下文中生成表 公式: 关联客户数 = VAR CustomersA =     CALCULATETABLE(         SUMMARIZE('销售', '销售'),         USERELATIONSHIP('购物篮切片表', '销售'),         ALL('购物篮辅助表')     ) VAR CustomersB =     CALCULATETABLE(         SUMMARIZE('销售', '销售'),         KEEPFILTERS('购物篮辅助表')     ) RETURN IF(     || ISEMPTY(CustomersA) || ISEMPTY(CustomersB),     BLANK(),     COUNTROWS(INTERSECT(CustomersA, CustomersB)) ) 公式逻辑解析: 变量1:VAR CustomersA = CALCULATETABLE(...) 定义购买'购物篮切片表'中产品的客户集合 SUMMARIZE('销售', '销售'):从销售表中提取不重复的客户关键字 USERELATIONSHIP('购物篮切片表', '销售'):临时激活这两个表之间的产品关系 ALL('购物篮辅助表'):移除对'购物篮辅助表'的所有筛选 变量2:VAR CustomersB = CALCULATETABLE(...) 定义购买'购物篮辅助表'中产品的客户集合 SUMMARIZE('销售', '销售'):同样提取不重复的客户关键字 KEEPFILTERS('购物篮辅助表'):保持对'购物篮辅助表'的现有筛选条件 返回结果: IF( || ISEMPTY(CustomersA) || ISEMPTY(CustomersB), BLANK(), COUNTROWS(INTERSECT(CustomersA, CustomersB))) 条件判断部分: :如果为真则返回空值 ISEMPTY(CustomersA):如果CustomersA为空集合 ISEMPTY(CustomersB):如果CustomersB为空集合 以上任一条件为真则返回BLANK() 计算部分: INTERSECT(CustomersA, CustomersB):获取两个客户集合的交集 COUNTROWS():计算交集中的行数(即客户数量) 重点高阶公式: INTERSECT:集合运算,获取两个表的交集 ISEMPTY:检查表是否为空,用于错误处理 公式: 支持度 = 同时购买A和B的订单数 / 总客户数 支持度 =  IF(     , BLANK() ,    DIVIDE(,CALCULATE(,ALL() ))) 公式逻辑解析: 首先检查是否满足""条件 如果为真,则返回空值(BLANK()) 如果为假,则计算支持度 支持度的计算方法是:关联客户数除以总客户数(使用ALL()移除了所有筛选上下文) 公式: 提升度 = 支持度 / 提升度 = VAR A=DIVIDE(,CALCULATE(,ALL())) VAR B=DIVIDE(,CALCULATE(,ALL())) VAR C=A*B RETURN DIVIDE(,C) 公式逻辑解析: 计算单个产品的购买概率 变量1: A = bayA类产品的客户数 / 总客户数→ 购买bayA类产品的客户比例(即 P(A)) 变量2: B = bayB类产品的客户数 / 总客户数→ 购买bayB类产品的客户比例(即 P(B)) 计算独立事件预期概率 变量3: C = A * B→ 如果A和B独立无关,两者同时被购买的理论概率(即 P(A) × P(B)) 计算提升度 提升度 = 支持度 / C→ 实际共现概率与独立概率的比值 公式: 置信度 = 同时购买A和B的订单数 / 购买A的订单数 置信度 = DIVIDE(,) 公式逻辑解析: 这个公式计算的是置信度指标,其逻辑是: 分子: - 同时购买两种产品的客户数量 分母: - 购买A类产品的客户总数 计算:用关联客户数除以A类产品的客户总数 公式: 交叉销售潜力指数 = 提升度(Lift) × 关联销售贡献率 关联销售贡献率 = 关联销售额 / 主产品销售额 交叉销售潜力指数 = * DIVIDE(     ,     ,     0 ) 公式逻辑解析: 这是一个预先定义的度量值,通常表示产品组合出现的频率与各自独立出现频率的比值 在关联规则分析中,提升度(Lift)大于1表示正相关,等于1表示独立,小于1表示负相关 DIVIDE函数 计算两个度量值的比值,提供安全除法功能(避免除零错误) 结构:DIVIDE(分子, 分母, 替代值) 这里替代值为0,表示当分母为0时返回0 是另一个预先定义的度量值,表示与主产品(bayA类)相关联的销售额 通常计算的是客户购买主产品后,又购买其他关联产品的总销售额 这是主产品类别的总销售额,作为基准值 公式: 推荐优先级 = VAR LiftValue = VAR SalesRatio = DIVIDE( ,, 0) RETURN SWITCH(     TRUE(),     ISBLANK(LiftValue) || ISBLANK(SalesRatio), BLANK(),     LiftValue > 1&& SalesRatio > 0.1, "高优先级",     LiftValue > 1 && SalesRatio > 0.05, "中优先级",     LiftValue > 1, "低优先级",     "不推荐" ) 公式逻辑解析: 变量定义 LiftValue: 存储提升度值 SalesRatio: 计算关联销售额与主产品销售额的比值 SWITCH逻辑 使用SWITCH(TRUE(),...)模式实现多条件判断 将判断条件按照优先级从高到低依次排列 优先级分类标准 高优先级: Lift>1 且 销售比例>10% 中优先级: Lift>1 且 销售比例>5% 低优先级: Lift>1 但 销售比例≤5% 不推荐: Lift≤1 行业应用建议 零售业: 高优先级组合适合做促销套装 中优先级适合做关联陈列 低优先级可做线上推荐 电商平台: 高优先级: "买了也买"首位推荐 优先级: 购物车推荐 低优先级: 商品详情页推荐 ★制作可视化报告 第一步:设置报表页格式选项,选择画布背景,上传我们设计好的素材 第二步:插入一个矩形图,填充颜色,打开阴影、发光功能 第三步:添加主页图标图像,启用交互功能,设置类型为书签,并指定书签为主页,点击该图标即可快速跳转至主页。 第四步:插入图像导航图标。 第五步:插入两个切片器,第一个切片器拖入日期表年度季度字段,第二个切片器拖入购物篮切片表子类别字段。 第六步:插入一个矩阵图,进行拖入购物篮辅助表子类别字段,值拖入度量值推荐优先级、bayA类产品的客户数、bayA类产品的销售额、bayB类产品的客户数、bayB类产品的销售额、关联客户数、关联销售额、交叉销售潜力指数、支持度、提升度、置信度。 第七步:插入一个散点图,值拖入购物篮辅助表子类别字段,X轴拖入度量值提升度,Y轴拖入度量值支持度,图例拖入购物篮辅助表分类字段,大小拖入度量值置信度,工具提示拖入度量值推荐优先级,向视觉对象添加进一步分析, 分别给支持度、提升度添加一条中值线。 第八步:如图美化页面。好的,今天的讲解就到这里。后期课程也会逐渐增加难度,如果在学习过程中需要帮助,欢迎随时联系作者,精彩内容,敬请期待。 获取模板文件或咨询,联系瓶子微信wdfyqx
已联系到可以白天一对一远程指导的finebi老师,finereport的老师,有需要联系
已联系到可以白天 一对一 远程指导的finebi老师,finereport的老师,有需要联系瓶子,微信wdfyqx 如果是晚上 一对一,我这可以联系到的老师更多一些,有需要加我微信。
《3 天掌握TOPN 分析!手把手教你打造财销一体看板,销售额提升 30% 的的实战秘籍》
Power BI财销一体分析——TOPN分析实践 欢迎来到Powerbi小课堂,前几期课程我们深入学习了各种财务、销售实用案例,本期我将带领大家整合分散知识点,逐步构建一个全面的分析模型,涵盖封面、登录页、导航页、CEO驾驶舱等模块,以及趋势、产品、畅销品等多维度分析,同时融入度量值嵌套、计算组、动态指标、TOPN分析等高阶技巧。今天我将为大家带来TOPN分析应用实践,通过书签导航在一个页面内切换多个视觉对象,接下来,让我们直接进入今天的实用技巧分享环节。如果您在实践过程中遇到任何问题,欢迎留言交流。请关注我们的公众号《BI研究所》,以获取更多案例更新和学习资源。 想要一份这样的可视化看板吗?想学吗?我教你呀! 案例背景: 我司为专业运动自行车跨国销售企业,涵盖自行车、组件、配件及运动服装。现需制作财销一体分析,紧密结合财务与销售,通过技术手段实现深度融合,数据共享与流程优化,提升决策与运营效率,优化资源配置,增强风险控制,推动企业可持续发展。 设计思路: 通过本、量、利、销维度准确把控财务状况,从品、客、地域三个维度全面分析企业运营趋势, 准备基础数据 数据清洗 建立关系视图 个性美化设计 数据建模(度量值) 制作可视化报告 ★数据建模:TOPN分析 首先我们要理解TOPN分析是什么,TOPN分析是一种聚焦于识别数据集中排名前列的关键项的数据分析方法,通常用于快速定位影响业务的核心因素。以下为简要介绍: 核心概念 定义:根据特定指标对数据进行排序,选取排名前N位(如TOP5、TOP10)的项进行深入分析,N值可根据需求灵活调整。 目的:从海量数据中提炼关键信息,辅助决策者优化资源分配、制定策略。 典型应用场景 业务分析 销售管理:识别畅销商品(如前10名贡献60%营收),指导库存与促销。 客户价值:筛选高消费/高活跃用户(TOP20%客户贡献80%利润)。 运营优化 流量分析:定位访问量最高的页面或渠道,优化用户体验。 问题排查:找出故障率最高的设备或环节,优先修复。 市场策略 广告效果:分析点击/转化率最高的渠道,调整预算分配。 实施步骤 明确目标:确定分析方向(如提升销售额、降低流失率)。 选择指标:选取关键指标(如销售额、访问量、故障次数)。 数据准备:清洗并整理相关数据集。 排序与筛选环节:依据所选指标进行降序排列,并精准截取前N项关键数据,以便后续深入分析。 结果解读:结合业务背景分析头部项目的贡献或问题根源。 可视化呈现:使用柱状图、饼图等直观展示TOPN项。 在建模之前,我们首先要确定分析的指标,这里我们定为业绩(销售额)、销量、利润,同时我们确定此次分析N的范围,之前我们建立了用于给排名函数固定筛选条件的表,这次我们要建立一个阈值,将排名范围扩大到50名,新建参数功能,选择数值范围,命名为排名分段,最小值10,最大值50,增量10,勾选将切片器添加到此页,做完这一步,我们正式进入高阶度量值建立。 公式: 产品利润topN = VAR SelectedRank = SELECTEDVALUE('排名辅助') VAR RankedProducts =     ADDCOLUMNS(         ALL('产品表'),         "ProductProfit", ,         "Ranking", RANKX(ALL('产品表'), ,, DESC)     ) RETURN     MAXX(         FILTER(RankedProducts, = SelectedRank),         '产品表'     ) 产品销量topN = VAR SelectedRank = SELECTEDVALUE('排名辅助') VAR RankedProducts =     ADDCOLUMNS(         ALL('产品表'),         "ProductProfit", ,         "Ranking", RANKX(ALL('产品表'), ,, DESC)     ) RETURN     MAXX(         FILTER(RankedProducts, = SelectedRank),         '产品表'     ) 产品销售额topN = VAR SelectedRank = SELECTEDVALUE('排名辅助') VAR RankedProducts =     ADDCOLUMNS(         ALL('产品表'),         "ProductProfit", ,         "Ranking", RANKX(ALL('产品表'), ,, DESC)     ) RETURN     MAXX(         FILTER(RankedProducts, = SelectedRank),         '产品表'     ) 公式逻辑解析:以产品销售额topN为例 变量1:SELECTEDVALUE('排名辅助') 作用:从参数表 排名辅助 中获取用户选择的排名值(如N=3表示Top3)。 依赖:需提前创建参数表 排名辅助,通常包含一列连续整数(如1,2,3,...)并通过切片器绑定。 变量2:ADDCOLUMNS() 作用:为原始表添加新列。此处为所有产品添加两列: ProductProfit:计算每个产品的总销售额(依赖度量值 )。 Ranking:使用 RANKX 对所有产品按销售额降序(DESC)排名。 RANKX() 逻辑:对 ALL('产品表') 的所有产品,根据  降序排名。 返回结果 FILTER(RankedProducts, = SelectedRank) 作用:从已计算排名的表 RankedProducts 中筛选出指定排名的行。 MAXX() 作用:从筛选后的表中提取 产品表 列的值。 公式: 销量占比 = var a  =CALCULATE(,ALLSELECTED('产品表')) return IF(ISFILTERED('产品表'),divide(,a),BLANK()) 销售金额占比 = var a  =CALCULATE(,ALLSELECTED('产品表')) return IF(ISFILTERED('产品表'),divide(,a),BLANK()) 利润占比 = var a  =CALCULATE(,ALLSELECTED('产品表')) return IF(ISFILTERED('产品表'),divide(,a),BLANK()) 公式逻辑解析:以销量占比为例 变量1:CALCULATE(, ALLSELECTED('产品表')) 作用:计算在当前报表页面所有可见产品(受外部筛选器影响,但忽略对产品列的直接筛选)的总销量。 关键点:ALLSELECTED 会保留来自其他列(如时间、地区)的筛选,仅移除对 '产品表' 的筛选。 返回结果: ISFILTERED('产品表') 作用:检查是否对 '产品表' 列应用了直接筛选(例如切片器选择、表格中点击某产品)。 返回值:TRUE(已筛选)或 FALSE(未筛选)。 DIVIDE(, a) 作用:安全除法,计算当前产品的销量占所有可见产品总销量的比例(等价于 /a,但自动处理除零错误)。 BLANK() 逻辑:当未筛选产品时返回空值,避免无意义的全局占比显示 公式: 2017销量占比 = var a  =CALCULATE(,ALLSELECTED('产品表'),'日期表'=2017) VAR B = CALCULATE(,'日期表'=2017) return IF(ISFILTERED('产品表'),DIVIDE(B,a),BLANK()) 2017利润占比 = var a  =CALCULATE(,ALLSELECTED('产品表'),'日期表'=2017) VAR B = CALCULATE(,'日期表'=2017) return IF(ISFILTERED('产品表'),DIVIDE(B,a),BLANK()) 2017业绩占比 = var a  =CALCULATE(,ALLSELECTED('产品表'),'日期表'=2017) VAR B = CALCULATE(,'日期表'=2017) return IF(ISFILTERED('产品表'),DIVIDE(B,a),BLANK()) 2018销量占比 = var a  =CALCULATE(,ALLSELECTED('产品表'),'日期表'=2018) VAR B = CALCULATE(,'日期表'=2018) return IF(ISFILTERED('产品表'),DIVIDE(B,a),BLANK()) 2018利润占比 = var a  =CALCULATE(,ALLSELECTED('产品表'),'日期表'=2018) VAR B = CALCULATE(,'日期表'=2018) return IF(ISFILTERED('产品表'),DIVIDE(B,a),BLANK()) 2018业绩占比 = var a  =CALCULATE(,ALLSELECTED('产品表'),'日期表'=2018) VAR B = CALCULATE(,'日期表'=2018) return IF(ISFILTERED('产品表'),DIVIDE(B,a),BLANK()) 2019销量占比 = var a  =CALCULATE(,ALLSELECTED('产品表'),'日期表'=2019) VAR B = CALCULATE(,'日期表'=2019) return IF(ISFILTERED('产品表'),DIVIDE(B,a),BLANK()) 2019利润占比 = var a  =CALCULATE(,ALLSELECTED('产品表'),'日期表'=2019) VAR B = CALCULATE(,'日期表'=2019) return IF(ISFILTERED('产品表'),DIVIDE(B,a),BLANK()) 2019业绩占比 = var a  =CALCULATE(,ALLSELECTED('产品表'),'日期表'=2019) VAR B = CALCULATE(,'日期表'=2019) return IF(ISFILTERED('产品表'),DIVIDE(B,a),BLANK()) 2020销量占比 = var a  =CALCULATE(,ALLSELECTED('产品表'),'日期表'=2020) VAR B = CALCULATE(,'日期表'=2020) return IF(ISFILTERED('产品表'),DIVIDE(B,a),BLANK()) 2020利润占比 = var a  =CALCULATE(,ALLSELECTED('产品表'),'日期表'=2020) VAR B = CALCULATE(,'日期表'=2020) return IF(ISFILTERED('产品表'),DIVIDE(B,a),BLANK()) 2020业绩占比 = var a  =CALCULATE(,ALLSELECTED('产品表'),'日期表'=2020) VAR B = CALCULATE(,'日期表'=2020) return IF(ISFILTERED('产品表'),DIVIDE(B,a),BLANK()) 公式逻辑解析:以2017年销量占比为例 以上公式逻辑相同,目的是对之前建立的指标占比公式进行分解, 变量1:CALCULATE(, ALLSELECTED('产品表'), '日期表'=2017)作用:计算2017年所有可见产品的总销量(a)。 关键点: ALLSELECTED('产品表') 保留其他列的筛选(如地区、类别),仅移除对产品列的直接筛选。'日期表'=2017 限定仅计算2017年的数据。 若未对产品列筛选,a = 2017年全局总销量;若筛选了其他列(如地区),a = 该地区2017年所有产品销量。 变量2:CALCULATE(, '日期表'=2017) 作用:计算2017年当前上下文产品的销量(B)。 差异: 若已筛选某产品(如切片器选择“产品A”),B = 产品A在2017年的销量。 若未筛选产品,B = 2017年所有产品的总销量(此时 B = a,占比为100%)。 返回结果: ISFILTERED('产品表') 逻辑:仅当用户主动筛选产品(如点击表格中的某行、使用产品切片器)时,才计算占比,否则返回空值。 DIVIDE(B, a) 结果:返回 2017年当前产品销量 / 2017年所有可见产品销量,自动处理除零错误。 公式: 利润排名 = SWITCH(TRUE(),        ISFILTERED('产品表'), RANKX(ALLSELECTED('产品表'),),        ISFILTERED('产品表'),RANKX(ALLSELECTED('产品表'),),        ISFILTERED('产品表'), RANKX(ALLSELECTED('产品表'),),        ISFILTERED('产品表'), RANKX(ALLSELECTED('产品表'),),                     BLANK())   销量排名 = SWITCH(TRUE(),             ISFILTERED('产品表'), RANKX(ALLSELECTED('产品表'),),             ISFILTERED('产品表'),RANKX(ALLSELECTED('产品表'),),             ISFILTERED('产品表'), RANKX(ALLSELECTED('产品表'),),           ISFILTERED('产品表'), RANKX(ALLSELECTED('产品表'),),               BLANK())   销售额排名 = SWITCH(TRUE(),  ISFILTERED('产品表'), RANKX(ALLSELECTED('产品表'),), ISFILTERED('产品表'),RANKX(ALLSELECTED('产品表'),), ISFILTERED('产品表'), RANKX(ALLSELECTED('产品表'),), ISFILTERED('产品表'), RANKX(ALLSELECTED('产品表'),),         BLANK()) 公式逻辑解析:以利润排名为例 这些公式用作辅助排名工具,鉴于之前已将排名范围扩展至50名,因此需利用公式固定排名范围,确保在通过切片器筛选排名范围时,能够动态更新相应的可视化表单。 SWITCH(TRUE(), ...) 作用:按顺序检查多个条件,返回第一个匹配的结果(类似 if-else if 链)。 执行流程: 检查是否筛选了 子类别 → 是则计算子类别利润排名。 否则检查是否筛选了 模型 → 是则计算模型利润排名。 以此类推,最后均不满足时返回 BLANK()。 ISFILTERED() 功能:检测指定列是否被直接筛选(如通过切片器、交叉筛选或表格点击)。 优先级:公式按 子类别 → 模型 → 产品 → 库存ID 的顺序检查,因此更粗粒度的筛选(如子类别)会优先触发。 RANKX(ALLSELECTED(...), ) 作用:对当前可见的某一层级(如所有子类别)按利润值降序排名。 关键点: ALLSELECTED 保留其他列的筛选上下文(如时间、地区),仅解除对目标列(如子类别)的筛选。 默认降序排名(高利润排名靠前),如需升序可添加 , , ASC 参数。 BLANK() 触发条件:当没有任何列被筛选时返回空值,避免无意义的全局排名。 无筛选时的行为 若用户未筛选任何列(如查看全局数据),则显示空白,避免计算全表排名(可能性能开销大或无意义)。 公式: 利润排名分段辅助 = var t = SELECTEDVALUE('排名分段') return SWITCH(true(), AND(t=10,<=10),, AND(t=20,<=20&&>10),, AND(t=30,<=30&&>20),, AND(t=40,<=40&&>30),, AND(t=50,<=50&&>40),, blank()) 销量排名分段辅助 = var t = SELECTEDVALUE('排名分段') return SWITCH(true(), AND(t=10,<=10),, AND(t=20,<=20&&>10),, AND(t=30,<=30&&>20),, AND(t=40,<=40&&>30),, AND(t=50,<=50&&>40),, blank()) 销售额排名分段辅助 = var t = SELECTEDVALUE('排名分段') return SWITCH(true(), AND(t=10,<=10),, AND(t=20,<=20&&>10),, AND(t=30,<=30&&>20),, AND(t=40,<=40&&>30),, AND(t=50,<=50&&>40),, blank()) 公式逻辑解析:以利润排名分段辅助为例 此度量值用于给可视化固定筛选使用 变量1:SELECTEDVALUE('排名分段') 作用:从参数表 排名分段 中获取用户选择的分段值(如10、20、30等)。 依赖:需要提前创建包含 排名分段 列的参数表,并通过切片器或下拉菜单绑定该列。 返回结果 SWITCH(TRUE(), ...) 功能:按顺序检查多个条件,返回第一个匹配的结果。 条件结构:每个条件均为 AND(t=分段值, 排名区间),确保同时满足用户选择的分段和排名范围。 排名区间逻辑 前10名:<=10 11-20名:<=20 && >10 以此类推,每10名为一个区间。 注意:区间是左闭右开的(如11-20名实际包含第11名到第20名)。 如果当前产品的利润排名落在用户选择的区间内,则返回该产品的  值,否则返回 BLANK()。 ★制作可视化报告 第一步:设置报表页格式选项,选择画布背景,上传我们设计好的素材 第二步:插入一个矩形图,填充颜色,打开阴影、发光功能 第三步:添加主页图标图像,启用交互功能,设置类型为书签,并指定书签为主页,点击该图标即可快速跳转至主页。 第四步:插入图像导航图标。 第五步:插入四个切片器及文本框,将分类、日期、渠道、国家等字段分别拖放至对应切片器,隐藏切片器标题,在文本框中手动输入切片器标题。随后,在可视化页面顶部横向排列这些元素。接着,打开视图窗口的选择功能,选中所有切片器和文本框,通过右键菜单进行分组,命名为‘筛选组’。 第六步:引入第三方视觉组件Tile Search Slicer by TME AG,并将产品表建议标价字段拖入该组件中。 第七步:引入第三方视觉组件Attribute Slicer,并插入两个,并将产品表子类别、模型字段拖入该组件中,这三个切片器的使用是为了实现多选,并呈现多选项目。 第八步:插入三个形状,选择圆角矩形,分别添加对比强烈的颜色,并插入三个文本框,利润top3,销量top3,业绩top3,将文本框调整大小置于圆角矩形内,用于呈现不同指标前三名的产品名称。 第九步:选取素材包内的数字图标作为图像,调整图标框大小并嵌入圆角矩形框中,以便辅助展示各类指标排名前三的产品排名情况。 第十步:创建九个卡片图,分别导入度量值产品利润topN、产品销量topN、产品销售额topN,并将排名辅助表中的排名字段设置为筛选条件,应用于可视化对象,确保每个卡片图展示的是对应指标排名前1、2、3的产品。 第十一步:调整九个卡片图的大小,并关闭其标题显示,然后将它们精准放置于对应的圆角矩形框内。接着,利用选择分组功能,将已创建的卡片图、文本框、图标以及圆角矩形整合为一组,并命名为‘卡片组’。 第十二步:创建三个矩阵图,将‘产品’字段拖入行区域。第一个矩阵图的值区域分别添加度量值:利润、利润占比及2017至2020年各年的利润占比;第二个矩阵图的值区域添加度量值:销量、销量占比及2017至2020年各年的销量占比;第三个矩阵图的值区域添加度量值:总销售额、总销售额占比及2017至2020年各年的总销售额占比。随后,将利润排名分段辅助、销量排名分段辅助、销售额排名分段辅助分别作为筛选器添加到对应的矩阵图中,设置筛选条件为显示值非空,并应用这些筛选器。 第十三步:再次创建三个矩阵图,将‘国家’和‘年度名称’字段拖入行区域,将排名辅助表的‘排名字段’拖入列区域。第一个矩阵图的值区域添加度量值‘产品利润topn’;第二个矩阵图的值区域添加度量值‘产品销量topn’;第三个矩阵图的值区域添加度量值‘产品销售额topn’。 第十四步:插入两个空白书签按钮,分别命名为畅销产品业绩矩阵和topn矩阵,并给控件替换图标,分别为素材包畅销作品图标和产品详情图标,再插入两个空白的书签导航器备用。 第十五步:首先,将已创建的矩阵图、切片器、书签导航及书签按钮等元素,根据其功能特性,划分为两个主要分组,即topn矩阵组和指标矩阵组。 第十六步:打开视图窗口书签功能,给可视化对象添加书签,以topn矩阵为例,点开对应分组,选择我们要添加书签的可视化对象,点击另外两个可视化对象后面的眼睛实现隐藏功能,点击添加书签,重命名为对应的矩阵名称,并重复以上动作,为不同的可视化对象添加书签,右键书签点击更新,最后测试下选择不同书签是否能出现对应可视化对象,而其他两个可视化对象实现隐藏,注意在执行此步骤时,一定要正确使用可视化对象的隐藏和显示,这个步骤类似于录制我们对此可视化页面的操作步骤,一步录错前功尽弃,按照不同可视化对象功能,多选书签,点击右键分组,重命名为topn导航和指标矩阵导航。 第十七步:点击先前创建的备用书签导航,在视觉对象中选择书签功能,并将相应的书签分组分配给空白的书签导航。这样,当我们点击控件时,系统会根据预设的书签显示对应的可视化对象。最后,将书签导航器拖动至相应的可视化分组位置。 第十八步:在视图窗口中激活书签功能,并为畅销品页面创建一个名为‘畅销品’的新书签。接着,将该书签拖放至页面导航组中。 第十九步:插入一个书签导航器,视觉对象选择书签功能,将对应的书签分组页面导航组赋给空白的书签导航。 第二十步:如图美化页面,开启编辑交互功能,关闭排名分段切片器对于其他视觉对象的干扰。 好的,今天的讲解就到这里。后期课程也会逐渐增加难度,如果在学习过程中需要帮助,欢迎随时联系作者,精彩内容,敬请期待。 获取模板文件或咨询,联系瓶子微信wdfyqx
finereport一对一远程线上,白天上课,有哪位老师可以接单吗
finereport一对一远程线上,白天上课,有哪位老师可以接单吗 可以联系瓶子微信 wdfyqx
解决方案需求,有哪位可以做吗
解决方案需求单,有哪位老师可以接吗,最好是公司或团队,实际做过这类: 云服务运维,微软Azure、阿里云,除了基础的运维、更多的是数据类的云服务运维,最好是微软Azure和阿里云运维的解决方案,是自己公司应该有类似的业务,积淀下来的业务方案 联系人瓶子,微信 wdfyqx
接单群的定位
接单群是  既可以接单 遇到问题也可以发单  也可以相互交流的一个地方。   目前论坛里有不少小伙伴已经在和我合作,并且有些已经合作多次了。接单群流程和规则都在不断完善和成长。   分为群内接单和群外接单,以群内接单为先,群内没人接单,我会向群外求助。       目前群外的接单老师也有,并且合作多次的,但平时单子一般先发给接单群内的老师,群外老师看运气和熟悉度来派单和发单。   群外求助方式有发到其他BI群、公众号、朋友圈,私聊某些熟悉的老师。     BI接单群目前已有134人,专注解决BI横向、纵向相关的各类技术问题,包括但不限于各类BI工具、python、mysql、oracle、sqlserver等数据库、数据仓库、编程开发、RPA、自动化,网站开发,APP开发,小程序开发、Power Platform、Power apps、宜搭、Excel、VBA、SPC等技术服务。 BI包括但不限于永洪bi、quickbi、PowerBI、FineBI、Finereport、smartbi、tableau、简道云、fvs、qlik等工具 , 包括但不限于:线上项目、项目外包、培训项目、数据分析、BI开发、BI咨询等方面,可以制作BI系统,或解决单个项目,单个问题,一对一教学、线下驻场等服务。 ******群内接单有个入群费100元,群外不收费,自愿进群,没有任何强迫哈******* 有兴趣的小伙伴可以关注我公众号《BI研究所》咨询 瓶子微信wdfyqx
finebi工作日白天远程教学1小时,有哪位老师可以做呢
finebi工作日白天远程教学1小时,有哪位老师可以做呢,感兴趣可添加瓶子微信 wdfyqx
兼职:帆软项目,沟通问题需要现场,开发在家也可以
帆软项目,有哪位老师可以接单。需求: 1、上海项目,需要FVS和简道云熟练; 2、沟通问题需要现场,开发在家也可以; 3、要求:一个老师两个工具都要熟悉  感兴趣,可以联系瓶子,微信wdfyqx
finebi最近的素材越来越好用了呢
最近在查看官网的素材,发现又又又更新了,点赞
finebi工作日白天教学1-2小时,有哪位老师可以做呢
finebi工作日白天教学1-2小时,有哪位老师可以做呢,可以微信联系瓶子:wdfyqx
finebi 腾讯会议远程一对一教学,白天2小时(上午,下午都可以),有哪位老师可以做呢
finebi 腾讯会议远程一对一教学,白天2小时(上午,下午都可以),有哪位老师可以做呢,微信联系瓶子 wdfyqx
finebi使用资源迁移导入资源显示不允许导入,解决方法
原文链接:finebi使用资源迁移无法导入资源,解决方法 最近在使用finebi开发finebi报表,报表开发之后,从一台电脑将资源导入另一台电脑后,出现不允许导入的提示,如下: 原因: 两个finebi的管理员名称不一致导致的。 解决方法: 点击任意一个蓝色小字 未知用户1,选择该电脑的管理员名称,选择之后其他表的资源所有者会自动匹配所有人,此时就可以正常导入了。 联系瓶子:微信wdfyqx 公众号:《BI研究所》
BI接单群,有感兴趣的小伙伴加入吗,当作兼职或练手
BI接单群目前已有134人,专注解决BI横向、纵向相关的各类技术问题,包括但不限于各类BI工具、python、mysql、oracle、sqlserver等数据库、数据仓库、编程开发、RPA、自动化,网页开发,APP开发,小程序开发、Power Platform、Power apps、宜搭、Excel、VBA、SPC等技术服务。 BI包括但不限于永洪bi、quickbi、PowerBI、FineBI、Finereport、smartbi、tableau、简道云、fvs、qlik等工具 , 包括但不限于:线上项目、项目外包、培训项目、数据分析、BI开发、BI咨询等方面,可以制作BI系统,或解决单个项目,单个问题,考试相关、一对一教学、线下驻场等服务。 ******群内接单有个入群费100元,群外不收费,自愿进群,没有任何强迫哈******* 有兴趣的小伙伴可以关注我公众号《BI研究所》咨询 瓶子微信wdfyqx
有个finebi线下2天培训,有老师有意向吗
有个finebi线下2天培训,有老师有意向吗,可以微信联系瓶子:wdfyqx
finebi-DEF函数从小白到大神系列,持续更新
文章链接:finebi-DEF函数从小白到大神系列-01 最近在写DEF函数系列的文章,希望能以一种通俗易懂方式理解DEF函数,让更多的小伙伴能够应用。 心得感受:每天研究一点,每天都会对DEF函数有新的感受,希望我的钻研能够帮助到你。 链接中是第一篇,感受比较深的是DEF函数和PowerBI中的calculate函数挺像的。 第二篇:finebi-DEF函数从小白到大神系列-02 写第二篇时,感受比较深的是DEF函数和PowerBI中DAX中的all函数挺像的,都有剔除外部所有筛选器的作用。 文章持续更新,如果有小伙伴关注,真是我的荣幸(#^.^#)  
finebi、finereport不用插件集成到钉钉、飞书
对于钉钉: 钉钉集成,BI集成到钉钉,支持quickbi,powerbi,finebi,smartbi,永洪bi等各种bi工具。可以做权限管理,同一个钉钉账号,登录不同的BI账号,并且无需购买其他软件或插件。 时长:大概1小时的教学。   对于飞书: 飞书集成,BI集成到飞书,支持quickbi,powerbi,finebi,smartbi,永洪bi等各种bi工具。可以做权限管理,同一个飞书账号,登录不同的BI账号,并且无需购买其他软件或插件。 时长:大概1小时的教学。   有意联系瓶子微信wdfyqx 钉钉详细描述,点击 这里 飞书详细描述,点击 这里    
认识BI的自动排版功能
如果只接触PowerBI的小伙伴,是不了解BI其实也是有自动排版功能的,我昨天分享了 图表可以自定义重叠功能,比如finebi和PowerBI。 但finebi还有个默认的功能,就是自动排版功能。然而这个功能,quickbi也有,并且在它的三个版本(个人版、高级版、专业版)都是默认的,而且只有这一个功能,如果想要有自定义重叠,无论你是高级版还是专业版,只能去购买数据大屏,当然目前专业版赠送5张数据大屏,个人版不支持购买。 优点: 自动排版,顾名思义就是不用自己去费劲的去排版,会自动的默认紧挨着另一个图表去排版,就连间隔也是全部一样的间隔,非常的方便。 缺点: 优点的反面就是确定,无法按照我们的想法去排版,太死板。 综上: 也是为什么我之前说你学了finebi就能了解国产BI的现状,因为finebi内的一些功能会涵盖大部分常见的功能,就比如这两天分享的图表的上下层和自动排版,finebi都有。当然,一家之言,莫当真。 更多信息请添加瓶子微信 wdfyqx咨询。 我组建了一个BI团队,点击可查看我的BI业务。
你可能没有在意的BI图表的上下层功能
即使我公众号《BI研究所》是从PowerBI开始写的,但为什么我一直强调要去学finebi。今天我以其中一个功能为例,讲述BI中一个很重要但可能大家都没觉得他很重要的一个功能,就是图表格式的上下层功能。 这篇文章以PowerBI、finebi、quickbi为例,为什么我要强调要认识图表上下层功能,因为只有了解到更优秀的功能,你才能发动你的想象,做出更加优秀的作品出来。 PowerBI: 从上面三个图中可以发现这两个卡片图可以任意的摆放位置,无论是在上层还是下层或不重叠都是可以实现的。 finebi: 从上面两个图可以发现中国地图和柱形图是可以任意摆放位置的,可以是上下层关系,也可以互不重叠。 quickbi: quickbi只能做成上面这两种有明显间隔的图表或无明显间隔的拼接图表。 而如果想要达到和powerbi、finebi一样有上下层关系的图表,目前只有一种方法,单独购买数据大屏,如图: 而图表的上下层功能对于powerbi和finebi来说是免费使用的,因此只有对比过才知道,有些功能是真的香! 回到开头那句,为什么对比finebi,powerbi也有这个功能,那为什么还要学习finebi呢,这就涉及到finebi的另一个功能,我们下次再聊。 更多信息请添加瓶子微信 wdfyqx咨询。 我组建了一个BI团队,点击可查看我的BI业务。
为什么我在学习了PowerBI后,还要继续学习Finebi
我昨天分享了一篇文章为什么我第一个工具选择了PowerBI,今天分享为什么在我深入研究了PowerBI以后,还会继续学习finebi。 原因一: 居安思危,因为我在郑州,郑州前几年使用powerbi的并不多,而finebi在广告上投入的力度很大,并且某些岗位也要求有P证,因此为了有个更广阔的发展机会,我去学习了finebi,并考取了P证【当时是叫P证,现在改名字了】。 原因二: finebi在制作可视化报表上和PowerBI是有很多不同的,比如计算同环比等,finebi计算同比,只需要点点点就可以实现;而PowerBI计算同环比,需要先创建日期表,然后使用dax去写函数,当然也可以使用自定义的方法来实现。相对来说,finebi的学习门槛比较低,也更容易上手。 原因三: finebi可以直接套用主题,并且finebi内置了很多深色大屏主题和浅色主题,样式也还不错。而powerbi内置的主题质量一般,套用模板后,大屏效果一般。 原因四: finebi个人使用全功能免费,而其他好多BI工具个人使用也是有收费门槛的,比如tableau。 综上: 在研究powerbi后,我又去学习了finebi,并考取了P证。 思考: 在这几年研究学习了各种BI工具后,我发现学习三种BI工具后,市面上几乎所有的工具都能很快入门,分别是PowerBI、Finebi、finereport。 对于BI,FineBI基本是国产BI的代表,做的最深入的,Finereport是报表工具的代表,也是做的最深入的,而PowerBI是国外工具,尤其是数据处理和模型的代表,做的最好的。 更多信息请添加瓶子微信 wdfyqx咨询,也欢迎关注我的公众号《BI研究所》,我会持续分享关于finebi、finereport等各种BI的使用经验和技巧。 我组建了一个BI团队,点击可查看我的BI业务。
12下一页
个人成就
内容被浏览69,702
加入社区6年21天
返回顶部