Excel高级功能详细文档03

公式与函数

1.1 基本公式

手动操作:

  • 输入公式以 = 开始
  • 引用单元格:=A1+B1
  • 引用区域:=SUM(A1:A10)
  • 绝对引用:=$A$1(按F4切换)

常用运算符:

  • 算术:+ - * / ^
  • 比较:= > < >= <= <>
  • 文本连接:&

1.2 常用函数

数学函数:

excel 复制代码
=SUM(A1:A10)           # 求和
=AVERAGE(A1:A10)       # 平均值
=MAX(A1:A10)           # 最大值
=MIN(A1:A10)           # 最小值
=COUNT(A1:A10)         # 计数
=ROUND(A1, 2)          # 四舍五入

文本函数:

excel 复制代码
=LEFT(A1, 3)           # 左边3个字符
=RIGHT(A1, 3)          # 右边3个字符
=MID(A1, 2, 3)         # 从第2个字符开始取3个
=LEN(A1)               # 文本长度
=CONCATENATE(A1, B1)   # 连接文本
=UPPER(A1)             # 转大写
=LOWER(A1)             # 转小写

日期函数:

excel 复制代码
=TODAY()               # 今天日期
=NOW()                 # 当前日期时间
=YEAR(A1)              # 提取年份
=MONTH(A1)             # 提取月份
=DAY(A1)               # 提取日
=DATE(2024, 1, 1)      # 创建日期

逻辑函数:

excel 复制代码
=IF(A1>60, "及格", "不及格")
=AND(A1>0, B1>0)       # 全部为真
=OR(A1>0, B1>0)        # 任一为真
=IFERROR(A1/B1, 0)     # 错误时返回0

查找函数:

excel 复制代码
=VLOOKUP(A1, A:C, 2, FALSE)    # 垂直查找
=INDEX(B:B, MATCH(A1, A:A, 0)) # INDEX+MATCH组合

1.3 Python实现公式

python 复制代码
import pandas as pd
import numpy as np

df = pd.read_excel('数据.xlsx')

# SUM
df['总和'] = df[['列1', '列2', '列3']].sum(axis=1)

# AVERAGE
df['平均'] = df[['列1', '列2', '列3']].mean(axis=1)

# IF
df['结果'] = df['分数'].apply(lambda x: '及格' if x >= 60 else '不及格')

# VLOOKUP
lookup_df = pd.read_excel('查找表.xlsx')
df = df.merge(lookup_df, left_on='ID', right_on='ID', how='left')

# CONCATENATE
df['全名'] = df['姓'] + df['名']

df.to_excel('结果.xlsx', index=False)

条件格式

2.1 突出显示单元格规则

手动操作:

  • 开始 → 条件格式 → 突出显示单元格规则

规则类型:

  • 大于/小于/等于
  • 介于
  • 文本包含
  • 重复值

Python操作:

python 复制代码
from openpyxl import Workbook
from openpyxl.styles import PatternFill
from openpyxl.formatting.rule import CellIsRule

wb = Workbook()
ws = wb.active

# 添加数据
for i in range(1, 11):
    ws.append([i * 10])

# 大于30的单元格标红
red_fill = PatternFill(start_color='FF0000', fill_type='solid')
rule = CellIsRule(operator='greaterThan', formula=['30'], fill=red_fill)
ws.conditional_formatting.add('A1:A10', rule)

wb.save('条件格式.xlsx')

2.2 数据条

Python操作:

python 复制代码
from openpyxl import Workbook
from openpyxl.formatting.rule import DataBarRule

wb = Workbook()
ws = wb.active

for i in range(1, 11):
    ws.append([i * 10])

# 添加数据条
rule = DataBarRule(
    start_type='min',
    end_type='max',
    color='638EC6'
)
ws.conditional_formatting.add('A1:A10', rule)

wb.save('数据条.xlsx')

2.3 色阶

Python操作:

python 复制代码
from openpyxl import Workbook
from openpyxl.formatting.rule import ColorScaleRule

wb = Workbook()
ws = wb.active

for i in range(1, 11):
    ws.append([i * 10])

# 添加色阶(红-黄-绿)
rule = ColorScaleRule(
    start_type='min',
    start_color='FF0000',
    mid_type='percentile',
    mid_value=50,
    mid_color='FFFF00',
    end_type='max',
    end_color='00FF00'
)
ws.conditional_formatting.add('A1:A10', rule)

wb.save('色阶.xlsx')

图表制作

3.1 创建柱形图

手动操作:

  • 选中数据 → 插入 → 柱形图

Python操作:

python 复制代码
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference

