我将从三个层面来详细解释 Excel 的命令参数:

- Excel 函数参数:最常用、最核心的部分。
- Power Query (M 语言) 参数:用于数据清洗和转换的强大工具。
- VBA 宏 参数:用于自动化任务的编程。
Excel 函数参数
这是绝大多数用户最常接触的部分,函数的参数是函数括号 内的各个部分,用于告诉函数如何计算。
参数的基本结构
一个典型的函数公式如下:
=函数名(参数1, 参数2, ...)
- 函数名:如
SUM,VLOOKUP,IF等。 - 参数:用逗号 分隔。
- 括号 :所有参数都必须放在括号内。
参数的几种常见类型
参数可以是数字、文本、逻辑值、单元格引用、甚至是另一个函数(嵌套函数)。
| 参数类型 | 描述 | 示例 |
|---|---|---|
| 数值 | 数字常量。 | =SUM(100, 200) |
| 文本 | 字符串,需要用双引号 括起来。 | =IF(A1="完成", "是", "否") |
| 单元格引用 | 指向单个单元格或一个区域。 | =SUM(A1:A10) |
| 逻辑值 | TRUE (真) 或 FALSE (假)。 |
=IF(B1>100, TRUE, FALSE) |
| 数组 | 一组常量,用大括号 括起来。 | =SUM({1,2,3,4,5}) |
| 错误值 | 如 #N/A, #VALUE! 等,通常作为判断条件。 |
=IF(ISNA(VLOOKUP(...)), "未找到", VLOOKUP(...)) |
| 嵌套函数 | 一个函数的结果作为另一个函数的参数。 | =SUM(AVERAGE(B1:B5), MAX(C1:C10)) |
函数参数的两大特性:必需与可选
-
必需参数:函数执行所必须的参数,如果缺少必需参数,Excel 会直接报错。
(图片来源网络,侵删)- 示例:
VLOOKUP函数有三个必需参数:lookup_value,table_array,col_index_num。 =VLOOKUP(A1, B:D, 3)(缺少range_lookup,但前三个是必需的,所以不会报错,但range_lookup默认为近似匹配)。
- 示例:
-
可选参数:用户可以根据需要选择的参数,如果省略可选参数,Excel 会使用其默认值。
- 示例:
VLOOKUP的第四个参数range_lookup是可选的。 =VLOOKUP(A1, B:D, 3, FALSE)(精确匹配)=VLOOKUP(A1, B:D, 3)(省略FALSE,默认为TRUE或1,进行近似匹配)
- 示例:
如何查看和理解函数参数?
Excel 提供了非常友好的工具来帮助用户理解参数。
使用“插入函数”对话框(推荐新手)
- 点击公式栏左侧的
fx图标,或者按Shift + F3。 - 在弹出的对话框中,选择你需要的函数。
- Excel 会清晰地列出每个参数的名称、描述,并提示你当前应该填写哪个参数(已填写的参数会显示为粗体)。
使用函数屏幕提示
- 在单元格中输入函数名和左括号,
=IF(。 - Excel 会在函数旁边自动出现一个提示框,显示所有参数的名称和顺序。
常用函数及其参数示例
| 函数名 | 功能 | 参数说明 | 示例 |
|---|---|---|---|
| IF | 逻辑判断 | logical_test (条件), [value_if_true] (条件为真时返回值), [value_if_false] (条件为假时返回值) |
=IF(A1>60, "及格", "不及格") |
| VLOOKUP | 垂直查找 | lookup_value (要查找的值), table_array (查找区域), col_index_num (返回值所在列), [range_lookup] (匹配方式) |
=VLOOKUP("张三", A2:C100, 3, FALSE) |
| SUMIF/SUMIFS | 条件求和 | SUMIF(range, criteria, [sum_range])SUMIFS(sum_range, criteria_range1, criteria1, ...) |
=SUMIF(A:A, "销售部", C:C) |
| COUNTIF/COUNTIFS | 条件计数 | COUNTIF(range, criteria)COUNTIFS(criteria_range1, criteria1, ...) |
=COUNTIF(B:B, ">100") |
| INDEX | 返回指定行列的值 | array (数组或区域), row_num (行号), [column_num] (列号) |
=INDEX(A1:C10, 5, 2) 返回第5行第2列的值 |
| MATCH | 返回查找值在区域中的位置 | lookup_value (查找值), lookup_array (查找区域), [match_type] (匹配方式) |
=MATCH("苹果", A1:A10, 0) 返回 "苹果" 在 A1:A10 中的行号 |
Power Query (M 语言) 参数
当你在 Excel 中使用 “获取和转换数据” (Get & Transform Data) 功能时,你实际上是在使用一种叫做 Power Query 的技术,其背后是 M 语言,这里的参数更加结构化,通常以“步骤”的形式记录在“高级编辑器”中。
M 语言函数的基本结构
函数名(参数名1 = 值1, 参数名2 = 值2)
与 Excel 函数不同,M 语言的参数通常采用命名参数的形式,即 参数名 = 值,这使得代码更易读。
M 语言参数示例
假设你有一个 Excel 表格,你想筛选出“销售部”且“销售额”大于 10000 的记录。
- 在 Power Query 编辑器中,你可以通过界面操作完成。
- 每一步操作都会在右侧的“应用的步骤”窗格中生成一个 M 代码步骤。
- 你可以点击“高级编辑器”查看完整的 M 代码。
一个典型的 M 代码片段可能如下:
let
// 从 Excel 工作表加载数据
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
// 筛选“部门”列为“销售部”的行
#"Filtered Rows" = Table.SelectRows(Source, each ([部门] = "销售部")),
// 再筛选“销售额”大于10000的行
#"Filtered Rows1" = Table.SelectRows(#"Filtered Rows", each ([销售额] > 10000))
in
#"Filtered Rows1"
参数解析:
Excel.CurrentWorkbook(): 这是一个函数,它的参数是可选的,但通常通过界面操作,你不需要直接写参数。Table.SelectRows: 这是一个函数,用于筛选表格的行。- 第一个参数
table:Source或#"Filtered Rows",表示要操作的表格。 - 第二个参数
selection:each ([部门] = "销售部"),这是一个筛选条件。each是 M 语言中创建函数的简写,[部门]是列名。
- 第一个参数
VBA 宏 参数
VBA (Visual Basic for Applications) 是 Excel 的编程语言。“命令”就是过程 或函数,“参数”则是传递给它们的值。
VBA 过程/函数的基本结构
Sub 过程名(参数1 As 数据类型, 参数2 As 数据类型)
' ... 代码 ...
End Sub
Function 函数名(参数1 As 数据类型) As 返回值类型
' ... 代码 ...
函数名 = 计算结果
End Function
VBA 参数类型
- 按值传递:使用
ByVal关键字,过程内部对参数的修改不会影响原始变量。 - 按引用传递:使用
ByRef关键字(默认),过程内部对参数的修改会影响原始变量。
VBA 参数示例
示例 1:无参数的宏
这是一个简单的宏,用于在活动单元格写入 "Hello World"。
Sub SayHello()
ActiveCell.Value = "Hello World"
End Sub
示例 2:带参数的宏
这个宏接受一个文本作为参数,并将其写入活动单元格。
Sub WriteToCell(ByVal textToWrite As String)
' ByVal 表示按值传递,textToWrite 是一个字符串类型的参数
ActiveCell.Value = textToWrite
End Sub
如何调用这个带参数的宏?
你可以通过 Alt + F8 打开宏对话框,选择 WriteToCell,然后点击“执行”,这时,Excel 会弹出一个对话框,让你输入 textToWrite 参数的值。
或者,你可以在另一个 VBA 过程中这样调用:
Sub CallMyMacro()
WriteToCell "你好,VBA!" ' 直接传入字符串常量
WriteToCell Range("A1").Value ' 传入单元格的值作为参数
End Sub
| 类别 | 命令/函数 | 参数特点 | 使用场景 |
|---|---|---|---|
| Excel 函数 | SUM, IF, VLOOKUP 等 |
位置参数为主,用逗号分隔;有必需和可选参数,单元格内公式计算。 | 日常数据计算、逻辑判断、查找引用。 |
| Power Query (M) | Table.SelectRows, Excel.CurrentWorkbook 等 |
命名参数为主,格式为 参数名 = 值;步骤式、链式调用。 |
复杂、可重复的数据清洗、转换和整合。 |
| VBA 宏 | Sub, Function 过程 |
可以定义数据类型 (As String) 和传递方式 (ByVal, ByRef)。 |
高度定制化的自动化任务、复杂交互、开发插件。 |
理解不同场景下命令参数的规则和用法,是精通 Excel 的关键一步,希望这份详细的梳理能对你有所帮助!
