You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按职位排序Google Sheet「员工工时」工作表数据?

Google Sheet「员工工时」表按职位自动排序解决方案

公式实现方案(无需脚本)

适合保留原数据、通过单独视图查看排序结果的场景:

  • 新建一张工作表(例如命名为「排序后工时表」)
  • 在新表的A1单元格输入以下公式,自动同步并排序「员工工时」表的数据:
    =QUERY('员工工时'!A1:Z, "SELECT * ORDER BY D ASC", 1)
    
    • 公式说明:QUERY函数读取「员工工时」表的全部数据,按D列(职位)升序排序,1表示保留表头行
    • 当「员工工时」表的职位(D列)变更时,新表会自动更新排序结果
  • 若要在原表直接展示排序结果(不推荐,易误改数据),可清空原表A2及以下区域后输入:
    =ARRAYFORMULA(SORT('员工工时'!A2:Z, '员工工时'!D2:D, TRUE))
    

Google Script实现方案(原表实时自动排序)

适合需要在原表直接自动排序的场景,编辑D列职位时触发排序:

  1. 打开目标表格,点击菜单栏「扩展程序」→「Apps Script」
  2. 删除默认代码,粘贴以下脚本:
function onEdit(e) {
  const targetSheet = "员工工时";
  const sortCol = 4; // D列对应序号4
  const sheet = e.source.getSheetByName(targetSheet);

  // 仅在编辑目标工作表的D列时执行排序
  if (!sheet || e.range.getColumn() !== sortCol) return;

  // 定义数据范围:跳过表头(第1行),覆盖所有数据行和列
  const dataRange = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn());
  
  // 按D列升序排序(改为false则降序)
  dataRange.sort({column: sortCol, ascending: true});
}
  1. 保存脚本(命名任意,例如「AutoSortPosition」),关闭编辑器
  2. 测试:修改任意行的D列职位,表格会自动重新排序

内容的提问来源于stack exchange,提问作者Contradictory

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 08:08:23