小Jo聊分析——小Jo专注数据分析领域,分享实战干货。从数据清洗到可视化呈现,帮你构建系统的数据分析思维。
点击 阅读原文或复制链接 https://s.fanruan.com/86q83免费体验在线零代码数据分析工具。
别再手动算数、翻日历、找数据了,这些函数一键搞定
你有没有遇到过这样的场景: 面对上千行数据,需要按条件求和,结果一个个加到手抽筋? 想统计某个月份的销售额,却只能肉眼筛选? 或者,老板让你从一张混乱的表格里快速匹配出某个人的信息,你还在用 Ctrl+F慢慢复制粘贴?
其实,Excel 早就帮你准备好了解决方案——函数。 用好函数,别人花一个小时的工作,你三分钟就能搞定。
今天,我整理了 80 个最常用的 Excel 函数,涵盖:
数学计算 逻辑判断 文本处理 查找引用 日期时间 财务分析
不废话,直接上干货。每个函数都配上最通俗的例子,看完就能用。
一、数学与三角函数
工作中最基础的就是数值计算。这部分函数可以让你告别手动按计算器的日子。
SUM —— 求和
=SUM(A1:A10)
计算 A1 到 A10 的总和。 例:如果 A1 到 A10 是 1 到 10,结果就是 55。
SUMIF / SUMIFS —— 按条件求和
=SUMIF(B:B, ">5000", C:C)
统计 B 列中大于 5000 的数值,对应的 C 列总和。注意:SUMIF 的条件区域和求和区域是分开的。
=SUMIFS(D:D, B:B, "北京", C:C, ">100")
同时满足“B 列为北京”且“C 列大于 100”的 D 列总和。SUMIFS 的条件可以写多组,非常灵活。

SUMPRODUCT —— 数组乘积求和
=SUMPRODUCT(A1:A5, B1:B5)
单价(A 列)× 数量(B 列),直接算出总销售额,一步到位。它会把两列对应位置相乘后再全部加起来。
ROUND / ROUNDUP / ROUNDDOWN —— 四舍五入
=ROUND(123.456, 2)→ 123.46
=ROUNDUP(3.1415, 2)→ 3.15
=ROUNDDOWN(3.1415, 2)→ 3.14
处理小数,财务对账、单价计算必备。ROUNDUP 不管下一位是多少都向上进位,ROUNDDOWN 则直接舍去。
ABS / POWER / SQRT —— 绝对值、幂、平方根
=ABS(-15)→ 15
=POWER(2, 3)→ 8
=SQRT(25)→ 5
MOD —— 求余数
=MOD(10, 3)→ 1
常用于判断奇偶性、周期性分组(比如每隔 3 行标记一次)。也可以用来判断一个数是否能被另一个数整除(余数为0)。
RAND / RANDBETWEEN —— 随机数
=RAND()→ 0~1 之间的小数
=RANDBETWEEN(1, 100)→ 1~100 之间的随机整数
抽奖、随机抽样、模拟数据非常好用。注意:每次工作表重新计算时,随机数都会刷新。

INT / PRODUCT / SUBTOTAL / AGGREGATE
=INT(8.9)→ 8(向下取整,直接去掉小数部分)
=PRODUCT(A1:A5)→ 区域所有数值相乘
=SUBTOTAL(9, A1:A10)→ 只对可见行求和(筛选后专用)。第一个参数9代表SUM,其他数字代表不同运算。
=AGGREGATE(9, 5, A1:A10)→ 忽略错误值和隐藏行再计算。第二个参数5表示忽略隐藏行,这样即使区域里有 #N/A 等错误,也能正常求和。
三角函数与统计个数
正弦:=SIN(RADIANS(30))→ 0.5
余弦:=COS(RADIANS(60))→ 0.5
正切:=TAN(RADIANS(45))→ 1
反正弦转角度:=DEGREES(ASIN(0.5))→ 30°
弧度与度数互转:=RADIANS(180)得到 π(≈3.14),=DEGREES(PI())得到 180°。
=COUNTIF(B:B, ">60")→ 统计 B 列大于 60 的单元格数量
=COUNTIFS(B:B, ">60", C:C, "<80")→ 统计 B 列大于 60 且 C 列小于 80 的行数。COUNTIFS 可以加很多条件。
二、逻辑函数
逻辑函数帮你在 Excel 里实现 “如果……就……” 的判断。
IF —— 条件判断
=IF(A1 > 5, "Yes", "No")
如果 A1 大于 5,返回 “Yes”,否则 “No”。IF 的第三个参数还可以再嵌套一个 IF,实现多分支判断。
IFERROR —— 错误处理
=IFERROR(A1/B1, "Error")
当除法出错(比如分母为 0)时,显示 “Error” 而不是乱码。它能把所有类型的错误都捕捉到,换成你指定的内容。

