# 飞书多维表格函数应用指南

## 函数概述

**函数作用：**
- 🧮 自动计算
- 🤔 条件判断
- 🔍 数据查找
- 📊 统计分析
- 🔗 字段关联

**使用场景：**
- 自动计算字段值
- 根据条件处理数据
- 引用其他表的数据
- 统计分析汇总

## 核心函数详解

### 1. 查找引用函数（LOOKUP）

**功能：** 从其他表查找数据

**语法：**
```
LOOKUP(查找条件, 表名, 字段名)
```

**参数：**
- 查找条件：要查找的条件
- 表名：目标数据表
- 字段名：要返回的字段值

**示例：**
```
订单表 → 引用客户表的"联系方式"
公式：=LOOKUP([客户名称], "客户表", "联系电话")
```

**常见场景：**
- 关联数据引用
- 自动填充关联字段
- 层级数据获取

**注意事项：**
- 避免多层查找引用
- 确保查找字段有唯一性
- 处理找不到的情况

### 2. 条件判断函数（IF）

**功能：** 根据条件执行不同逻辑

**语法：**
```
IF(条件, 条件成立返回值, 条件不成立返回值)
```

**参数：**
- 条件：判断条件
- 条件成立返回值
- 条件不成立返回值（可选，默认为空）

**示例：**
```
判断任务是否紧急
公式：=IF([优先级] = "高", "紧急处理", "正常处理")
```

**进阶用法：**
```
多条件判断
公式：=IF([订单金额] > 10000, "大额订单", 
        IF([订单金额] > 5000, "中等订单", "小额订单"))
```

**嵌套IF：**
```
状态判断
公式：=IF([状态] = "已完成", "✓ 已完成",
        IF([状态] = "进行中", "🔄 进行中", 
           IF([状态] = "待办", "⏰ 待办", "❌ 未知")))
```

### 3. 汇总函数

#### SUM - 求和
```
=SUM([数量1], [数量2], [数量3])
=SUM([价格] * [数量])  // 计算总额
```

#### AVERAGE - 平均值
```
=AVERAGE([分数1], [分数2], [分数3])
=AVERAGE([销售额])  // 平均销售额
```

#### COUNT - 计数
```
=COUNT([客户名称])  // 非空值计数
=COUNTIF([状态] = "完成")  // 条件计数
```

#### COUNTIF - 条件计数
```
=COUNTIF([优先级] = "高")  // 高优先级任务数量
=COUNTIF([完成日期] < [今天])  // 已逾期任务
```

#### SUMIF - 条件求和
```
=SUMIF([部门] = "销售", [销售额])  // 销售部门总销售额
=SUMIF([日期] >= [本月开始], [金额])  // 本月总金额
```

### 4. 日期时间函数

#### DATEDIF - 计算日期差
```
=DATEDIF([开始日期], [结束日期], "day")    // 天数差
=DATEDIF([开始日期], [结束日期], "month")  // 月数差
=DATEDIF([开始日期], [结束日期], "year")   // 年数差
```

#### TODAY - 当前日期
```
=TODAY()  // 今天的日期
=IF([截止日期] < TODAY(), "已过期", "未过期")
```

#### NOW - 当前时间
```
=NOW()  // 当前日期时间
```

#### YEAR/MONTH/DAY - 提取日期分量
```
=YEAR([日期])  // 年
=MONTH([日期])  // 月
=DAY([日期])  // 日
```

#### EOMONTH - 月份的最后一天
```
=EOMONTH([日期])  // 当月最后一天
=EOMONTH([日期], 1)  // 下月最后一天
```

### 5. 文本处理函数

#### CONCAT - 拼接文本
```
=CONCAT([姓氏], " ", [名字])  // 拼接姓名
=CONCAT("[", [产品名称], "] ", [价格])  // 拼接格式化文本
```

#### LEN - 字符串长度
```
=LEN([产品编码])  // 编码长度
=IF(LEN([描述]) > 100, "内容过长", "正常")  // 内容长度检查
```