wb = Workbook()
ws = wb.active

# 添加数据
data = [
    ['类别', '数值'],
    ['A', 10],
    ['B', 20],
    ['C', 30],
    ['D', 25]
]
for row in data:
    ws.append(row)

# 创建柱形图
chart = BarChart()
chart.title = "销售数据"
chart.x_axis.title = "类别"
chart.y_axis.title = "数值"

data_ref = Reference(ws, min_col=2, min_row=1, max_row=5)
cats_ref = Reference(ws, min_col=1, min_row=2, max_row=5)
chart.add_data(data_ref, titles_from_data=True)
chart.set_categories(cats_ref)

ws.add_chart(chart, "D2")

wb.save('柱形图.xlsx')

3.2 折线图

Python操作:

python 复制代码
from openpyxl import Workbook
from openpyxl.chart import LineChart, Reference

wb = Workbook()
ws = wb.active

data = [
    ['月份', '销售额'],
    ['1月', 100],
    ['2月', 120],
    ['3月', 150],
    ['4月', 130],
    ['5月', 180]
]
for row in data:
    ws.append(row)

chart = LineChart()
chart.title = "月度销售趋势"
chart.x_axis.title = "月份"
chart.y_axis.title = "销售额"

data_ref = Reference(ws, min_col=2, min_row=1, max_row=6)
cats_ref = Reference(ws, min_col=1, min_row=2, max_row=6)
chart.add_data(data_ref, titles_from_data=True)
chart.set_categories(cats_ref)

ws.add_chart(chart, "D2")

wb.save('折线图.xlsx')

3.3 饼图

Python操作:

python 复制代码
from openpyxl import Workbook
from openpyxl.chart import PieChart, Reference

wb = Workbook()
ws = wb.active

data = [
    ['部门', '人数'],
    ['销售', 30],
    ['技术', 45],
    ['市场', 20],
    ['人事', 15]
]
for row in data:
    ws.append(row)

chart = PieChart()
chart.title = "部门人数分布"

data_ref = Reference(ws, min_col=2, min_row=1, max_row=5)
cats_ref = Reference(ws, min_col=1, min_row=2, max_row=5)
chart.add_data(data_ref, titles_from_data=True)
chart.set_categories(cats_ref)

ws.add_chart(chart, "D2")

wb.save('饼图.xlsx')

数据分析工具

4.1 单变量求解

手动操作:

  • 数据 → 模拟分析 → 单变量求解

Python实现:

python 复制代码
from scipy.optimize import fsolve

def equation(x):
    return x**2 - 4

result = fsolve(equation, 1)
print(f"解: {result[0]}")

4.2 规划求解

Python实现:

python 复制代码
from scipy.optimize import linprog

# 目标函数系数
c = [-1, -2]

# 约束条件
A = [[1, 1], [2, 1]]
b = [10, 15]

x_bounds = (0, None)
y_bounds = (0, None)

result = linprog(c, A_ub=A, b_ub=b, bounds=[x_bounds, y_bounds])
print(f"最优解: x={result.x[0]}, y={result.x[1]}")
相关推荐
hPw0eKIqD1 天前
使用二次封装的Excel COM 组件操作Excel\WPS ET中的区域、行和列
excel·wps
冰心孤城1 天前
Excel: xls与xlsx格式转换排坑指南
java·前端·excel
金豆呀2 天前
WPS批量提取Word文档内容生成固定格式Excel表格
word·excel·wps
Access开发易登软件2 天前
Access 怎么做前后端分离?用 Web API 读写 SQL Server
前端·数据库·人工智能·microsoft·excel·access
红莲凪是3 天前
使用二次封装的Excel COM 组件操作Excel\WPS ET IExcelRange 高级应用
python·excel·wps
用户298698530143 天前
如何使用免费工具在线将 Excel 转换为 XML 格式
人工智能·后端·excel
开开心心就好3 天前
内存清理工具定时自动清理开机自启动
java·开发语言·elasticsearch·ocr·excel·音视频·big data
开开心心就好3 天前
电脑内存优化工具一键释放内存超简单
java·开发语言·macos·arcgis·ocr·excel·音视频
随手工具-Excel, pdf, SQL3 天前
没有 SSMS 导入向导?Excel/CSV 一键生成 SQL Server INSERT 脚本
excel·sql server·在线工具·insert·测试数据·ssms·t-sql
SunnyDays10114 天前
Python 将 Excel(XLS/XLSX)转换为 JSON:导出工作簿、工作表、单元格区域与自定义 JSON 结构
python·json·excel·excel 转 json·导出 excel 到 json·xlsx 转 json·xls 转 json