AND / OR / NOT / XOR
=AND(A1 > 5, B1 < 10)→ 所有条件都成立才返回 TRUE
=OR(A1 > 5, B1 < 10)→ 任意一个成立就返回 TRUE
=NOT(A1 > 5)→ 条件取反(TRUE 变 FALSE,FALSE 变 TRUE)
=XOR(A1 > 5, B1 < 10)→ 有且仅有一个成立时返回 TRUE
这些经常和 IF 嵌套使用,比如:
=IF(AND(A1>5, B1<10), "合格", "不合格")
三、文本函数
从系统导出的数据,常常带着乱七八糟的空格、大小写、多余字符。文本函数就是专门对付这些的。
CONCAT / TEXTJOIN —— 文字拼接
=CONCAT(A1, B1)→ “Hello” + “World” = “HelloWorld”
=TEXTJOIN("、", TRUE, A1:A3)→ 用顿号连接,自动忽略空单元格。TEXTJOIN 比 CONCAT 强大很多,可以指定分隔符。
LEFT / RIGHT / MID —— 提取部分字符
=LEFT(A1, 3)→ 从左边取 3 个字符
=RIGHT(A1, 3)→ 从右边取 3 个字符
=MID(A1, 2, 3)→ 从第 2 个字符开始取 3 个字符
比如从身份证号里提取出生年份:=MID(A1,7,4)。
LEN / TRIM —— 长度与去空格
=LEN(A1)→ 返回字符个数(中文、英文、数字都算1个)
=TRIM(A1)→ 删除首尾空格,中间多个空格变一个。处理粘贴来的文本时特别有用。
LOWER / UPPER / PROPER —— 大小写转换
=LOWER("Hello")→ “hello”
=UPPER("Hello")→ “HELLO”
=PROPER("hello world")→ “Hello World”(每个单词首字母大写)

SUBSTITUTE / REPLACE —— 替换文本
=SUBSTITUTE(A1, "old", "new")→ 把 “old” 换成 “new”。如果要替换第几个出现的,可以加第四个参数。
=REPLACE(A1, 1, 2, "XX")→ 从第 1 位开始替换 2 个字符。REPLACE 是基于位置的替换,SUBSTITUTE 是基于内容的替换。
FIND / SEARCH —— 查找位置
=FIND("e", "Hello")→ 2(区分大小写)
=SEARCH("e", "Hello")→ 2(不区分大小写)。如果找不到,会返回错误值。通常配合 IFERROR 使用。
四、查找与引用函数
这部分是很多职场人的最爱。只要学会 VLOOKUP,就能告别肉眼一行行找数据。
VLOOKUP / HLOOKUP
=VLOOKUP(A1, B1:C10, 2, FALSE)
根据 A1 的值,在 B1:C10 的第一列中查找,返回对应的第 2 列内容。最后一个参数 FALSE 表示精确匹配,建议永远用 FALSE。例如:根据员工编号查找对应的姓名。
=HLOOKUP(A1, A1:F10, 2, FALSE)
按行查找,适用于横向排列的表格。第一行是查找行,返回下面某行的值。

LOOKUP / MATCH / INDEX
=LOOKUP(A1, A1:A10, B1:B10)→ 在 A 列查找 A1,返回 B 列对应值。注意 LOOKUP 要求查找列必须升序排列,否则可能出错。
=MATCH(A1, A1:A10, 0)→ 返回 A1 在区域中的位置(第几行)。最后一个参数 0 表示精确匹配。
=INDEX(A1:C10, 2, 3)→ 返回 A1:C10 区域中第 2 行第 3 列的值。
INDEX + MATCH 组合比 VLOOKUP 更灵活,可以实现反向查找(查找值在右边,返回值在左边)和动态列查找。写法:=INDEX(返回列, MATCH(查找值, 查找列, 0))。

