在Microsoft Excel中添加排序按钮的5种方法
您想在 Excel 中添加排序按钮吗?
排序是查看数据中最高值或最低值的简单方法。这是数据分析中非常常见的任务,因此,只需单击一下按钮即可对数据进行排序,这将节省您的时间!
Excel 提供了许多数据排序方法,但并非简单的单击按钮解决方案。但只要稍加巧思,您就可以创建自己的按钮来对数据进行排序。
这篇文章将向您展示如何创建按钮来对数据进行排序。
推荐:如何修复Excel中的溢出错误
添加带有筛选切换的排序按钮
当 Excel 中拥有表格数据集时,您可以向列标题添加切换按钮,以便对数据进行排序和筛选。
这是向数据添加始终可见且可用的排序按钮的最简单方法。
您可以通过以下方式向数据添加排序和过滤切换功能。
- 选择需要排序的数据。
- 前往 数据 标签。
- 点击 筛选 命令。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/filter-toggles-applied-to-the-data.png)
这会将过滤器切换添加到您的数据中,您可以在数据中每个列标题的右侧看到它们。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/sort-options-in-filter-toggles.png)
当您单击其中任何一个时,它们将显示各种排序和过滤选项。
这些将允许您使用以下方式快速按升序或降序对任何字段进行排序: 从最小到最大排序 或者 从大到小排序 命令。
这甚至可以让你
💡 提示:排序和过滤切换甚至允许您按单元格排序,甚至允许您 按字体和单元格填充颜色排序。
使用键盘快捷键添加排序按钮
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/keyboard-shortcut-to-add-or-remove-sort-and-filter-toggles.png)
您还可以通过简单的快捷键组合将排序和过滤切换添加到数据选择中。
选择您的数据范围并按 Ctrl + 转移 + 大号 键盘快捷键添加排序和过滤切换。
这是一种添加或删除过滤器的简单方法,因为快捷方式可以作为打开或关闭过滤器的开关。
推荐:如何在Windows 11上使用PowerShell安装Telnet客户端
使用 VBA 添加排序按钮
VBA 是 Excel 桌面版中可用的编码语言,允许您构建自定义解决方案。
您可以创建一个 VBA 宏来对数据进行排序并将其分配给工作表中的按钮。
然后,您可以以任何方式设置按钮样式,也可以向按钮添加自定义文本。当其他人将使用工作簿时,这是一个很好的选择,因为它有助于使排序对用户来说非常直观。
以下是如何使用 VBA 创建排序按钮。
按 Alt + F11 键盘快捷键打开 Visual Basic 编辑器。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/vba-toggle-sort-order-subroutine.png)
前往 插入 菜单并选择 模块 选项。这将创建一个代码模块,您可以在其中添加对数据进行排序的 VBA 代码。
Sub ToggleSortOrder()
Dim ascCell As Boolean
ascCell = ActiveSheet.Range("ascCell").Value2
If ascCell = True Then
ActiveSheet.Range("ascCell").Value2 = False
With ActiveWorkbook.Worksheets("Data").ListObjects("Cars").Sort
.SortFields.Clear
.SortFields.Add2 Key:=Range("Cars[[#All],[Year]]"), Order:=xlAscending
.Apply
End With
Else
ActiveSheet.Range("ascCell").Value2 = True
With ActiveWorkbook.Worksheets("Data").ListObjects("Cars").Sort
.SortFields.Clear
.SortFields.Add2 Key:=Range("Cars[[#All],[Year]]"), Order:=xlDescending
.Apply
End With
End If
End Sub
将上述 VBA 代码添加到您的新模块。
这 ToggleSortOrder()
子程序允许您切换名为的 Excel 表中的排序顺序 Cars
在名为 Data
升序和降序之间 Year
柱子。
首先设置一个名为 ascCell
为工作表中命名范围的值 升序单元格。 这是一个 真的 或者 错误的 值,它用于跟踪当前排序顺序并允许例程在升序和降序之间切换。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/named-range-for-tracking-sort-order.png)
您可以在工作表中选择一个单元格,然后键入 升序单元格 进入 名称框 并按下 进入。
一个 If... Then... Else
然后语句根据以下值对数据进行排序: ascCell
. 每个部分 If
声明还回复 升序单元格 命名范围来跟踪排序顺序。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/vba-sort-button.gif)
现在您可以在工作表中创建一个按钮, 设置按钮,点击后运行 VBA 代码。
使用 Office 脚本添加排序按钮
Office Scripts 是一种编程语言,适用于具有 M365 商业计划的 Excel 桌面版和 Web 版。
如果您需要一个可以在 Excel 的桌面版和 Web 版中使用自定义排序按钮,那么 Office Scripts 就是您的最佳选择。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/create-a-new-office-script-with-automate-tab.png)
前往 自动化 选项卡并点击 新脚本 选项打开 代码编辑器 并创建一个新脚本。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/office-scripts-toggle-sort-order-code.png)
function main(workbook: ExcelScript.Workbook) {
let cars = workbook.getTable("Cars");
let ascCell = workbook.getActiveWorksheet().getRange("ascCell").getValue();
let ascValue: boolean;
if (ascCell === true) {
ascValue = true;
workbook.getActiveWorksheet().getRange("ascCell").setValue(false);
}
else {
ascValue = false;
workbook.getActiveWorksheet().getRange("ascCell").setValue(true);
};
cars.getSort().apply([{ key: 2, ascending: ascValue }], false);
}
将上述代码添加到代码编辑器并按 保存脚本 按钮。
此代码可用于对 Excel 工作簿中的表格进行排序。它首先声明两个变量: cars
和 ascCell
。 这 cars
变量存储工作簿的表格,而 ascCell
变量存储一个值,指示排序操作是否应按升序执行(真的)或降序(错误的) 命令。
它检查名为 升序单元格 确定应使用哪种排序顺序。此单元格用于跟踪之前应用的排序选项。
代码每次运行时都会更新 ascCell 范围。这样,代码就可以充当升序和降序排序之间的切换。
如果 升序单元格 被设定为 真的,则数据按升序排列,否则按降序排列。
这 升序单元格 值用于设置 ascValue
确定排序顺序的变量。
最后,它调用 .getSort()
方法有两个参数。这确保对表执行所需的排序操作。
key: 2
表示应对哪一列进行排序。这使用从零开始的索引,因此 2 将对第三列进行排序。ascending: ascValue
是一个布尔值,表示我们是否想要升序(真的)或降序(错误的) 种类。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/add-office-script-button.png)
此代码可以从 跑步 按钮 代码编辑器,但您也可以在工作表中创建一个运行代码的按钮。
点击 省略号 图标位于 代码编辑器 并选择 添加按钮 选项。
这将创建一个浮动在网格上方的按钮,每当按下该按钮时就会运行 Office 脚本。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/office-script-button-edit-mode.png)
💡 提示:右键单击按钮可编辑显示的文本或自定义形状、轮廓和填充颜色。右键单击按钮将启用编辑模式,并且功能区中将显示“形状格式”选项卡。
推荐:快速加载和高点击率的AdSense主题Superfast
添加带有切片器的排序按钮
Excel 有一个非常 用于过滤表格数据的有用切片器选项。
这是一个浮动在网格上方的交互式过滤器对象,允许用户通过单击切片器中的项目来过滤数据中的给定字段。
不幸的是,没有等效的对象来对你的数据进行排序。
但你可以使用切片器和 排序方式 动态数组函数。
这样,您可以设置一个切片器,其中包含可选择的升序和降序选项,并产生所需的排序顺序。
设置方法如下。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/sortby-input-table.png)
您首先需要设置最终将连接到切片机的第二张表。
这将有 2 列,一列包含切片器中显示的标签,另一列包含切片器所需的参数输入 排序方式 功能。
在上表中, 类型 列包含标签和 价值 列包含相应的 排序方式 參數。
该表将有两行,因为 排序方式 函数有两个可能的输入。它可以按 上升 命令 (1
) 或者 降序 命令 (-1
)。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/insert-slicer-for-second-table.png)
现在,您可以为该辅助表创建切片器。选择该表,转到 表设计 选项卡,然后点击 插入切片器 命令。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/insert-slicer-menu-with-column-selected.png)
这将打开 插入切片器 菜单,您可以在其中选择切片器所基于的字段。
选择 类型 包含标签的列 上升 和 降序 并按下 好的 按钮创建切片器。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/slicer-with-ascending-descending-options.png)
这将创建一个切片器,您可以在其中选择 上升 或者 降序。这将过滤表格以仅显示选定的选项。
现在,您需要一种方法来从过滤表中获取可见值。
这可以通过 小计 函数。它将允许您根据可见行聚合一列。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/subtotal-function-to-get-visible-row-values.png)
= SUBTOTAL ( 104, Sort[Value] )
以上 小计 公式将根据可见行获取最大值 价值 柱子。
当表未过滤或已过滤时,这将返回 1 上升 当表按降序过滤时返回 -1。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/SORTBY-and-SUBTOTAL-formula.png)
= SORTBY ( Cars, Cars[Year], SUBTOTAL ( 104, Sort[Value] ) )
这 小计 结果可用于 排序方式 使用切片器更改排序顺序的功能!
上述公式将返回 汽车 表格按 年 根据 小计 结果。
![](https://cdn-5a6cb102f911c811e474f1cd.closte.com/wp-content/uploads/2023/02/slicer-as-sort-button.gif)
现在您可以使用切片器对数据进行排序!
结论
对数据进行排序是任何数据分析的基本部分,如果有按钮可以使得这一过程变得容易得多。
筛选切换按钮为数据中的每个列标题提供了一个内置按钮,可以使用快捷方式快速添加这些按钮。但它们提供的排序选项并不明显。
为数据插入排序按钮的另一种方法是使用 VBA 或 Office 脚本。这两种方法都允许您创建代码来对数据进行排序,并且可以将这些代码添加到工作表中的按钮中。
您还可以利用表格切片器功能构建自己的排序按钮,这要归功于 排序方式 和 小计 功能。
您喜欢在 Excel 中添加排序按钮的方法是什么?请在评论中告诉我!