#### FIND/SEARCH - 查找子字符串
```
=FIND("重要", [任务名称])  // 查找"重要"在标题中的位置
=IF(FIND("紧急", [描述]) > 0, "含紧急", "无紧急")  // 是否包含紧急内容
```

#### LEFT/RIGHT/MID - 截取字符串
```
=LEFT([身份证号], 6)  // 提取身份证前6位（地区码）
=RIGHT([手机号], 4)  // 提取手机号后4位
=MID([产品编码], 3, 3)  // 从第3位开始取3位
```

#### UPPER/LOWER - 大小写转换
```
=UPPER([产品名称])  // 转换为大写
=LOWER([名称])  // 转换为小写
```

### 6. 逻辑函数

#### AND - 逻辑与
```
=AND([条件1] = "是", [条件2] > 10)  // 两个条件都成立
=IF(AND([状态] = "进行中", [优先级] = "高"), "高优先级进行中任务", "")
```

#### OR - 逻辑或
```
=OR([状态] = "紧急", [状态] = "重要")  // 任一状态成立
=IF(OR([完成日期] < [今天], [优先级] = "高"), "需要关注", "")
```

#### NOT - 逻辑非
```
=NOT([状态] = "已完成")  // 状态不是已完成
=IF(NOT([是否完成] = TRUE), "未完成", "已完成")
```

### 7. 信息函数

#### ISBLANK - 判断是否为空
```
=IF(ISBLANK([负责人]), "未分配", "已分配")
```

#### ISNUMBER - 判断是否为数字
```
=IF(ISNUMBER([年龄]), "有效年龄", "无效年龄")
```

#### ISTEXT - 判断是否为文本
```
=IF(ISTEXT([产品名称]), "文本格式", "非文本格式")
```

## 常用函数组合公式

### 1. 项目进度计算
```
进度百分比：
=IF([任务数量] > 0, [完成数量] / [任务数量] * 100, 0)

进度条显示：
=IF([进度百分比] >= 100, "✓ 已完成",
    IF([进度百分比] >= 80, "🔥 基本完成",
        IF([进度百分比] >= 50, "📈 正常进展",
            IF([进度百分比] >= 20, "⚡ 快速开始", "🚀 刚开始"))))
```

### 2. 日期提醒
```
到期提醒：
=IF([截止日期] < TODAY(), "已过期 " + DATEDIF([截止日期], TODAY(), "day") + " 天",
    IF([截止日期] = TODAY(), "今天到期",
        IF([截止日期] - TODAY() <= 3, "还有 " + ([截止日期] - TODAY()) + " 天到期", "未到期")))

时间格式化：
=YEAR([截止日期]) + "年" + MONTH([截止日期]) + "月" + DAY([截止日期]) + "日"
```

### 3. 业绩排名
```
业绩排名：
=RANK([销售额], [销售额列])

销售等级：
=IF([销售额] > 100000, "销售精英",
    IF([销售额] > 50000, "销售骨干",
        IF([销售额] > 20000, "销售新手", "新员工")))
```

### 4. 数据验证
```
订单格式验证：
=IF(ISNUMBER([订单金额]), "金额正确", "请检查金额格式")

联系方式验证：
=IF(LEN([联系电话]) = 11 AND ISTEXT([联系电话]), "格式正确", "请输入11位手机号")
```

### 5. 条件格式化
```
状态标识：
=IF([状态] = "已完成", "🟢 已完成",
    IF([状态] = "进行中", "🟡 进行中",
        IF([状态] = "待办", "🔴 待办", "⚪ 未开始")))

客户类型标识：
=IF([客户级别] = "VIP", "⭐ VIP客户",
    IF([客户级别] = "A类", "💎 A类客户",
        IF([客户级别] = "B类", "🔵 B类客户", "🔸 普通客户")))
```

### 6. 数据转换
```
金额格式化：
=TEXT([金额], "¥#,##0.00")

日期格式化：
=TEXT([日期], "yyyy年mm月dd日")

百分比格式：
=TEXT([完成率], "0.0%")
```

