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]}")
相关推荐
Channing Lewis15 小时前
Python读取excel转成html,并且复制excel中单元格的颜色(字体或填充)
python·html·excel
醉卧考场君莫笑1 天前
excel数据统计与数据可视化
信息可视化·excel
weixin_440401691 天前
WPS Excel 宏使用
excel··wps
GalenZhang8881 天前
Excel/WPS 表格数据合并操作指南
excel·wps
海拥✘1 天前
Excel制作跳动爱心动画:一步步创建动态数学心形图
excel
教练、我想打篮球1 天前
127 apache poi3.11 写 word 中内嵌 表格换行的输出
word·excel·docx·换行
醉卧考场君莫笑2 天前
EXCEL数据分析基础(没有数据统计和数据可视化)
信息可视化·数据分析·excel
yesyesyoucan2 天前
智能文件格式转换平台:文本/Excel与CSV的无缝互转解决方案
excel
hqyjzsb2 天前
2026年AI证书选择攻略:当“平台绑定”与“能力通用”冲突,如何破局?
大数据·c语言·人工智能·信息可视化·职场和发展·excel·学习方法