采购BI实践

基于Power BI Desktop的电子产品综合数据分析案例 1、项目简介 2、数据理解 表1:2020年各省人口数量表: 地区:各个省份 人口数:2020年各个省 份的人口数 表2:电子产品销售表; event_time:下单时间,包含其他内容,需要清洗; order_id:订单编号 product_id:产品标号 category_id :类别编号,存在空值; category_code :类别 ,存在空值 ; brand :品牌 price :价格 user_id :用户编号 age :年龄 sex :性别 local:省份 buy_cnt:购买数量 阅读详情

该下仅方法论自拟,其余全程使用ai!

01价格分析BI

0101主体

需求构建一个:

①能够系统分析出采购的重要物料品类、重要供应商

②分析各物料品类的平均价格,价格稳定性及价格趋势

③能区分不同供应商分别在物料上给付的最优、最劣价格

基于以上需求,提供一个应具备如下功能的看板:

①日期及物料类型切片器,其中物料类型选择时只能选择1个。

②受切片器影响的对应特定物料的采购供应商总金额排行(显示供应商名,列的直方图,确切数值,以及供应商数量,并将占据该物料类型90%金额的供应商标红)

③显示当前切片器下采购的总金额

④存货集成表,显示存货编码,供应数量,计量单位,消耗金额,最低采购单价,最低采购单价物料的数量占比,最高采购单价,最高采购单价的数量占比,单价(高低)差异率,平均单价,最新价格。

⑤采购供应商散点图,纵轴是供应商在存货集成表(存货编码)及切片器筛选下的总金额,横轴是其单价,其中的散点图是对应的供应商。

⑥时序显示的选中物料和存货编码的物料单价趋势折线图(附有线性趋势虚线),横轴是时间,纵轴是对应时间该物料的采购单价。

0102构建的报表结构

首先创建:物料表、供应商表、采购订单表(实践可能不止,但大致方向一致)

载入powerbi中,一步步实现前述功能。(默认已完成清洗,金额单位、币种置换等)

①日期及物料类型切片器

日期表直接建立(采购订单表[采购日期])

然后创建三个度量值:

选中物料金额 = 
CALCULATE(
    SUM('采购订单表'[金额])
)
总金额 = 
CALCULATE(
    SUM('采购订单表'[金额]),
    REMOVEFILTERS('物料表')
)
选中物料占比 = 
DIVIDE(
    [选中物料金额],
    [总金额]
)

然后在切片器中添加物料表[物料类型],在卡片图中添加“选中物料金额”和“选中物料占比”。

图示:

②采购供应商总金额排行

首先创建度量值:

供应商总金额 = 
SUM('采购订单表'[金额])
供应商数量 = 
DISTINCTCOUNT('采购订单表'[供应商编码])
前90%供应商数量 = 
VAR TotalAmount = CALCULATE([总金额], ALLSELECTED('供应商表'))
VAR SuppliersTable =
    ADDCOLUMNS(
        VALUES('供应商表'[供应商编码]),
        "SupplierAmount", [供应商总金额]
    )
VAR SortedSuppliers =
    FILTER(
        SuppliersTable,
        [SupplierAmount] > 0
    )
VAR RankedSuppliers =
    ADDCOLUMNS(
        SortedSuppliers,
        "Rank", RANKX(SortedSuppliers, [SupplierAmount], , DESC)
    )
VAR CumulativeTable =
    ADDCOLUMNS(
        RankedSuppliers,
        "CumulativeAmount",
            VAR CurrentRank = [Rank]
            RETURN
                SUMX(
                    FILTER(RankedSuppliers, [Rank] <= CurrentRank),
                    [SupplierAmount]
                )
    )
VAR Threshold = TotalAmount * 0.9
VAR SuppliersInTop90 =
    FILTER(
        CumulativeTable,
        [CumulativeAmount] <= Threshold
    )
RETURN
    IF(
        ISEMPTY(SuppliersInTop90),
        0,
        MAXX(SuppliersInTop90, [Rank])
    )

使用簇状条形图,添加:

Y轴:供应商表[供应商名称]

X轴:供应商总金额

使用卡片图,添加:供应商数量、前90%供应商数量。

图示:

③当前切片器下采购的总金额

创建度量值:

采购总金额 = 
CALCULATE(
    SUM('采购订单表'[金额]),
    ALL('物料表')
)
采购下单次数 = 
CALCULATE(
    DISTINCTCOUNT('采购订单表'[订单编码]),
    ALL('物料表')
)

放入卡片即可。

④存货集成表

创建以下度量值:

供应数量 = 
SUM('采购订单表'[采购数量])
消耗金额 = 
SUM('采购订单表'[金额])
最低采购单价 = 
MIN('采购订单表'[采购单价])
最高采购单价 = 
MAX('采购订单表'[采购单价])
最低价数量占比 = 
VAR MinPrice = [最低采购单价]
VAR MinPriceQty = 
    CALCULATE(
        [供应数量],
        '采购订单表'[采购单价] = MinPrice
    )
RETURN
DIVIDE(MinPriceQty, [供应数量])
最高价数量占比 = 
VAR MaxPrice = [最高采购单价]
VAR MaxPriceQty = 
    CALCULATE(
        [供应数量],
        '采购订单表'[采购单价] = MaxPrice
    )
RETURN
DIVIDE(MaxPriceQty, [供应数量])
单价差异率 = 
DIVIDE(
    [最高采购单价] - [最低采购单价],
    [最低采购单价]
)
平均单价 = 
DIVIDE(
    [消耗金额],
    [供应数量]
)
最新价格 = 
CALCULATE(
    MAX('采购订单表'[采购单价]),
    TOPN(
        1,
        '采购订单表',
        '采购订单表'[采购日期],
        DESC
    )
)

将度量值全部添加进表的列即可。

图示:

⑤采购供应商散点图

创建度量值:

供应商加权平均单价 = 
DIVIDE(
    [供应商总金额],
    SUM('采购订单表'[采购数量])
)
供应商采购频次 = 
DISTINCTCOUNT('采购订单表'[订单编码])

散点图中:

X轴:供应商加权平均单价

Y轴:供应商总金额

图例:供应商表[供应商名称]

大小:供应商采购频次

图示:

⑥物料单价趋势折线图

创建度量值:

按日平均单价 = 
CALCULATE(
    AVERAGE('采购订单表'[采购单价]),
    VALUES('采购订单表'[采购日期])
)
连续日期序列 = 
VAR StartDate = MIN('采购订单表'[采购日期])
VAR EndDate = MAX('采购订单表'[采购日期])
RETURN
CALENDAR(StartDate, EndDate)

创建表:

连续日期表 = 
VAR MinDate = MIN('采购订单表'[采购日期])
VAR MaxDate = MAX('采购订单表'[采购日期])
RETURN
ADDCOLUMNS(
    CALENDAR(MinDate, MaxDate),
    "年", YEAR([Date]),
    "月", FORMAT([Date], "MM"),
    "日", DAY([Date]),
    "年月", FORMAT([Date], "YYYY-MM")
)

建立连续日期表[Date]与采购订单表[采购日期],设置多对一并且单向的关系(无空白)。

折线图:

X轴:连续日期表[Date]

Y轴:按日平均单价

图示:

加入更多数据:

完成!

0103报表的使用

”物料类型“可以根据实际需要转换为产品品类或其他的类型字段。这里就是可以唯一判断一种关键类型信息的:供应商及价格趋势。