CHOOSE / OFFSET / INDIRECT
=CHOOSE(2, "苹果","香蕉","橘子")→ “香蕉”。根据第一个数字从后面的列表中选一个。
=OFFSET(A1, 2, 3)→ 以 A1 为基准,向下 2 行,向右 3 列,返回那个单元格的值。常用于动态区域。
=INDIRECT("A1")→ 返回 A1 单元格的值(把文本变成真正引用)。当你需要根据另一个单元格的内容来构造引用时很有用。
COLUMN / ROW
=COLUMN(A1)→ 1(列号)
=ROW(A1)→ 1(行号)
常用于构造动态区域,比如 =OFFSET(A1, ROW()-1, 0)可以实现每行自动偏移。
五、日期与时间函数
处理日期时间,这些函数一个顶十个。
TODAY / NOW
=TODAY()→ 返回当前日期(自动更新)
=NOW()→ 返回当前日期和时间
DATE / TIME
=DATE(2024,5,23)→ 2024-05-23
=TIME(14,30,0)→ 14:30:00
提取年月日时分秒
=YEAR(A1)– 从日期中提取年份
=MONTH(A1)– 提取月份(1-12)
=DAY(A1)– 提取日(1-31)
=HOUR(A1)– 提取小时(0-23)
=MINUTE(A1)– 提取分钟
=SECOND(A1)– 提取秒

WEEKDAY / WEEKNUM
=WEEKDAY(A1, 2)→ 返回星期几(周一=1,周日=7)。第二个参数常用 2,符合中国人习惯。
=WEEKNUM(A1, 2)→ 返回当年第几周(周一作为一周的开始)。
NETWORKDAYS / WORKDAY
=NETWORKDAYS(开始, 结束, 假期区域)→ 计算两个日期之间的工作日天数(自动排除周末,还可指定假期列表)。比如计算项目实际用了多少个工作日。
=WORKDAY(开始, 天数, 假期区域)→ 从开始日期起,经过若干工作日后的日期。常用于计算合同到期日或任务截止日。
EDATE / EOMONTH
=EDATE(A1, 3)→ 3 个月后的日期(同一天)。如果 A1 是 1月31日,3个月后是4月30日(自动调整)。
=EOMONTH(A1, 1)→ 下个月的最后一天。常用于计算月末结账日或账期。

六、财务函数
财务人员的最爱,普通人也经常用到。
PMT —— 贷款每期还款额
=PMT(年利率/12, 总期数, -贷款总额)
例如:贷款 1 万元,年利率 5%,分 60 个月还,公式为 =PMT(0.05/12, 60, -10000)。结果为每月应还金额(负值表示支出)。注意利率要和期数匹配(月利率 = 年利率/12)。
NPV —— 净现值
=NPV(折现率, 现金流区域)
评估项目投资是否划算。折现率比如 5%,现金流区域包括每期的收入(正)和支出(负)。结果是净现值,大于0说明项目值得投资。
FV —— 未来值
=FV(年利率/12, 总期数, -每月投入, -初始本金)
例如:每月定投 100 元,年利率 5%,初始本金 1000 元,5 年后(60 个月)有多少钱?公式 =FV(0.05/12, 60, -100, -1000)结果就是到期时的总金额。
PV —— 现值
=PV(年利率/12, 总期数, -每月收入)
例如:未来 60 个月每月收到 100 元,年利率 5%,现在值多少钱?公式 =PV(0.05/12, 60, -100)结果就是现值。PV 是 FV 的逆运算。
小提示:现金流支出用负数,收入用正数。这是财务函数的标准用法。
写在最后
以上 80 个函数能帮你解决大部分日常数据处理问题,但如果你遇到百万行数据卡顿、需要自动化报表或团队协作时数据总对不上,那不妨试试九数云。
九数云是一款在线数据分析工具,无需安装,打开浏览器就能用,支持类似 Excel 的公式计算,还能通过拖拽完成数据清洗、透视分析和图表制作。
它轻松处理百万级数据,自动刷新看板,支持多人协作,所有分析步骤云端保存,随时追溯。而且九数云内置了本文提到的绝大部分函数,操作几乎零学习成本。
如果你经常被数据折磨,去官网体验一下,也许会发现另一片新大陆。

点击 阅读原文免费体验在线零代码数据分析工具。
夜雨聆风