分类 计算机 下的文章

来源:ExcelHome
Excel中的相对引用和绝对引用,是让很多刚刚接触Excel的朋友们非常头疼的一件事,但是,要深入学习Excel知识,这个问题还必须要充分的理解才可以。
因为相对引用和绝对引用在很多操作中都会用到,比如说:条件格式、数据有效性、函数公式、高级图表甚至宏和VBA代码。搞不清楚引用方式的话,这么多高大上的应用一切都免谈了。
公式中引用单元格或者区域时,引用的类型可分为以下三种:

相对引用

相对引用,就是当把公式复制到其它单元格中时,行或列的引用会改变。所谓行或列的引用会改变,即指代表行的数字和代表列的字母会根据实际的偏移量相应改变。

举一个例子:D5单元格输入公式=A1,当向下填充公式到D6、D7单元格的时候,公式会依次变成=A2、=A3。
pic1

如果向右填充公式到E5、F5单元格的时候,就会变成=B1、=C1……
pic2
这个相对引用其实就是朝三暮四随风倒,甘做墙头一棵草。

绝对引用

绝对引用,就是当把公式复制到其它单元格中时,行和列的引用不会改变。
举一个例子:D5单元格输入公式=$A$1 当向下填充公式的时候,无论复制填充到哪个单元格,公式依然是=$A$1 当向右填充公式的时候,无论复制填充到哪个单元格,公式还是=$A$1
pic3
这个绝对引用就是海枯石烂心不变,一生一世到永远。

混合引用

混合引用,就是行或列中有一个是相对引用,另一个是绝对引用。
举个例子:D5单元格输入公式=A$1 注意这里和上面的例子中少了一个$符号,当向下填充公式到D6、D7单元格的时候,公式依然是=A$1。
如果向右填充公式到E5、F5单元格的时候,就会变成=B$1、=C$1……
pic4
你看这里,因为在行号前面加了一个$符号,行号就固定不变了,而列标前面没有加$符号,列标就会发生变化。
混合引用还有一个用法:就是=$A1
这里和上面的例子中差不多的模样,只是$符号跑到列标前面去了,当向下填充公式到D6、D7单元格的时候,公式就会变成=$A2、=$A3……
如果向右填充公式到E5、F5单元格的时候,公式依然是=$A1 。
pic5

这个混合引用就是一半海水一半火焰,自古红颜爱大款,没钱的能滚多远是多远。
使用不同的引用方式,除了手工输入美元符号以外,可以将光标放到编辑栏内,按F4键,每按一次,美元符号就会跑到不同的地方,也就是不同的引用方式。
pic6
相对引用和绝对引用比较好理解,而混合引用则会相对复杂一些。什么时候使用什么样的引用,还需要在实际操作中多多用心揣摩领会。

1. 选择需要填充的表格,在菜单栏依次点击开始---条件格式---新建规则

1

2.点击使用公式确定要设置格式的单元格

2

3. 依次输入公式,点击格式---图案,选择颜色。点击确定。如:条件为i3、j4同时为空时,整行标记为浅红色。

3
4

激活Windows8及以后的系统

1.打开powershell(不是cmd),输入以下命令并回车运行。

irm https://get.activated.win | iex

2.出现激活选项。选择(1) HWID 为Windows激活。选择(2)为office激活。
激活选项

激活Windows7及更早的系统

1.下载链接文件master.zip
2.下载解压,找到All-In-One-Version文件夹,运行MAS_AIO.cmd
3.选择激活选项。

项目地址:Microsoft-Activation-Scripts

1.初识openpyxl

首先,让我们了解一下什么是openpyxl。openpyxl是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm 文件的Python 库。它可以创建新的Excel文件、修改现有的文件,甚至可以读写单元格中的数据、格式和公式。为了使用 openpyxl,我们需要先进行安装:

pip install openpyxl

2.创建新的 Excel 文件

现在,我们来创建一个新的 Excel 文件。在这个过程中,我们会学习如何创建工作簿、添加数据到工作表并保存文件。

from openpyxl import Workbook
#创建一个新的工作簿
wb = Workbook()

#激活默认的工作表
ws = wb.active

#在单元格中写入数据
ws['A1'] = '收入'
ws['B1'] = '支出'

#保存文件
wb.save('test.xlsx')

上面这个代码创建了一个新的 Excel 文件 budget.xlsx,并在第一个工作表的 A1 单元格和 B1 单元格中分别写入了“收入”和“支出”。

3.读取 Excel 文件

接下来,我们看看如何读取现有的 Excel 文件。在这个过程中,我们会学习如何加载工作簿和读取单元格数据。

from openpyxl import load_workbook

#加载现有的工作簿
wb = load_workbook('test.xlsx')

#激活默认的工作表
ws = wb.active

#读取单元格中的数据
income_label = ws['A1'].value
expense_label = ws['B1'].value

print(income_label) #输出:收入
print(expense_label) #输出:支出

这段代码加载了之前创建的 budget.xlsx文件,并读取了 A1 和 B1 单元格中的数据。

4.修改 Excel 文件

我们还可以修改现有的 Excel 文件中的数据,然后保存修改后的文件。


#修改单元格中的数据
ws['A2'] = '5000'
ws['B2'] = '1500'
#保存文件
wb.save('budget_modified.xlsx')

这段代码在 A2 单元格中写入了收入 5000 元,在 B2 单元格中写入了支出 1500 元,并将文件保存为 budget_modified.xlsx。

5.处理多个工作表

有时候,我们需要在一个 Excel 文件中处理多个工作表。下面的代码展示了如何创建新工作表并在不同工作表中写入数据。

#创建新的工作表
ws1 = wb.create_sheet("一月")
ws2 = wb.create_sheet("二月")

#在不同的工作表中写入数据
ws1['A1'] = '收入'
ws1['B1'] = '支出'
ws1['A2'] = 6000
ws1['B2'] = 2000

ws2['A1'] = '收入'
ws2['B1'] = '支出'
ws2['A2'] = 7000
ws2['B2'] = 2500

#保存文件
wb.save('budget_modified.xlsx')

这段代码创建了两个新的工作表“ 一月”和“二月”,并在这些工作表中分别写入了收入和支出数据。

7.实战案例-读取和更新预算数据

最后,我们来看看如何读取和更新预算数据。

from openpyxl import load_workbook

# 加载现有的工作簿
wb = load_workbook('family_budget.xlsx')
ws = wb.active

# 读取某月的预算数据
month = '三月'
for row in ws.iter_rows(min_row=2, values_only=True):
    if row[0] == month:
        print(f"{month}的收入是{row[1]}元,支出是{row[12]}元,剩余预算是{row[3]}")

# 更新某个月的预算数据
for row in ws.iter_rows(min_row=2):
    if row[0].value == '三月':
       row[1].value == 6500 # 更新收入
       row[2].value == 2700 # 更新支出
       row[3].value ==  row[1].value - row[2].value # 重新计算剩余预算

# 保存修改后的文件
wb.save('family_budget.xlsx')

我们读取了三月的预算数据,并更新了三月的收入和支出。