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

Office Scripts中如何正确使用sortByValues对数据透视表排序?

解决Office Script中透视表按值排序行字段的问题

你需要正确配置sortByValues方法的参数,该方法需指定排序方向、原始数据字段名称及对应汇总函数,才能实现按“Sum of Region Amt.”升序排序“Vendor Name”的需求。

正确代码示例

// filter by value greater than $0
newPivotTable.getRowHierarchy("Vendor Name").getFields()[0].applyFilter({
    valueFilter: {
        condition: ExcelScript.ValueFilterCondition.greaterThan,
        comparator: 0,
        value: "Sum of Region Amt."
    }
});

// 按"Sum of Region Amt."升序排序"Vendor Name"
newPivotTable.getRowHierarchy("Vendor Name").getPivotField("Vendor Name").sortByValues(
    ExcelScript.SortDirection.ascending, // 排序方向:升序
    "Region Amt.", // 数据源中的原始字段名(非透视表显示的"Sum of Region Amt.")
    ExcelScript.SubtotalFunction.sum // 匹配透视表使用的求和汇总方式
);

关键注意点

  • 第二个参数必须传入数据源里的原始字段名称(这里是"Region Amt."),而非透视表中带前缀的显示名"Sum of Region Amt."。
  • 第三个参数要和你透视表中使用的汇总函数一致,因为目标值是求和结果,所以用ExcelScript.SubtotalFunction.sum。
  • 若需要降序排序,只需将ExcelScript.SortDirection.ascending替换为ExcelScript.SortDirection.descending。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 07:42:37