在供应商上,可以看出该类型在公司中的重要性(点1),供货供应商的数量(点2),是否有重要垄断型供应特征还是分散型供应特征(可以从散点【向上是采购金额,向右是采购单价,大小是采购数额】上看出,按道理来说采购金额越高(越靠上,散点越大),因为同一种品类,越左上可能就越重要,右上可能就需要一个重组或谈判的操作,右下可能就是需要去除的。

在存货上,实际上可以看不同存货类型的最高价和最低价的差异率(波动指标)。

在整体趋势上,不仅可以看到单价趋势【向上和向下都可以做归因分析】,也可以看到趋势的波动性【对于单价有高波动的,可适当增加安全库存或者优化,我们喜欢稳定可预测性】。

02成本分析BI

0201主体

需求构建一个:

①系统分析当期各产品当前产量、具体生产成本及其同比。

②分析当期产量对应品类分类、以及成本结构。

③分析全时产量及成本趋势。

基于以上需求,提供一个应具备如下功能的看板:

①日期切片器:可下拉选中一个日期【格式:年-月(2024-1、20242...)】,然后根据该切片器输出当期和环比的总产量、总生产成本、单位平均生产成本及显示对应增减百分比。

②存货表格:显示对应存货名称,及其按顺序排列的存货产量柱,以及其单位生产成本,并在产量和单位生产成本标注环比的增减。【后续进行特定选择时,还能据此分析其成本结构,存货分类的产品品类产量,以及和产量和单位生产成本趋势。】

③产品品类产量柱状图:如名。

④成本结构环状图:将筛选特定存货或特定产品品类,输出其对应的成本结构(若有更多细分【例如一级细分为材料、制造、人工,二级细分就是“人工”中的直接人工,管理人员工资等等】可以根据需要架设更多细分出来的成本结构环状图)

⑤产量成本趋势图:显示特定选择的存货、产品品类的:产量、成本趋势(不记日期筛选,近一年)折线图。

0202所需的主要数据

首先让ai根据一般流程,生成对应的制造业成本分析可能需要的表:

产品主数据表(存货编码,存货名称,产品品类,是否启用)

生产成本明细表(生产日期,存货编码,产量,总生产成本,材料成本,人工成本 ,制造费用 ,其他成本)

成本结构明细表(生产日期,存货编码,成本类型,成本子类型,成本金额)

0203构建的报表结构

首先创建:产品主数据表、生产成本明细表、成本结构明细表(实践可能不止,但大致方向一致)

①日期表构建/日期切片器

新建日期表:

DateTable =

VAR MinDate = MIN('生产成本明细表'[生产日期])

VAR MaxDate = MAX('生产成本明细表'[生产日期])

RETURN

ADDCOLUMNS (

    CALENDAR (MinDate, MaxDate),

    "Year", YEAR([Date]),

    "Month", MONTH([Date]),

    "YearMonth", FORMAT([Date], "YYYY年M月"),  -- 改为中文格式更清晰

    "YearMonthShort", FORMAT([Date], "YYYY-M"),  -- 短格式

    "YearMonthNum", YEAR([Date]) * 100 + MONTH([Date]),  -- 数值排序字段

    "MonthName", FORMAT([Date], "MMMM"),

    "Quarter", "Q" & QUARTER([Date])

)

切片器及筛选值:

然后汇集对应度量值:

基础度量值:

总产量 = 
CALCULATE(
    SUM('生产成本明细表'[产量]),
    ALLSELECTED('DateTable')
)

总生产成本 = 
CALCULATE(
    SUM('生产成本明细表'[总生产成本]),
    ALLSELECTED('DateTable')
)

单位平均生产成本 = 
DIVIDE(
    [总生产成本],
    [总产量],
    BLANK()
)

环比度量值:

上期总产量 = 
CALCULATE(
    [总产量],
    DATEADD('DateTable'[Date], -1, MONTH)
)

上期总生产成本 = 
CALCULATE(
    [总生产成本],
    DATEADD('DateTable'[Date], -1, MONTH)
)

上期单位平均生产成本 = 
CALCULATE(
    [单位平均生产成本],
    DATEADD('DateTable'[Date], -1, MONTH)
)

产量环比% = 
DIVIDE(
    [总产量] - [上期总产量],
    [上期总产量],
    BLANK()
)

成本环比% = 
DIVIDE(
    [总生产成本] - [上期总生产成本],
    [上期总生产成本],
    BLANK()
)

单位平均成本环比% = 
DIVIDE(
    [单位平均生产成本] - [上期单位平均生产成本],
    [上期单位平均生产成本],
    BLANK()
)

度量显示:

总产量显示 = 
VAR CurrentValue = [总产量]
VAR MomChange = [产量环比%]
RETURN
IF(
    ISBLANK(CurrentValue),
    "─",
    FORMAT(CurrentValue, "#,##0") & UNICHAR(10) &
    IF(
        ISBLANK(MomChange),
        "● 无上月数据",
        IF(MomChange > 0, 
            "🟢 +" & FORMAT(ABS(MomChange), "0.0%"),
            IF(MomChange < 0, 
                "🔴 " & FORMAT(MomChange, "0.0%"),  -- 负数会自动显示-号
                "⚪ " & FORMAT(ABS(MomChange), "0.0%")
            )
        )
    )
)

总成本显示 = 
VAR CurrentValue = [总生产成本]
VAR MomChange = [成本环比%]
RETURN
IF(
    ISBLANK(CurrentValue),
    "─",
    FORMAT(CurrentValue, "¥#,##0") & UNICHAR(10) &
    IF(
        ISBLANK(MomChange),
        "● 无上月数据",
        IF(MomChange > 0, 
            "🔴 +" & FORMAT(ABS(MomChange), "0.0%"),  -- 成本增加用红色
            IF(MomChange < 0, 
                "🟢 " & FORMAT(MomChange, "0.0%"),    -- 成本减少用绿色
                "⚪ " & FORMAT(ABS(MomChange), "0.0%")
            )
        )
    )
)

单位成本显示 = 
VAR CurrentValue = [单位平均生产成本]
VAR MomChange = [单位平均成本环比%]
RETURN
IF(
    ISBLANK(CurrentValue),
    "─",
    FORMAT(CurrentValue, "¥#,##0.00") & UNICHAR(10) &
    IF(
        ISBLANK(MomChange),
        "● 无上月数据",
        IF(MomChange > 0, 
            "🔴 +" & FORMAT(ABS(MomChange), "0.0%"),  -- 单位成本增加用红色
            IF(MomChange < 0, 
                "🟢 " & FORMAT(MomChange, "0.0%"),    -- 单位成本减少用绿色
                "⚪ " & FORMAT(ABS(MomChange), "0.0%")
            )
        )
    )
)

②存货柱状图

汇集度量值:

-- 存货当期产量
存货当期产量 = 
CALCULATE(
    SUM('生产成本明细表'[产量]),
    ALLSELECTED('DateTable')
)

-- 存货当期总成本
存货当期总成本 = 
CALCULATE(
    SUM('生产成本明细表'[总生产成本]),
    ALLSELECTED('DateTable')
)

-- 存货单位生产成本
存货单位成本 = 
DIVIDE(
    [存货当期总成本],
    [存货当期产量],
    BLANK()
)

环比度量值:

-- 存货上期产量
存货上期产量 = 
CALCULATE(
    [存货当期产量],
    DATEADD('DateTable'[Date], -1, MONTH)
)

-- 存货上期单位成本
存货上期单位成本 = 
CALCULATE(
    [存货单位成本],
    DATEADD('DateTable'[Date], -1, MONTH)
)

-- 存货产量环比%
存货产量环比% = 
DIVIDE(
    [存货当期产量] - [存货上期产量],
    [存货上期产量],
    BLANK()
)

-- 存货单位成本环比%
存货单位成本环比% = 
DIVIDE(
    [存货单位成本] - [存货上期单位成本],
    [存货上期单位成本],
    BLANK()
)

显示用:

-- 产量显示(含环比)
存货产量显示 = 
VAR CurrentValue = [存货当期产量]
VAR MomChange = [存货产量环比%]
RETURN
IF(
    ISBLANK(CurrentValue),
    "",
    FORMAT(CurrentValue, "#,##0") & " " &
    IF(
        ISBLANK(MomChange),
        "●",
        IF(MomChange > 0, 
            "▲+" & FORMAT(ABS(MomChange), "0.0%"),
            IF(MomChange < 0, 
                "▼" & FORMAT(MomChange, "0.0%"),
                "●" & FORMAT(ABS(MomChange), "0.0%")
            )
        )
    )
)

-- 单位成本显示(含环比)
存货单位成本显示 = 
VAR CurrentValue = [存货单位成本]
VAR MomChange = [存货单位成本环比%]
RETURN
IF(
    ISBLANK(CurrentValue),
    "",
    FORMAT(CurrentValue, "¥#,##0.00") & " " &
    IF(
        ISBLANK(MomChange),
        "●",
        IF(MomChange > 0, 
            "▲+" & FORMAT(ABS(MomChange), "0.0%"),
            IF(MomChange < 0, 
                "▼" & FORMAT(MomChange, "0.0%"),
                "●" & FORMAT(ABS(MomChange), "0.0%")
            )
        )
    )
)

图:

③产品品类产量柱状图

基本度量值:
品类总产量 = 
CALCULATE(
    SUM('生产成本明细表'[产量]),
    ALLSELECTED('DateTable')
)
-- 产品品类排名(用于排序)
品类产量排名 = 
RANKX(
    ALLSELECTED('产品主数据表'[产品品类]),
    [品类总产量],
    ,
    DESC,
    Dense
)

④成本结构环状图

度量值:

一级占比 =

DIVIDE(

    SUM('成本结构明细表'[成本金额]),

    CALCULATE(

        SUM('成本结构明细表'[成本金额]),

        ALLSELECTED('成本结构明细表'[成本类型])

    ),

    0

)

二级占比 =

DIVIDE(

    SUM('成本结构明细表'[成本金额]),

    CALCULATE(

        SUM('成本结构明细表'[成本金额]),

        ALLSELECTED('成本结构明细表'[成本子类型])

    ),

    0

)

图:

⑤产量成本趋势图

全时段日期建表:

全时段日期表 = 
VAR MinDate = MIN('生产成本明细表'[生产日期])
VAR MaxDate = MAX('生产成本明细表'[生产日期])
RETURN
ADDCOLUMNS (
    CALENDAR (MinDate, MaxDate),
    "Year", YEAR([Date]),
    "Month", MONTH([Date]),
    "YearMonth", FORMAT([Date], "YYYY-MM"),
    "YearMonthDisplay", FORMAT([Date], "YYYY年M月"),
    "YearMonthNum", YEAR([Date]) * 100 + MONTH([Date])
)

趋势分析度量值:

-- 月度总产量(按全时段日期表的月份分组)
月度总产量 = 
CALCULATE(
    SUM('生产成本明细表'[产量]),
    ALLEXCEPT('生产成本明细表', '全时段日期表')
)

-- 月度总成本(按全时段日期表的月份分组)
月度总成本 = 
CALCULATE(
    SUM('生产成本明细表'[总生产成本]),
    ALLEXCEPT('生产成本明细表', '全时段日期表')
)

-- 月度单位成本
月度单位成本 = 
DIVIDE(
    [月度总成本],
    [月度总产量],
    BLANK()
)

图:

整体:

多数据:

完成!

0204报表的使用

通过产量和成本的变化来了解一个产线的趋势。比如产量升(总)成本升是比较正常的【但一般不会比产量要快】,产量降成本升属于异动归因【做更少的事要花更多的钱】,产量升成本降可以归因好的方面【降本增效】。

这个报表不仅可以根据存货来看成本结构和成本趋势,也可以用产品品类来看。

成本结构上,就可以在归因时有所针对。当前的报表只实现了百分比,其实可以加入对应的确切金额及其变动信息。

在趋势上通常来说,产量与单位成本之间存在着反向关系,即随着产量的增加,单位成本会呈现先下降后可能趋于平稳或上升的趋势。【比如产量上升,单位成本也上升是危险的,预示着产量可能超过了健康的规模。也可能是由于外部的扰动,具体得看成本结构,去对应的日期进行查询】

03时效分析BI

0301主体

需求构建一个:

①能分析平均采购周期范围(平均及最早and最晚)

【采购周期=采购到货-采购下单的时间差、最早最晚就是分第一批次和最后批次的到货日期】

②能分析各供应商响应速度【平均采购实际周期的排名】及采购周期与计划的差异的差值趋势【平均采购实际周期和平均计划周期的区别】

③分析采购实际与计划的频率差异【早于计划、晚于计划】

④分析供应商的采购规模和采购周期的分布【合理性】

0302所需的主要数据

0303构建的报表结构

跨境电商采购环境搭建与流程优化指南 跨境电商采购作为数字化贸易的重要环节,其核心在于构建合规高效的采购体系。从技术实现角度看,采购系统需要依托稳定的硬件配置(如i5处理器、16GB内存)和专用网络环境(固定IP、低延迟),同时配合采购管理系统(如SAP Ariba)和数据抓取工具实现流程自动化。在跨境电商平台如亚马逊、TEMU等场景中,采购流程涉及需求确认、报价获取、订单创建等关键阶段,每个环节都需要严格遵循平台规范。通过实施动态定价策略和供应链韧性建设,企业可以有效应对砍单异常,其中价格敏感度模型(PSM)和供应商信用评级体系是重要的预防工 阅读详情

相关推荐

17、采购与缓慢变化维度管理

本文深入探讨了采购业务中累积快照事实表的设计与应用,重点分析了适用于具有明确里程碑流程的采购管道建模。同时,全面介绍了缓慢变化维度(SCD)的四种类型(Type 0-3),对比其处理方式、历史记录保留能力及对事实表和OLAP立方体的影响,并提供了选择策略的决策流程与最佳实践,帮助企业在数据仓库建设中准确追踪维度变化,满足多样化的业务分析需求。

flink9streamer的博客 49

PowerBI供应链数据分析与可视化,主要分析什么?供应链库存分析最佳案例分享

供应链数据分析,涉及计划,采购,制造,仓储物流,俗称M4。供应链数据最大的特征是数据多维化,系统来源多元化,需要多维度深度钻取数据,一般要通过数据BI看板来体现。可视化只是数据整理和数据建模后的呈现形式,核心是数据获取的方式、如何数据清洗和数据建模。下面以库存控制看板为例给大家分享下供应链数据分析可视化到底要做成什么样的。上述案例是供应链行业库存分析的经典案例,可以从多个仓库维度分析各个品类、各个产品的进销存情况、库存周转天数、动销、滞销情况,并且提供库存预警状态,便于及时补货。

shangxiPBI的博客 1711

brpc组件bvar源码解析(一)简介、使用和类的关系

bvar是brpc中的一个重要组件,brpc内部有很多builtin监控都是bvar实现的。 brpc文档介绍bvar“几乎不会给程序增加性能开销,也快于竞争频繁的原子操作”。它的原理是:多线程累加一个计数器时,每个线程只累加私有的变量而不参与全局竞争,因此写时没有锁的竞争;在读取时累加所有线程的私有变量。虽然读比之前慢多了,但写就快多了,因此它使用写多读少的场景,例如统计、监控场景。 1.使用 // bvar::Adder<T>用于累加,下面定义了一个统计read error总数的Adder。

华秋实的专栏 1852

采购订单模板_我们太难了——采购部门之采购分析主题报表

“啤酒+尿布”的案例,想必大家耳熟能详了,看似毫无关联的两种商品,将其结合竟然产生了神奇的效应,这背后离不开沃尔码对采购数据的分析。去超市购物时,很多人会对需要购买的物品大致清点后,了解所需要采购的物品,进行有目标的采购。不难发现很多商品会捆绑销售,比如牙膏和牙刷,我们购买牙膏时心中可能没有特别指定的牌子,这时眼中扫到了一款牙膏,还附带牙刷,在同价商品中,相信大家买走此款牙膏的几率会极大上升......

weixin_39538693的博客 772

保姆级教程:用xmir-patcher一键解锁Redmi AX3000路由器的SSH(附视频演示)

本文提供Redmi AX3000路由器SSH解锁的保姆级教程,详细介绍了使用xmir-patcher工具一键解锁SSH的步骤,包括环境搭建、工具获取、图形化操作详解及常见问题排查。解锁后,用户可通过SSH连接实现刷机、插件安装、网络优化等高级功能,提升路由器性能。

weixin_29216049的博客 729

AUTOSAR BswM配置实战:手把手教你用Vector Davinci Configurator搭建第一个模式管理规则

本文详细介绍了如何使用Vector Davinci Configurator工具配置AUTOSAR BswM模块,实现车身控制ECU的模式管理规则。通过实战案例,从环境准备、核心概念梳理到具体配置步骤,包括ModeRequestPort、ModeCondition、Logical Expression和Rules的构建,帮助工程师快速掌握BswM配置技巧,提升汽车电子软件开发效率。

weixin_28678831的博客 352

BI数据分析逻辑注意点----采购订单金额统计

在看物料凭证,会导致差异的发生,所以不能取物料凭证表,只能取采购订单历史表。他们之间的金额存在差异,差异的来源于 物料设置的移动平均价类似是标准价。在做采购订单金额分析的时候,要用EKBE,而不能用MATDOC表。

weixin_45279441的博客 345

别再找在线API了!用C#调用微信电脑版自带的OCR,本地识别又快又准

本文详细介绍了如何利用C#调用微信电脑版内置的OCR引擎实现本地文字识别,解决传统云端API的隐私和网络依赖问题。微信OCR具备高精度中文识别、完全离线运行和零成本接入三大优势,特别适合企业文档电子化处理。通过实战代码演示了核心交互逻辑、批量处理流水线和表格数据提取等高级应用场景。

weixin_29295541的博客 589

上线一套 BI 系统真的很贵?

犹记 10 年前,接到第一份 offer,岗位 Title 就是 BI 工程师 从此也就和 BI 行业有了这份不解之缘 往前推 10 年,还是 08 北京奥运的时候,听起来似乎已经是很久远的样子,尤其是现在 BI 行业的生力军 90 后会问:那时候就有 BI 了?那时候 90 后才十几岁 是,不仅有,而且那时候的 BI 也早已是提出来十多年的概念了 日新月异的时代里,一个技术概念基本 5 ...

rqgxy的博客 7303

NX二次开发 内部函数鼠标动态位置获取

内部函数鼠标动态位置获取

qq285503851的博客 3336

自动驾驶感知新方案:YOLOv13多模态(RGB+LiDAR+热成像)融合实战

YOLOv13的RGB+LiDAR+热成像多模态融合方案,解决了自动驾驶感知的鲁棒性问题,通过跨模态特征互补和注意力融合,实现了复杂场景下的高精度检测。本文从架构设计、数据预处理、核心模块实现到车载部署,完成了全流程实战。动态模态权重:根据场景自动调整各模态的权重(如黑夜场景提升热成像权重);端到端3D检测:直接从原始点云与图像进行3D检测,减少预处理步骤;轻量化优化:针对车载设备进一步剪枝量化,提升推理速度。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 534

BI采购避坑指南:从隐性成本分析到JVS-BI一体化自助实践(优快云技术实操版)

本文以技术视角拆解企业BI采购中被忽视的隐性成本构成,结合JVS-BI开源平台的真实能力,给出可落地的三步降本路径:成本度量、场景验证、能力基线建设,并附关键操作逻辑与可复用的技术实现要点。

167

C++(Qt)软件调试---内存分析工具Heob(26)

绝对最全面最详细的Heob使用说明。(图文并茂) 绝大部分的文章都说Heob是一个内存泄漏分析工具,其实Heob只是内存泄漏分析功能比较突出,实际上Heob可以分析很多内存问题。 Heob是一个Windows下检测缓冲区溢出(野指针、空指针、内存越界、重复释放、异常捕获等)和内存泄漏的工具,集成到Qt Creator中,功能强大,简单容易上手。

mahuifa的博客 4312

自研还是采购BI系统?后悔知道得太晚!

随着IT信息化的高速发展,企业产生大量的业务数据,这些数据放在ERP、CRM、OA等不同系统中,相互之间隔离,且数据口径也往往不一致,需要花费大量的时间进行数据处理。而,依托于BI系统能够将这些零散的”数据”转换成有价值的”信息”,从而协助决策者做出更明智的决策。 由此,相信大家也意识到了BI的重要性,结合实际落地来说,怎么样选择适合企业自己的方式来搭建一套BI平台系统呢? 本篇是技术类干货长文,小编先开门见山抛出见解: “除非是到BAT这一体量的大公司,否则不是很建议自研一个独立的BI,因为就算..

1940

Openclaw错误分析与解决方案之:Agent couldn’t generate a response.

Openclaw错误分析与解决方案之:Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 1316

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

BI能给企业带来的好处

1、整合信息孤岛,整体分析问题 BI可以将企业信息化的数据孤岛整合起来,提供一个全局的视图,让决策者可以更加全面地看待问题,降低决策失误风险性 2、提高决策质量,深入分析问题 BI能够将数据转换为知识进而辅助决策,能够使决策者决策更加迅速准确,能够给企业注入新的革命性的管理思想。 决策者可以根据BI提供的钻取功能对数据结果进行追根溯源,使问题的分析不止步于表面结果,发掘出数据中包含

紫天专栏 3935

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

自研BI还是采购?能力边界与全周期成本拆解

商业智能(BI)看似是报表工具,实则是一条从固定报表到自助分析、数据建模乃至智能问答的完整能力光谱。很多企业在选型时纠结于自研还是采购,本质上是在权衡能力边界与全周期成本。成熟BI产品沉淀了复杂报表引擎、性能优化与权限治理等大量工程经验,自研则更适配定制化需求和极致安全场景。真正的决策模型不应只看第一年账单,而要用五年TCO结合风险权重来评估。当前大模型与SQL生成技术正重塑BI交互方式,但AI仍是数据治理好之后的放大器。理解这些底层逻辑,才能把自研或采购变成真正合适的方案。

weixin_28630185的博客 275

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

案例分享|某医药集团的BI建设案例

相比于传统型BI,越来越多的企业开始接受并青睐新型的自助式BI,因其项目上线快,失败风险小,简单易用,颇受赞誉。本文以医药集团作为案例,从用途架构、指标分析和信息狡猾几个方面进行数据分析。

Leo的博客 6308

Power BI学习笔记第16篇:Power BI 示例一览

本文摘自微软Power BI官方示例库,目前一共有17篇。此篇借助工具将17个主页的截图汇总在了一起,方便后续在设计Dashboard的时候,能从中获取一些灵感。

哥本哈士奇的博客 643

2027届秋招,大数据专业想做采购,该准备哪些技能和证书?

大数据管理与应用专业想做采购,方向是通的,但需要搞清楚一件事:校招JD里的“数据能力”不是让你写算法,是能用数据工具管好采购执行中的物料、成本和供应商。

2601_96296664的博客 211

大专学历做采购助理职业转型背景分析

大专学历的采购助理通常负责供应商沟通、订单跟踪、合同管理等事务性工作,职业发展易遇瓶颈:薪资增长缓慢(行业平均约4-8k/月)、岗位可替代性强、缺乏技术壁垒。痛点集中在数据利用率低(如历史采购数据未被分析优化)、决策支持能力弱。供应链数字化转型推动需求激增,企业急需能通过数据优化库存、物流成本的复合型人才。招聘平台显示,供应链数据分析师岗位薪资范围8-15k/月,要求掌握SQL/Python(占比72%)、数据可视化(58%)、供应链建模(如库存优化模型)。

2508_94602842的博客 574

嵌入式BI最佳实践:如何在你的SaaS产品中快速构建像衡石一样的分析模块?

回顾上述最佳实践,你会发现嵌入式BI的成功不仅仅是选一个工具,而是将BI平台作为SaaS产品的一部分来设计。衡石科技之所以能成为众多SaaS厂商的选择,正是因为它提供了API-first、多租户原生、深度可定制的架构,让厂商能够像搭积木一样快速构建分析模块,同时保持产品的独特体验。当你的SaaS产品需要分析能力时,不妨思考:我们是只买一个“报表插件”,还是寻找一个能与我们共同成长的“分析内核”?后者带来的长期价值,将远超一次性的功能上线。

zandy1011的博客 444

从单Agent到多智能体协同:基于 JiuwenClaw 构建企业级采购智能分析系统

本文探讨了企业级智能体系统从单Agent向多智能体协同的演进路径,重点分析了JiuwenClaw框架如何构建采购智能分析系统。文章指出,企业业务需求不是简单的问答,而是包含语义理解、任务规划、SQL生成、工具调用、数据分析等环节的连续任务链。传统单Agent方案存在职责臃肿、工具调度混乱、任务不可追踪三大问题。JiuwenClaw通过协同运行层架构,将复杂任务拆解为Planner、SQL、Data、BI、Report等多个职责清晰的Agent,形成可追踪、可复用的执行链路。文章以医疗设备采购分析为例,展示了

master_hunter的博客 4万+

中小企业买不起专业BI?衡石HENGSHI SENSE的轻量化部署指南

在数字化浪潮中,中小企业正面临两难困境:一边是激烈市场竞争对数据驱动决策的迫切需求,另一边是专业BI工具高昂的采购成本与复杂的部署门槛。某制造企业IT负责人的吐槽颇具代表性:“传统BI工具动辄百万级授权费,加上服务器、运维团队开支,一年投入够买辆宝马5系。”这种矛盾催生了新的解决方案——衡石科技HENGSHI SENSE通过轻量化部署模式,让中小企业以“五菱宏光”的成本获得“宝马级”的数据分析能力。

zandy1011的博客 898
上一篇: 数据-供应链-计划-采购-运营-管理
下一篇: 对销售和营销的思考
code_ent
博客等级 码龄4年 316粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值