### 7. 关联数据处理
```
客户归属判断：
=IF([客户来源] = "官网", "线上渠道",
    IF([客户来源] = "推荐", "合作渠道",
        IF([客户来源] = "展会", "推广渠道", "其他渠道")))

任务分类统计：
=IF(AND([任务类型] = "开发", [优先级] = "高"), "高优先级开发任务",
    IF(AND([任务类型] = "开发", [优先级] = "低"), "低优先级开发任务",
        IF([任务类型] = "测试", "测试任务", "其他任务")))
```

### 8. 时间计算
```
项目周期：
=DATEDIF([开始日期], [结束日期], "day") + "天"

工作日计算：
=NETWORKDAYS([开始日期], [结束日期])  // 排除周末和节假日

截止预警：
=IF([截止日期] - TODAY() < 0, "已逾期 " + ABS([截止日期] - TODAY()) + " 天",
    IF([截止日期] - TODAY() = 0, "今天到期",
        IF([截止日期] - TODAY() <= 3, "还有 " + ([截止日期] - TODAY()) + " 天到期", "未到期")))
```

## 函数使用技巧

### 1. 错误处理

#### IFERROR - 错误处理
```
=IFERROR(LOOKUP([客户], "客户表", "联系电话"), "未找到联系人")
```

#### ISERROR - 判断是否有错误
```
=IF(ISERROR([计算结果]), "计算错误", [计算结果])
```

### 2. 条件组合

#### 多条件AND组合
```
=AND([条件1] = "值1", [条件2] > 10, [条件3] <> "")
```

#### 多条件OR组合
```
=OR([状态] = "完成", [状态] = "已完成", [状态] = "结束")
```

#### 复杂条件
```
=IF(AND([金额] > 10000, [客户类型] = "VIP"), "大额VIP订单",
    IF(OR([产品类别] = "A", [产品类别] = "B"), "高价值产品", "普通订单"))
```

### 3. 数据筛选

#### 数值范围判断
```
=IF([年龄] >= 18 AND [年龄] <= 60, "成年人", "未成年人")
=IF([分数] >= 90, "优秀", IF([分数] >= 80, "良好", IF([分数] >= 60, "及格", "不及格")))
```

#### 文本匹配
```
=IF([产品类别] = "电子产品", "电子产品类", "其他类别")
=IF(FIND("手机", [产品名称]) > 0, "手机产品", "其他产品")
```

### 4. 时间处理

#### 时间段判断
```
=IF([当前时间] < "12:00", "上午", "下午")
=IF([星期几] IN ["周一", "周二", "周三", "周四", "周五"], "工作日", "周末")
```

#### 日期格式化
```
=YEAR([日期]) + "-" + TEXT(MONTH([日期]), "00") + "-" + TEXT(DAY([日期]), "00")
=TEXT([日期], "yyyy年mm月dd日 HH:mm")
```

## 函数性能优化

### 1. 避免循环引用
- 不要让公式引用其所在的字段
- 避免复杂的嵌套计算

### 2. 减少复杂度
- 简化条件判断
- 避免多层嵌套
- 使用辅助字段减少复杂计算

### 3. 索引优化
- 对常用查找字段建立索引
- 限制查找结果数量

### 4. 定期清理
- 删除无用的公式字段
- 优化重复的公式计算

## 常见问题解答

**Q: 为什么LOOKUP函数返回空值？**
A: 检查：
1. 查找条件是否正确
2. 目标表是否存在
3. 要查找的字段是否存在
4. 是否有匹配的记录

**Q: IF函数中如何使用AND/OR？**
A: 
```python
=IF(AND(条件1, 条件2), 结果1, 结果2)
=IF(OR(条件1, 条件2), 结果1, 结果2)
```

**Q: 如何处理日期格式不一致的问题？**
A: 使用日期标准化字段，统一格式后再进行计算。

**Q: 函数运行慢怎么办？**
A: 
1. 减少公式复杂度
2. 优化数据量
3. 使用索引字段
4. 避免频繁的LOOKUP调用

---

**参考文档版本：** 1.0
**最后更新：** 2026-03-12
