数据分析案例
本页面展示了灵析表格在数据分析场景中的典型应用,涵盖数据库数据导入、JSON 数据解析、批量数据清洗、大数据量处理和多数据源汇总等场景。
函数名说明
本文示例使用英文函数名(如 mysql_Connect),适用于所有语言版本。如安装的是中文版,请将函数名替换为对应的中文名。各函数的中英文名称对照请参考对应函数文档。
案例 1:MySQL 数据库数据导入 Excel
场景描述
销售部门需要从 MySQL 数据库中导出订单数据到 Excel 进行分析,包括连接数据库、查询数据和条件筛选。
使用函数
| 函数名(英文) | 函数名(中文) | 会员等级 | 功能 |
|---|---|---|---|
mysql_Connect | mysql_Connect | 🟢 免费 | 连接数据库 |
mysql_select | mysql_select | 🟢 免费 | 可视化查询数据 |
mysql_Query | mysql_Query | 🟢 免费 | 执行 SQL 语句 |
mysql_表结构 | mysql_表结构 | 🟢 免费 | 获取表结构信息 |
操作步骤
第一步:连接数据库
=mysql_Connect("localhost", "sales_db", "root", "password")连接成功后返回服务器版本、当前数据库等信息:
连接成功! ✓
服务器版本: 8.0.36
当前数据库: sales_db
连接超时: 3秒
实际连接时间: 68ms
SSL模式: None快速本地连接
如果使用默认参数(127.0.0.1、root/root、3306),可省略部分参数:
=mysql_Connect(,"sales_db")第二步:查询订单数据
=mysql_select("orders", "*", "order_date > '2025-01-01'", "order_id DESC")参数说明:表名 orders,查询所有字段 *,条件为 2025 年后的订单,按 order_id 降序排列。
第三步:指定字段查询
=mysql_select("orders", "order_id,customer_name,total_amount", "status='completed'", "order_date DESC")仅查询订单号、客户名称和总金额三个字段,条件为已完成订单。
第四步:获取表结构
=mysql_表结构("orders")返回 orders 表的字段名、类型、主键等结构信息,便于了解数据表设计。
完整案例
-- 连接远程数据库
=mysql_Connect("192.168.1.100", "ecommerce", "db_user", "db_pass", 3306)
-- 查询本月订单
=mysql_select("orders", "order_id,customer_name,product_name,quantity,total_amount", "DATE_FORMAT(order_date,'%Y-%m')='2025-05'", "order_date DESC")
-- 执行复杂 SQL
=mysql_Query("SELECT customer_id, SUM(total_amount) as total FROM orders WHERE status='completed' GROUP BY customer_id HAVING total > 10000 ORDER BY total DESC")案例 2:JSON 数据解析处理
场景描述
需要解析 API 返回的 JSON 数据,提取关键信息到 Excel 表格中进行进一步分析。
使用函数
| 函数名(英文) | 函数名(中文) | 会员等级 | 功能 |
|---|---|---|---|
json_Get | json_提取值 | 🟢 免费 | 提取 JSON 指定路径的值 |
json_JsonToTable | json_Json转表格 | 🟢 免费 | JSON 数组转表格 |
json_Search | json_搜索 | 🟢 免费 | 搜索 JSON 数据 |
操作示例
提取一级属性
=json_Get("{""name"":""张三"",""age"":30}", "name")Excel 字符串转义
在 Excel 公式中,字符串内的双引号需要用 "" 表示。例如 JSON {"name":"张三"} 在公式中应写为 "{""name"":""张三""}"。
结果:
张三多级嵌套路径提取
=json_Get("{""user"":{""info"":{""age"":25}}}", "user.info.age")结果:
25数组索引提取
=json_Get("{""items"":[{""id"":101},{""id"":102}]}", "items[0].id")结果:
101从 JSON 文件提取
如果 JSON 数据保存在文件中,可以直接传入文件路径:
=json_Get("D:\data\config.json", "server.host")结果:
192.168.1.1JSON 数组转表格
将 API 返回的 JSON 数组数据(存储在 A1 单元格中)转换为表格:
=json_JsonToTable(A1)该函数会将 JSON 对象数组展开为二维表格,自动生成字段标题行。
搜索 JSON 数据
=json_Search(A1, "completed", FALSE)在 JSON 数据中搜索值为 completed 的节点,返回匹配的值及其 JSON 路径。
案例 3:批量数据清洗
场景描述
导入的客户数据格式混乱,需要批量清洗和标准化,包括去除空格、统一符号、提取关键字段等。
使用函数
| 函数名(英文) | 函数名(中文) | 功能 |
|---|---|---|
str_Trim | wb_去首尾空格 | 去除首尾空白字符 |
str_Replace | wb_文本替换 | 批量替换文本 |
str_RegexExtract | wb_正则提取 | 按正则提取内容 |
操作示例
去除首尾空格
=str_Trim(A2)去除文本开头和结尾的所有空白字符(包括空格、制表符、换行符),保留中间空格不变。
统一全角符号为半角
=str_Replace(A2, ";|,|。|(|)", ";|,|.|(,|)")一次性将全角分号、逗号、句号、括号替换为半角。
提取手机号
=str_RegexExtract(A2, "1[3-9]\d{9}", FALSE)纵向输出所有匹配的手机号。
提取邮箱地址
=str_RegexExtract(A2, "[\w\.]+@[\w\.]+", FALSE)组合清洗公式
将多个清洗步骤组合在一个公式中:
=str_Trim(str_Replace(A2, ";|,", ";|,"))先统一符号格式,再去除首尾空格。
批量处理技巧
- 在第一行输入清洗公式
- 选中单元格,双击右下角填充柄向下填充
- 整列数据自动清洗完成
- 使用「选择性粘贴 → 值」将结果转为静态文本
案例 4:大数据量处理
场景描述
需要处理 10 万+条数据,要求高效稳定,避免 Excel 卡顿。
优化建议
使用数据库端分页查询
通过 mysql_select 的条件参数实现分页查询,避免一次性加载过多数据:
=mysql_select("orders", "*", "1=1 ORDER BY id LIMIT 10000 OFFSET 0")使用 SQL 直接执行复杂查询
=mysql_Query("SELECT department, COUNT(*) as count, SUM(amount) as total FROM orders GROUP BY department ORDER BY total DESC")让数据库完成聚合计算,只将结果返回 Excel。
本地数据快速筛选
=ex_Filter(A1:Z100000, 3, "北京", ",", 0, 0)使用 ex_Filter 函数对本地大数据区域进行精确筛选,自动过滤空白行。
案例 5:多数据源汇总
场景描述
需要将多个 Excel 文件、数据库、API 数据汇总到一张表中进行综合分析。
解决方案
MySQL 数据汇总
=mysql_select("orders", "customer_id,SUM(amount) as total", "1=1 GROUP BY customer_id")JSON API 数据导入
=json_JsonToTable(A1)将 A1 单元格中的 JSON 数据转为表格。
本地 CSV 文件读取
=f_Read("C:\data\sales.csv")数据合并处理
使用 Excel 扩展函数对合并后的数据进行处理:
-- 按条件筛选数据
=ex_Filter(A1:Z1000, 2, "2025-05")
-- 跨列合并去重
=ex_RmDup(A1:C100)
-- 行列转置调整布局
=ex_Region(A1:D50, TRUE)汇总流程
MySQL 数据库 ──┐
JSON API 数据 ──┼──→ 汇总到 Excel ──→ 筛选/去重/转置 ──→ 分析报表
本地 CSV 文件 ──┘